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

« back to all changes in this revision

Viewing changes to Puma/gen-release/step2/src/Parser.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/Parser.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_Parser_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/Parser.cc"
9
 
 
10
 
#line 11 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
2
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.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_Parser_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/Parser.cc"
 
9
 
 
10
#line 11 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.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/Parser.cc"
44
 
 
45
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
46
 
 
47
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
 
60
 
 
61
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
 
62
 
 
63
#line 64 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48
64
 
49
65
#ifndef __ac_fwd_ExtACKeywords__
50
66
#define __ac_fwd_ExtACKeywords__
51
67
class ExtACKeywords;
52
68
namespace AC {
53
 
  template <class JoinPoint, class Binding>
54
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
55
 
  template <class JoinPoint, class Binding>
56
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
57
 
  template <class JoinPoint>
58
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
69
  template <class JoinPoint>
 
70
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
71
  template <class JoinPoint>
 
72
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
73
  template <class JoinPoint>
 
74
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
59
75
}
60
76
#endif
61
77
 
62
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
63
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
78
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
79
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
64
80
#endif
65
81
 
66
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
 
82
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
67
83
// This file is part of PUMA.
68
84
// Copyright (C) 1999-2003  The PUMA developer team.
69
85
//                                                                
83
99
// MA  02111-1307  USA                                            
84
100
 
85
101
 
86
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
 
102
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
87
103
// This file is part of PUMA.
88
104
// Copyright (C) 1999-2003  The PUMA developer team.
89
105
//                                                                
106
122
#define __unit_h__
107
123
 
108
124
 
109
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
 
125
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
110
126
// This file is part of PUMA.
111
127
// Copyright (C) 1999-2003  The PUMA developer team.
112
128
//                                                                
129
145
#define __list_h__
130
146
 
131
147
 
132
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
148
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
133
149
// This file is part of PUMA.
134
150
// Copyright (C) 1999-2003  The PUMA developer team.
135
151
//                                                                
164
180
class List;
165
181
 
166
182
 
167
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
183
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
168
184
} // closed Puma
 
185
class CCExprResolve;
 
186
class CExprResolve;
169
187
class WinIfExists;
170
188
class WinImportHandler;
171
189
class WinMacros;
172
 
class CMatchSyntax;
173
 
class ExtGnu;
 
190
class WinAsm;
 
191
class WinDeclSpecs;
 
192
class WinMemberExplSpec;
 
193
class WinTypeKeywords;
 
194
class WinFriend;
174
195
class ExtAC;
175
196
class ExtACBuilderCoupling;
176
197
class ExtACSyntaxCoupling;
177
198
class ExtACTree;
178
199
class ExtACKeywords;
179
 
class WinAsm;
180
 
class WinDeclSpecs;
181
 
class WinMemberExplSpec;
182
 
class WinTypeKeywords;
 
200
class ExtGnu;
183
201
class PragmaOnceUnitState;
184
202
class PragmaOnce;
185
 
class CCExprResolve;
186
 
class CExprResolve;
 
203
class CMatchSyntax;
187
204
namespace Puma {
188
205
 
189
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
206
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
190
207
class ListElement {
191
 
#line 192 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
208
#line 209 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
209
  friend class ::CCExprResolve;
 
210
  friend class ::CExprResolve;
192
211
  friend class ::WinIfExists;
193
212
  friend class ::WinImportHandler;
194
213
  friend class ::WinMacros;
195
 
  friend class ::CMatchSyntax;
196
 
  friend class ::ExtGnu;
 
214
  friend class ::WinAsm;
 
215
  friend class ::WinDeclSpecs;
 
216
  friend class ::WinMemberExplSpec;
 
217
  friend class ::WinTypeKeywords;
 
218
  friend class ::WinFriend;
197
219
  friend class ::ExtAC;
198
220
  friend class ::ExtACBuilderCoupling;
199
221
  friend class ::ExtACSyntaxCoupling;
200
222
  friend class ::ExtACTree;
201
223
  friend class ::ExtACKeywords;
202
 
  friend class ::WinAsm;
203
 
  friend class ::WinDeclSpecs;
204
 
  friend class ::WinMemberExplSpec;
205
 
  friend class ::WinTypeKeywords;
 
224
  friend class ::ExtGnu;
206
225
  friend class ::PragmaOnceUnitState;
207
226
  friend class ::PragmaOnce;
208
 
  friend class ::CCExprResolve;
209
 
  friend class ::CExprResolve;
 
227
  friend class ::CMatchSyntax;
210
228
 
211
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ListElement.h"
 
229
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ListElement.h"
212
230
 
213
231
  friend class List;
214
232
 
229
247
 
230
248
#endif /* __list_element_h__ */
231
249
 
232
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
 
250
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
233
251
namespace Puma {
234
252
 
235
253
 
236
254
 
237
 
#line 238 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
255
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
238
256
} // closed Puma
 
257
class CCExprResolve;
 
258
class CExprResolve;
239
259
class WinIfExists;
240
260
class WinImportHandler;
241
261
class WinMacros;
242
 
class CMatchSyntax;
243
 
class ExtGnu;
 
262
class WinAsm;
 
263
class WinDeclSpecs;
 
264
class WinMemberExplSpec;
 
265
class WinTypeKeywords;
 
266
class WinFriend;
244
267
class ExtAC;
245
268
class ExtACBuilderCoupling;
246
269
class ExtACSyntaxCoupling;
247
270
class ExtACTree;
248
271
class ExtACKeywords;
249
 
class WinAsm;
250
 
class WinDeclSpecs;
251
 
class WinMemberExplSpec;
252
 
class WinTypeKeywords;
 
272
class ExtGnu;
253
273
class PragmaOnceUnitState;
254
274
class PragmaOnce;
255
 
class CCExprResolve;
256
 
class CExprResolve;
 
275
class CMatchSyntax;
257
276
namespace Puma {
258
277
 
259
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
 
278
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
260
279
class List {
261
 
#line 262 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
280
#line 281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
281
  friend class ::CCExprResolve;
 
282
  friend class ::CExprResolve;
262
283
  friend class ::WinIfExists;
263
284
  friend class ::WinImportHandler;
264
285
  friend class ::WinMacros;
265
 
  friend class ::CMatchSyntax;
266
 
  friend class ::ExtGnu;
 
286
  friend class ::WinAsm;
 
287
  friend class ::WinDeclSpecs;
 
288
  friend class ::WinMemberExplSpec;
 
289
  friend class ::WinTypeKeywords;
 
290
  friend class ::WinFriend;
267
291
  friend class ::ExtAC;
268
292
  friend class ::ExtACBuilderCoupling;
269
293
  friend class ::ExtACSyntaxCoupling;
270
294
  friend class ::ExtACTree;
271
295
  friend class ::ExtACKeywords;
272
 
  friend class ::WinAsm;
273
 
  friend class ::WinDeclSpecs;
274
 
  friend class ::WinMemberExplSpec;
275
 
  friend class ::WinTypeKeywords;
 
296
  friend class ::ExtGnu;
276
297
  friend class ::PragmaOnceUnitState;
277
298
  friend class ::PragmaOnce;
278
 
  friend class ::CCExprResolve;
279
 
  friend class ::CExprResolve;
 
299
  friend class ::CMatchSyntax;
280
300
 
281
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/List.h"
 
301
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/List.h"
282
302
 
283
303
  ListElement *_first;
284
304
  ListElement *_last;
314
334
  const ListElement *first () const { return _first; }
315
335
  const ListElement *last () const { return _last; }
316
336
  const ListElement *next (const ListElement *element) const
317
 
   { return element->_next; }
 
337
   { return element ? element->_next : 0; }
318
338
  const ListElement *prev (const ListElement *element) const 
319
 
   { return element->_prev; }
 
339
   { return element ? element->_prev : 0; }
320
340
};
321
341
 
322
342
 
324
344
 
325
345
#endif /* __list_h__ */
326
346
 
327
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
 
347
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
328
348
// This file is part of PUMA.
329
349
// Copyright (C) 1999-2003  The PUMA developer team.
330
350
//                                                                
353
373
 
354
374
 
355
375
 
356
 
#line 357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
376
#line 377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
357
377
} // closed Puma
 
378
class CCExprResolve;
 
379
class CExprResolve;
358
380
class WinIfExists;
359
381
class WinImportHandler;
360
382
class WinMacros;
361
 
class CMatchSyntax;
362
 
class ExtGnu;
 
383
class WinAsm;
 
384
class WinDeclSpecs;
 
385
class WinMemberExplSpec;
 
386
class WinTypeKeywords;
 
387
class WinFriend;
363
388
class ExtAC;
364
389
class ExtACBuilderCoupling;
365
390
class ExtACSyntaxCoupling;
366
391
class ExtACTree;
367
392
class ExtACKeywords;
368
 
class WinAsm;
369
 
class WinDeclSpecs;
370
 
class WinMemberExplSpec;
371
 
class WinTypeKeywords;
 
393
class ExtGnu;
372
394
class PragmaOnceUnitState;
373
395
class PragmaOnce;
374
 
class CCExprResolve;
375
 
class CExprResolve;
 
396
class CMatchSyntax;
376
397
namespace Puma {
377
398
 
378
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
 
399
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
379
400
class Printable {
380
 
#line 381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
401
#line 402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
402
  friend class ::CCExprResolve;
 
403
  friend class ::CExprResolve;
381
404
  friend class ::WinIfExists;
382
405
  friend class ::WinImportHandler;
383
406
  friend class ::WinMacros;
384
 
  friend class ::CMatchSyntax;
385
 
  friend class ::ExtGnu;
 
407
  friend class ::WinAsm;
 
408
  friend class ::WinDeclSpecs;
 
409
  friend class ::WinMemberExplSpec;
 
410
  friend class ::WinTypeKeywords;
 
411
  friend class ::WinFriend;
386
412
  friend class ::ExtAC;
387
413
  friend class ::ExtACBuilderCoupling;
388
414
  friend class ::ExtACSyntaxCoupling;
389
415
  friend class ::ExtACTree;
390
416
  friend class ::ExtACKeywords;
391
 
  friend class ::WinAsm;
392
 
  friend class ::WinDeclSpecs;
393
 
  friend class ::WinMemberExplSpec;
394
 
  friend class ::WinTypeKeywords;
 
417
  friend class ::ExtGnu;
395
418
  friend class ::PragmaOnceUnitState;
396
419
  friend class ::PragmaOnce;
397
 
  friend class ::CCExprResolve;
398
 
  friend class ::CExprResolve;
 
420
  friend class ::CMatchSyntax;
399
421
 
400
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Printable.h"
 
422
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Printable.h"
401
423
 
402
424
public:
403
425
  virtual ~Printable () {}
415
437
 
416
438
#endif /* __printable_h__ */
417
439
 
418
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
440
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
419
441
 
420
 
#line 421 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
442
#line 443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
421
443
 
422
444
#ifndef __ac_fwd_PragmaOnceUnitState__
423
445
#define __ac_fwd_PragmaOnceUnitState__
424
446
class PragmaOnceUnitState;
425
447
namespace AC {
426
448
  template <class JoinPoint>
427
 
  inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
449
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
450
  template <class JoinPoint>
 
451
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
428
452
}
429
453
#endif
430
454
 
431
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
432
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
455
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
456
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
433
457
#endif
434
458
 
435
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
436
 
 
437
 
#line 438 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
438
 
 
439
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
459
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
460
// This file is part of PUMA.
 
461
// Copyright (C) 1999-2003  The PUMA developer team.
 
462
//                                                                
 
463
// This program is free software;  you can redistribute it and/or 
 
464
// modify it under the terms of the GNU General Public License as 
 
465
// published by the Free Software Foundation; either version 2 of 
 
466
// the License, or (at your option) any later version.            
 
467
//                                                                
 
468
// This program is distributed in the hope that it will be useful,
 
469
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
470
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
471
// GNU General Public License for more details.                   
 
472
//                                                                
 
473
// You should have received a copy of the GNU General Public      
 
474
// License along with this program; if not, write to the Free     
 
475
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
476
// MA  02111-1307  USA                                            
 
477
 
 
478
#ifndef __UnitState__
 
479
#define __UnitState__
 
480
 
 
481
// The state of a unit: 
 
482
// 1. modified by manipulations and not updated at the class registry
 
483
// 2. modified by manipulations and updated at the class registry
 
484
// 3. unmodified by manipulations and not updated at the class registry
 
485
// 4. unmodified by manipulations and updated at the class registry
 
486
 
 
487
namespace Puma {
 
488
 
 
489
 
 
490
 
 
491
#line 492 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
492
} // closed Puma
 
493
class CCExprResolve;
 
494
class CExprResolve;
 
495
class WinIfExists;
 
496
class WinImportHandler;
 
497
class WinMacros;
 
498
class WinAsm;
 
499
class WinDeclSpecs;
 
500
class WinMemberExplSpec;
 
501
class WinTypeKeywords;
 
502
class WinFriend;
 
503
class ExtAC;
 
504
class ExtACBuilderCoupling;
 
505
class ExtACSyntaxCoupling;
 
506
class ExtACTree;
 
507
class ExtACKeywords;
 
508
class ExtGnu;
 
509
class PragmaOnceUnitState;
 
510
class PragmaOnce;
 
511
class CMatchSyntax;
 
512
namespace Puma {
 
513
 
 
514
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
515
 
 
516
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
517
} // closed Puma
 
518
 
 
519
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
520
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
521
 
 
522
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
440
523
// This file is part of PUMA.
441
524
// Copyright (C) 1999-2003  The PUMA developer team.
442
525
//                                                                
458
541
#ifndef __PragmaOnceUnitState__
459
542
#define __PragmaOnceUnitState__
460
543
 
461
 
using namespace Puma;
462
 
 
463
 
 
464
 
#line 465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
544
 
 
545
#line 546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
546
class CCExprResolve;
 
547
class CExprResolve;
465
548
class WinIfExists;
466
549
class WinImportHandler;
467
550
class WinMacros;
468
 
class CMatchSyntax;
469
 
class ExtGnu;
 
551
class WinAsm;
 
552
class WinDeclSpecs;
 
553
class WinMemberExplSpec;
 
554
class WinTypeKeywords;
 
555
class WinFriend;
470
556
class ExtAC;
471
557
class ExtACBuilderCoupling;
472
558
class ExtACSyntaxCoupling;
473
559
class ExtACTree;
474
560
class ExtACKeywords;
475
 
class WinAsm;
476
 
class WinDeclSpecs;
477
 
class WinMemberExplSpec;
478
 
class WinTypeKeywords;
 
561
class ExtGnu;
479
562
class PragmaOnce;
480
 
class CCExprResolve;
481
 
class CExprResolve;
 
563
class CMatchSyntax;
482
564
 
483
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
565
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
484
566
class PragmaOnceUnitState {
485
 
#line 486 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
567
#line 568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
486
568
 
487
569
public:
488
570
  static PragmaOnceUnitState *aspectof () {
494
576
  }
495
577
private:
496
578
 
497
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
579
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
498
580
 
499
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
581
#line 582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
582
  friend class ::CCExprResolve;
 
583
  friend class ::CExprResolve;
500
584
  friend class ::WinIfExists;
501
585
  friend class ::WinImportHandler;
502
586
  friend class ::WinMacros;
503
 
  friend class ::CMatchSyntax;
504
 
  friend class ::ExtGnu;
 
587
  friend class ::WinAsm;
 
588
  friend class ::WinDeclSpecs;
 
589
  friend class ::WinMemberExplSpec;
 
590
  friend class ::WinTypeKeywords;
 
591
  friend class ::WinFriend;
505
592
  friend class ::ExtAC;
506
593
  friend class ::ExtACBuilderCoupling;
507
594
  friend class ::ExtACSyntaxCoupling;
508
595
  friend class ::ExtACTree;
509
596
  friend class ::ExtACKeywords;
510
 
  friend class ::WinAsm;
511
 
  friend class ::WinDeclSpecs;
512
 
  friend class ::WinMemberExplSpec;
513
 
  friend class ::WinTypeKeywords;
 
597
  friend class ::ExtGnu;
514
598
  friend class ::PragmaOnce;
515
 
  friend class ::CCExprResolve;
516
 
  friend class ::CExprResolve;
 
599
  friend class ::CMatchSyntax;
517
600
 
518
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
601
#line 22 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
519
602
 
520
603
  /******************************************************/
521
604
  /* specific #pragma once unit state                   */
523
606
 
524
607
  // pointcut definitions
525
608
  
526
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
609
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
527
610
 
528
611
 
529
612
  
530
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
613
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
531
614
 
532
615
  
533
616
  // initialize new state flag
534
617
  
535
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
618
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
536
619
 
537
620
public: template<class JoinPoint> void __a0_after 
538
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
621
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
539
622
 
540
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
623
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
541
624
(JoinPoint *tjp)
542
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
625
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
543
626
 {
544
 
#line 545 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
627
#line 628 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
545
628
 
546
629
  JoinPoint *&thisJoinPoint = tjp;
547
630
 
548
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
631
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
549
632
 
550
 
#line 551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
633
#line 634 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
551
634
 
552
635
  typedef typename JoinPoint::That __JP_That;
553
636
  typedef typename JoinPoint::Target __JP_Target;
554
637
  typedef typename JoinPoint::Result __JP_Result;
555
638
 
556
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
639
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
557
640
 
558
641
    thisJoinPoint->that ()->_once = false;
559
642
  }
560
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
561
 
 
562
 
private:
563
 
 
564
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
643
#line 644 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
644
 
 
645
private:
 
646
 
 
647
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
648
 
 
649
  
 
650
  // initialize new flag for all managed units 
 
651
  
 
652
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
653
 
 
654
public: template<class JoinPoint> void __a1_after 
 
655
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
656
 
 
657
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
658
(JoinPoint *tjp)
 
659
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
660
 {
 
661
#line 662 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
662
 
 
663
  typedef typename JoinPoint::That __JP_That;
 
664
  typedef typename JoinPoint::Target __JP_Target;
 
665
  typedef typename JoinPoint::Result __JP_Result;
 
666
 
 
667
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
668
 
 
669
    // go through the whole unit hash table and reset the 
 
670
    // `#pragma once' state of the units
 
671
    typename __JP_That
 
672
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
673
::UMapIter iter;
 
674
    for (iter = tjp->that()->_umap.begin (); iter != tjp->that()->_umap.end (); ++iter)
 
675
      (*iter).second->state ().onlyOnce (false);
 
676
  }
 
677
#line 678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
678
 
 
679
private:
 
680
 
 
681
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
565
682
 
566
683
 
567
684
protected:
568
685
  // this aspect should never be instantiated directly
569
686
  PragmaOnceUnitState () {}
570
687
};
571
 
#line 572 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
688
#line 689 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
572
689
 
573
690
namespace AC {
574
691
  template <class JoinPoint>
575
 
  inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
 
692
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp) {
576
693
    ::PragmaOnceUnitState::aspectof()->__a0_after (tjp);
577
694
  }
 
695
  template <class JoinPoint>
 
696
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp) {
 
697
    ::PragmaOnceUnitState::aspectof()->__a1_after (tjp);
 
698
  }
578
699
579
700
 
580
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
701
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
581
702
 
582
703
 
583
704
 
584
705
#endif /* __PragmaOnceUnitState__ */
585
706
 
586
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
587
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
588
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
589
 
 
590
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
591
 
// This file is part of PUMA.
592
 
// Copyright (C) 1999-2003  The PUMA developer team.
593
 
//                                                                
594
 
// This program is free software;  you can redistribute it and/or 
595
 
// modify it under the terms of the GNU General Public License as 
596
 
// published by the Free Software Foundation; either version 2 of 
597
 
// the License, or (at your option) any later version.            
598
 
//                                                                
599
 
// This program is distributed in the hope that it will be useful,
600
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
601
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
602
 
// GNU General Public License for more details.                   
603
 
//                                                                
604
 
// You should have received a copy of the GNU General Public      
605
 
// License along with this program; if not, write to the Free     
606
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
607
 
// MA  02111-1307  USA                                            
608
 
 
609
 
#ifndef __UnitState__
610
 
#define __UnitState__
611
 
 
612
 
// The state of a unit: 
613
 
// 1. modified by manipulations and not updated at the class registry
614
 
// 2. modified by manipulations and updated at the class registry
615
 
// 3. unmodified by manipulations and not updated at the class registry
616
 
// 4. unmodified by manipulations and updated at the class registry
617
 
 
618
 
namespace Puma {
619
 
 
620
 
 
621
 
 
622
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
623
 
} // closed Puma
624
 
class WinIfExists;
625
 
class WinImportHandler;
626
 
class WinMacros;
627
 
class CMatchSyntax;
628
 
class ExtGnu;
629
 
class ExtAC;
630
 
class ExtACBuilderCoupling;
631
 
class ExtACSyntaxCoupling;
632
 
class ExtACTree;
633
 
class ExtACKeywords;
634
 
class WinAsm;
635
 
class WinDeclSpecs;
636
 
class WinMemberExplSpec;
637
 
class WinTypeKeywords;
638
 
class PragmaOnceUnitState;
639
 
class PragmaOnce;
640
 
class CCExprResolve;
641
 
class CExprResolve;
642
 
namespace Puma {
643
 
 
644
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
707
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
708
#endif
 
709
namespace Puma {
 
710
 
 
711
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
645
712
class UnitState {
646
 
#line 647 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
713
#line 714 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
714
  friend class ::CCExprResolve;
 
715
  friend class ::CExprResolve;
647
716
  friend class ::WinIfExists;
648
717
  friend class ::WinImportHandler;
649
718
  friend class ::WinMacros;
650
 
  friend class ::CMatchSyntax;
651
 
  friend class ::ExtGnu;
 
719
  friend class ::WinAsm;
 
720
  friend class ::WinDeclSpecs;
 
721
  friend class ::WinMemberExplSpec;
 
722
  friend class ::WinTypeKeywords;
 
723
  friend class ::WinFriend;
652
724
  friend class ::ExtAC;
653
725
  friend class ::ExtACBuilderCoupling;
654
726
  friend class ::ExtACSyntaxCoupling;
655
727
  friend class ::ExtACTree;
656
728
  friend class ::ExtACKeywords;
657
 
  friend class ::WinAsm;
658
 
  friend class ::WinDeclSpecs;
659
 
  friend class ::WinMemberExplSpec;
660
 
  friend class ::WinTypeKeywords;
 
729
  friend class ::ExtGnu;
661
730
  friend class ::PragmaOnceUnitState;
662
731
  friend class ::PragmaOnce;
663
 
  friend class ::CCExprResolve;
664
 
  friend class ::CExprResolve;
 
732
  friend class ::CMatchSyntax;
665
733
 
666
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
734
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
667
735
 
668
736
  bool _modified;
669
737
  bool _updated;
671
739
      
672
740
public:
673
741
  
674
 
#line 675 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
675
 
public: inline void __exec_old_C1();
 
742
#line 743 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
743
public: __attribute__((always_inline)) inline void __exec_old_C1();
676
744
 
677
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
745
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
678
746
UnitState ();
679
747
      
680
748
  bool isModified () const;
688
756
  void updated ();
689
757
   private:
690
758
 
691
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
 
759
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnceUnitState.ah"
692
760
 bool _once ;
693
761
public :
694
762
 
695
763
bool onlyOnce ( ) const { return _once ; }
696
764
void onlyOnce ( bool v ) { _once = v ; }
697
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
698
 
 
699
 
#line 700 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
700
 
 
701
 
struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
702
 
  typedef void Result;
703
 
  typedef ::Puma::UnitState That;
704
 
  typedef ::Puma::UnitState Target;
705
 
  static const int JPID = 5;
 
765
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
766
 
 
767
#line 768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
768
 
 
769
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 {
 
770
  typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 __TJP;
 
771
  typedef TResult Result;
 
772
  typedef TThat   That;
 
773
  typedef TTarget Target;
 
774
  enum { ARGS = TArgs::ARGS };
 
775
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
776
  static const int JPID = 3453;
706
777
  static const AC::JPType JPTYPE = (AC::JPType)16;
707
778
  struct Res {
708
779
    typedef void Type;
709
780
    typedef void ReferredType;
710
781
  };
711
 
  enum { ARGS = 1 };
712
 
  template <int I, int DUMMY = 0> struct Arg {
713
 
    typedef void Type;
714
 
    typedef void ReferredType;
715
 
  };
716
 
  template <int DUMMY> struct Arg<0, DUMMY> {
717
 
    typedef const ::Puma::UnitState & Type;
718
 
    typedef const ::Puma::UnitState ReferredType;
719
 
  };
720
782
 
721
783
  That *_that;
722
784
 
725
787
};
726
788
 
727
789
 
728
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
790
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
729
791
 
730
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
792
#line 793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
731
793
 
732
794
public:
733
795
inline UnitState (const Puma::UnitState & arg0) : _modified (arg0._modified), _updated (arg0._updated), _lastModified (arg0._lastModified), _once (arg0._once) {
734
 
  TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0 tjp;
735
 
  tjp._that =  (TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0::That*)this;
736
 
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0> (&tjp);
 
796
  typedef TJP__ZN4Puma9UnitStateC1ERKN4PumaE9UnitState_0< void, ::Puma::UnitState , ::Puma::UnitState ,  AC::TL< const ::Puma::UnitState & , AC::TLE > > __TJP;
 
797
  __TJP tjp;
 
798
  tjp._that =  (__TJP::That*)this;
 
799
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<__TJP> (&tjp);
737
800
 
738
801
}
739
802
 
740
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
803
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
741
804
};
742
805
 
743
806
 
744
 
#line 745 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
745
 
 
746
 
 
747
 
struct TJP__ZN4Puma9UnitStateC1Ev_0 {
748
 
  typedef void Result;
749
 
  typedef ::Puma::UnitState That;
750
 
  typedef ::Puma::UnitState Target;
751
 
  static const int JPID = 5;
 
807
#line 808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
808
 
 
809
 
 
810
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma9UnitStateC1Ev_0 {
 
811
  typedef TJP__ZN4Puma9UnitStateC1Ev_0 __TJP;
 
812
  typedef TResult Result;
 
813
  typedef TThat   That;
 
814
  typedef TTarget Target;
 
815
  enum { ARGS = TArgs::ARGS };
 
816
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
817
  static const int JPID = 3429;
752
818
  static const AC::JPType JPTYPE = (AC::JPType)16;
753
819
  struct Res {
754
820
    typedef void Type;
755
821
    typedef void ReferredType;
756
822
  };
757
 
  enum { ARGS = 0 };
758
 
  template <int I, int DUMMY = 0> struct Arg {
759
 
    typedef void Type;
760
 
    typedef void ReferredType;
761
 
  };
762
823
 
763
824
  That *_that;
764
825
 
767
828
};
768
829
 
769
830
 
770
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
831
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
771
832
inline UnitState::UnitState ()
772
833
 
773
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
834
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
774
835
{
775
 
  TJP__ZN4Puma9UnitStateC1Ev_0 tjp;
776
 
  tjp._that =  (TJP__ZN4Puma9UnitStateC1Ev_0::That*)this;
777
 
this->__exec_old_C1();
778
 
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<TJP__ZN4Puma9UnitStateC1Ev_0> (&tjp);
779
 
 
 
836
  typedef TJP__ZN4Puma9UnitStateC1Ev_0< void, ::Puma::UnitState , ::Puma::UnitState ,  AC::TLE > __TJP;
 
837
    __TJP tjp;
 
838
  tjp._that =  (__TJP::That*)this;
 
839
    this->__exec_old_C1();
 
840
  AC::invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after<__TJP> (&tjp);
 
841
  
780
842
}
781
 
inline void Puma::UnitState::__exec_old_C1()
782
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
 
843
__attribute__((always_inline)) inline void Puma::UnitState::__exec_old_C1()
 
844
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitState.h"
783
845
{ _modified = false; _updated = false; _lastModified = 0; }
784
846
 
785
847
inline bool UnitState::isModified () const 
803
865
 
804
866
#endif /* __UnitState__ */
805
867
 
806
 
#line 807 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
807
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_UnitState_h__
808
 
 
809
 
#line 72 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitState.h"
810
 
 
811
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
 
868
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
812
869
namespace Puma {
813
870
 
814
871
 
815
872
 
816
 
#line 817 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
873
#line 874 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
817
874
} // closed Puma
 
875
class CCExprResolve;
 
876
class CExprResolve;
818
877
class WinIfExists;
819
878
class WinImportHandler;
820
879
class WinMacros;
821
 
class CMatchSyntax;
822
 
class ExtGnu;
 
880
class WinAsm;
 
881
class WinDeclSpecs;
 
882
class WinMemberExplSpec;
 
883
class WinTypeKeywords;
 
884
class WinFriend;
823
885
class ExtAC;
824
886
class ExtACBuilderCoupling;
825
887
class ExtACSyntaxCoupling;
826
888
class ExtACTree;
827
889
class ExtACKeywords;
828
 
class WinAsm;
829
 
class WinDeclSpecs;
830
 
class WinMemberExplSpec;
831
 
class WinTypeKeywords;
 
890
class ExtGnu;
832
891
class PragmaOnceUnitState;
833
892
class PragmaOnce;
834
 
class CCExprResolve;
835
 
class CExprResolve;
 
893
class CMatchSyntax;
836
894
namespace Puma {
837
895
 
838
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
 
896
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
839
897
class Unit : public List, public Printable {
840
 
#line 841 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
898
#line 899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
899
  friend class ::CCExprResolve;
 
900
  friend class ::CExprResolve;
841
901
  friend class ::WinIfExists;
842
902
  friend class ::WinImportHandler;
843
903
  friend class ::WinMacros;
844
 
  friend class ::CMatchSyntax;
845
 
  friend class ::ExtGnu;
 
904
  friend class ::WinAsm;
 
905
  friend class ::WinDeclSpecs;
 
906
  friend class ::WinMemberExplSpec;
 
907
  friend class ::WinTypeKeywords;
 
908
  friend class ::WinFriend;
846
909
  friend class ::ExtAC;
847
910
  friend class ::ExtACBuilderCoupling;
848
911
  friend class ::ExtACSyntaxCoupling;
849
912
  friend class ::ExtACTree;
850
913
  friend class ::ExtACKeywords;
851
 
  friend class ::WinAsm;
852
 
  friend class ::WinDeclSpecs;
853
 
  friend class ::WinMemberExplSpec;
854
 
  friend class ::WinTypeKeywords;
 
914
  friend class ::ExtGnu;
855
915
  friend class ::PragmaOnceUnitState;
856
916
  friend class ::PragmaOnce;
857
 
  friend class ::CCExprResolve;
858
 
  friend class ::CExprResolve;
 
917
  friend class ::CMatchSyntax;
859
918
 
860
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Unit.h"
 
919
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Unit.h"
861
920
 
862
921
  char *_name;
863
922
  UnitState _state;
879
938
 
880
939
#endif /* __unit_h__ */
881
940
 
882
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Parser.h"
 
941
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Parser.h"
883
942
// This file is part of PUMA.
884
943
// Copyright (C) 1999-2003  The PUMA developer team.
885
944
//                                                                
902
961
#define __Parser__
903
962
 
904
963
 
905
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
906
 
 
907
 
#line 908 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
964
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
965
 
 
966
#line 967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
967
 
 
968
#ifndef __ac_fwd_ExtGnu__
 
969
#define __ac_fwd_ExtGnu__
 
970
class ExtGnu;
 
971
namespace AC {
 
972
  template <class JoinPoint>
 
973
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp);
 
974
  template <class JoinPoint>
 
975
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp);
 
976
  template <class JoinPoint>
 
977
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
 
978
  template <class JoinPoint>
 
979
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
 
980
  template <class JoinPoint>
 
981
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
 
982
  template <class JoinPoint>
 
983
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
 
984
  template <class JoinPoint>
 
985
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
 
986
  template <class JoinPoint>
 
987
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
 
988
  template <class JoinPoint>
 
989
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
 
990
  template <class JoinPoint>
 
991
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
 
992
  template <class JoinPoint>
 
993
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
 
994
  template <class JoinPoint>
 
995
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
 
996
  template <class JoinPoint>
 
997
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
 
998
  template <class JoinPoint>
 
999
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
 
1000
  template <class JoinPoint>
 
1001
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
 
1002
  template <class JoinPoint>
 
1003
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
1004
  template <class JoinPoint>
 
1005
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp);
 
1006
}
 
1007
#endif
 
1008
 
 
1009
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
1010
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
1011
#endif
908
1012
 
909
1013
#ifndef __ac_fwd_CMatchSyntax__
910
1014
#define __ac_fwd_CMatchSyntax__
911
1015
class CMatchSyntax;
912
1016
namespace AC {
913
1017
  template <class JoinPoint>
914
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp);
915
 
  template <class JoinPoint>
916
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp);
917
 
  template <class JoinPoint>
918
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp);
919
 
  template <class JoinPoint>
920
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp);
921
 
  template <class JoinPoint>
922
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp);
923
 
  template <class JoinPoint>
924
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp);
925
 
  template <class JoinPoint>
926
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp);
927
 
  template <class JoinPoint>
928
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp);
929
 
  template <class JoinPoint>
930
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp);
931
 
  template <class JoinPoint>
932
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp);
933
 
  template <class JoinPoint>
934
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp);
935
 
  template <class JoinPoint>
936
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp);
937
 
  template <class JoinPoint>
938
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp);
939
 
  template <class JoinPoint>
940
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp);
941
 
  template <class JoinPoint>
942
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp);
943
 
  template <class JoinPoint>
944
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp);
945
 
  template <class JoinPoint>
946
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp);
947
 
  template <class JoinPoint>
948
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp);
949
 
  template <class JoinPoint>
950
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp);
951
 
  template <class JoinPoint>
952
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp);
953
 
  template <class JoinPoint>
954
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp);
955
 
  template <class JoinPoint>
956
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp);
957
 
  template <class JoinPoint>
958
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp);
959
 
  template <class JoinPoint>
960
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp);
961
 
  template <class JoinPoint>
962
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp);
963
 
  template <class JoinPoint, class Binding>
964
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp);
965
 
}
966
 
#endif
967
 
 
968
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
969
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
970
 
#endif
971
 
 
972
 
#ifndef __ac_fwd_ExtGnu__
973
 
#define __ac_fwd_ExtGnu__
974
 
class ExtGnu;
975
 
namespace AC {
976
 
  template <class JoinPoint, class Binding>
977
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp);
978
 
  template <class JoinPoint, class Binding>
979
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp);
980
 
  template <class JoinPoint>
981
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
982
 
  template <class JoinPoint>
983
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
984
 
  template <class JoinPoint>
985
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
986
 
  template <class JoinPoint>
987
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
988
 
  template <class JoinPoint>
989
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
990
 
  template <class JoinPoint, class Binding>
991
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
992
 
  template <class JoinPoint, class Binding>
993
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
994
 
  template <class JoinPoint, class Binding>
995
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
996
 
  template <class JoinPoint, class Binding>
997
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
998
 
  template <class JoinPoint, class Binding>
999
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
1000
 
  template <class JoinPoint, class Binding>
1001
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
1002
 
  template <class JoinPoint>
1003
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
1004
 
  template <class JoinPoint>
1005
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
1006
 
  template <class JoinPoint, class Binding>
1007
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
1008
 
}
1009
 
#endif
1010
 
 
1011
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
1012
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
1013
 
#endif
1014
 
 
1015
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
1018
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp);
 
1019
  template <class JoinPoint>
 
1020
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp);
 
1021
  template <class JoinPoint>
 
1022
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp);
 
1023
  template <class JoinPoint>
 
1024
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp);
 
1025
  template <class JoinPoint>
 
1026
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp);
 
1027
  template <class JoinPoint>
 
1028
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp);
 
1029
  template <class JoinPoint>
 
1030
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp);
 
1031
  template <class JoinPoint>
 
1032
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp);
 
1033
  template <class JoinPoint>
 
1034
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp);
 
1035
  template <class JoinPoint>
 
1036
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp);
 
1037
  template <class JoinPoint>
 
1038
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp);
 
1039
  template <class JoinPoint>
 
1040
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp);
 
1041
  template <class JoinPoint>
 
1042
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp);
 
1043
  template <class JoinPoint>
 
1044
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp);
 
1045
  template <class JoinPoint>
 
1046
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp);
 
1047
  template <class JoinPoint>
 
1048
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp);
 
1049
  template <class JoinPoint>
 
1050
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp);
 
1051
  template <class JoinPoint>
 
1052
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp);
 
1053
  template <class JoinPoint>
 
1054
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp);
 
1055
  template <class JoinPoint>
 
1056
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp);
 
1057
  template <class JoinPoint>
 
1058
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp);
 
1059
  template <class JoinPoint>
 
1060
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp);
 
1061
  template <class JoinPoint>
 
1062
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp);
 
1063
  template <class JoinPoint>
 
1064
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp);
 
1065
  template <class JoinPoint>
 
1066
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp);
 
1067
  template <class JoinPoint>
 
1068
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp);
 
1069
}
 
1070
#endif
 
1071
 
 
1072
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
1073
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
1074
#endif
 
1075
 
 
1076
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
1016
1077
// This file is part of PUMA.
1017
1078
// Copyright (C) 1999-2003  The PUMA developer team.
1018
1079
//                                                                
1035
1096
#define __Syntax_h__
1036
1097
 
1037
1098
 
1038
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
1099
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
1039
1100
// This file is part of PUMA.
1040
1101
// Copyright (C) 1999-2003  The PUMA developer team.
1041
1102
//                                                                
1063
1124
 
1064
1125
#include <stdlib.h>
1065
1126
 
1066
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
1127
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
1067
1128
// This file is part of PUMA.
1068
1129
// Copyright (C) 1999-2003  The PUMA developer team.
1069
1130
//                                                                
1091
1152
 
1092
1153
 
1093
1154
 
1094
 
#line 1095 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1155
#line 1156 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
1095
1156
} // closed Puma
 
1157
class CCExprResolve;
 
1158
class CExprResolve;
1096
1159
class WinIfExists;
1097
1160
class WinImportHandler;
1098
1161
class WinMacros;
1099
 
class CMatchSyntax;
1100
 
class ExtGnu;
 
1162
class WinAsm;
 
1163
class WinDeclSpecs;
 
1164
class WinMemberExplSpec;
 
1165
class WinTypeKeywords;
 
1166
class WinFriend;
1101
1167
class ExtAC;
1102
1168
class ExtACBuilderCoupling;
1103
1169
class ExtACSyntaxCoupling;
1104
1170
class ExtACTree;
1105
1171
class ExtACKeywords;
1106
 
class WinAsm;
1107
 
class WinDeclSpecs;
1108
 
class WinMemberExplSpec;
1109
 
class WinTypeKeywords;
 
1172
class ExtGnu;
1110
1173
class PragmaOnceUnitState;
1111
1174
class PragmaOnce;
1112
 
class CCExprResolve;
1113
 
class CExprResolve;
 
1175
class CMatchSyntax;
1114
1176
namespace Puma {
1115
1177
 
1116
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
1178
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
1117
1179
class LanguageID {
1118
 
#line 1119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1180
#line 1181 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
1181
  friend class ::CCExprResolve;
 
1182
  friend class ::CExprResolve;
1119
1183
  friend class ::WinIfExists;
1120
1184
  friend class ::WinImportHandler;
1121
1185
  friend class ::WinMacros;
1122
 
  friend class ::CMatchSyntax;
1123
 
  friend class ::ExtGnu;
 
1186
  friend class ::WinAsm;
 
1187
  friend class ::WinDeclSpecs;
 
1188
  friend class ::WinMemberExplSpec;
 
1189
  friend class ::WinTypeKeywords;
 
1190
  friend class ::WinFriend;
1124
1191
  friend class ::ExtAC;
1125
1192
  friend class ::ExtACBuilderCoupling;
1126
1193
  friend class ::ExtACSyntaxCoupling;
1127
1194
  friend class ::ExtACTree;
1128
1195
  friend class ::ExtACKeywords;
1129
 
  friend class ::WinAsm;
1130
 
  friend class ::WinDeclSpecs;
1131
 
  friend class ::WinMemberExplSpec;
1132
 
  friend class ::WinTypeKeywords;
 
1196
  friend class ::ExtGnu;
1133
1197
  friend class ::PragmaOnceUnitState;
1134
1198
  friend class ::PragmaOnce;
1135
 
  friend class ::CCExprResolve;
1136
 
  friend class ::CExprResolve;
 
1199
  friend class ::CMatchSyntax;
1137
1200
 
1138
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LanguageID.h"
 
1201
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/LanguageID.h"
1139
1202
 
1140
1203
  const char *_id;
1141
1204
 
1152
1215
 
1153
1216
#endif /* __language_id_h__ */
1154
1217
 
1155
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
 
1218
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
1156
1219
// This file is part of PUMA.
1157
1220
// Copyright (C) 1999-2003  The PUMA developer team.
1158
1221
//                                                                
1175
1238
#define __location_h__
1176
1239
 
1177
1240
 
1178
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
1241
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
 
1242
// This file is part of PUMA.
 
1243
// Copyright (C) 1999-2003  The PUMA developer team.
 
1244
//                                                                
 
1245
// This program is free software;  you can redistribute it and/or 
 
1246
// modify it under the terms of the GNU General Public License as 
 
1247
// published by the Free Software Foundation; either version 2 of 
 
1248
// the License, or (at your option) any later version.            
 
1249
//                                                                
 
1250
// This program is distributed in the hope that it will be useful,
 
1251
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
1252
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
1253
// GNU General Public License for more details.                   
 
1254
//                                                                
 
1255
// You should have received a copy of the GNU General Public      
 
1256
// License along with this program; if not, write to the Free     
 
1257
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
1258
// MA  02111-1307  USA                                            
 
1259
 
 
1260
#ifndef __filename_h__
 
1261
#define __filename_h__
 
1262
 
 
1263
 
 
1264
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1179
1265
// This file is part of PUMA.
1180
1266
// Copyright (C) 1999-2003  The PUMA developer team.
1181
1267
//                                                                
1198
1284
#define __smart_ptr_h__
1199
1285
 
1200
1286
 
1201
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
1287
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
1202
1288
// This file is part of PUMA.
1203
1289
// Copyright (C) 1999-2003  The PUMA developer team.
1204
1290
//                                                                
1224
1310
 
1225
1311
 
1226
1312
 
1227
 
#line 1228 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1313
#line 1314 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
1228
1314
} // closed Puma
 
1315
class CCExprResolve;
 
1316
class CExprResolve;
1229
1317
class WinIfExists;
1230
1318
class WinImportHandler;
1231
1319
class WinMacros;
1232
 
class CMatchSyntax;
1233
 
class ExtGnu;
 
1320
class WinAsm;
 
1321
class WinDeclSpecs;
 
1322
class WinMemberExplSpec;
 
1323
class WinTypeKeywords;
 
1324
class WinFriend;
1234
1325
class ExtAC;
1235
1326
class ExtACBuilderCoupling;
1236
1327
class ExtACSyntaxCoupling;
1237
1328
class ExtACTree;
1238
1329
class ExtACKeywords;
1239
 
class WinAsm;
1240
 
class WinDeclSpecs;
1241
 
class WinMemberExplSpec;
1242
 
class WinTypeKeywords;
 
1330
class ExtGnu;
1243
1331
class PragmaOnceUnitState;
1244
1332
class PragmaOnce;
1245
 
class CCExprResolve;
1246
 
class CExprResolve;
 
1333
class CMatchSyntax;
1247
1334
namespace Puma {
1248
1335
 
1249
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
1336
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
1250
1337
class RefCnt {
1251
 
#line 1252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1338
#line 1339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
1339
  friend class ::CCExprResolve;
 
1340
  friend class ::CExprResolve;
1252
1341
  friend class ::WinIfExists;
1253
1342
  friend class ::WinImportHandler;
1254
1343
  friend class ::WinMacros;
1255
 
  friend class ::CMatchSyntax;
1256
 
  friend class ::ExtGnu;
 
1344
  friend class ::WinAsm;
 
1345
  friend class ::WinDeclSpecs;
 
1346
  friend class ::WinMemberExplSpec;
 
1347
  friend class ::WinTypeKeywords;
 
1348
  friend class ::WinFriend;
1257
1349
  friend class ::ExtAC;
1258
1350
  friend class ::ExtACBuilderCoupling;
1259
1351
  friend class ::ExtACSyntaxCoupling;
1260
1352
  friend class ::ExtACTree;
1261
1353
  friend class ::ExtACKeywords;
1262
 
  friend class ::WinAsm;
1263
 
  friend class ::WinDeclSpecs;
1264
 
  friend class ::WinMemberExplSpec;
1265
 
  friend class ::WinTypeKeywords;
 
1354
  friend class ::ExtGnu;
1266
1355
  friend class ::PragmaOnceUnitState;
1267
1356
  friend class ::PragmaOnce;
1268
 
  friend class ::CCExprResolve;
1269
 
  friend class ::CExprResolve;
 
1357
  friend class ::CMatchSyntax;
1270
1358
 
1271
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/RefCnt.h"
 
1359
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/RefCnt.h"
1272
1360
 
1273
1361
  int _counter;
1274
1362
 
1286
1374
 
1287
1375
#endif /* __ref_cnt_h__ */
1288
1376
 
1289
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
1377
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1290
1378
namespace Puma {
1291
1379
 
1292
1380
 
1293
1381
 
1294
 
#line 1295 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1382
#line 1383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
1295
1383
} // closed Puma
 
1384
class CCExprResolve;
 
1385
class CExprResolve;
1296
1386
class WinIfExists;
1297
1387
class WinImportHandler;
1298
1388
class WinMacros;
1299
 
class CMatchSyntax;
1300
 
class ExtGnu;
 
1389
class WinAsm;
 
1390
class WinDeclSpecs;
 
1391
class WinMemberExplSpec;
 
1392
class WinTypeKeywords;
 
1393
class WinFriend;
1301
1394
class ExtAC;
1302
1395
class ExtACBuilderCoupling;
1303
1396
class ExtACSyntaxCoupling;
1304
1397
class ExtACTree;
1305
1398
class ExtACKeywords;
1306
 
class WinAsm;
1307
 
class WinDeclSpecs;
1308
 
class WinMemberExplSpec;
1309
 
class WinTypeKeywords;
 
1399
class ExtGnu;
1310
1400
class PragmaOnceUnitState;
1311
1401
class PragmaOnce;
1312
 
class CCExprResolve;
1313
 
class CExprResolve;
 
1402
class CMatchSyntax;
1314
1403
namespace Puma {
1315
1404
 
1316
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
1405
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1317
1406
class SmartPtr {
1318
 
#line 1319 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1407
#line 1408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
1408
  friend class ::CCExprResolve;
 
1409
  friend class ::CExprResolve;
1319
1410
  friend class ::WinIfExists;
1320
1411
  friend class ::WinImportHandler;
1321
1412
  friend class ::WinMacros;
1322
 
  friend class ::CMatchSyntax;
1323
 
  friend class ::ExtGnu;
 
1413
  friend class ::WinAsm;
 
1414
  friend class ::WinDeclSpecs;
 
1415
  friend class ::WinMemberExplSpec;
 
1416
  friend class ::WinTypeKeywords;
 
1417
  friend class ::WinFriend;
1324
1418
  friend class ::ExtAC;
1325
1419
  friend class ::ExtACBuilderCoupling;
1326
1420
  friend class ::ExtACSyntaxCoupling;
1327
1421
  friend class ::ExtACTree;
1328
1422
  friend class ::ExtACKeywords;
1329
 
  friend class ::WinAsm;
1330
 
  friend class ::WinDeclSpecs;
1331
 
  friend class ::WinMemberExplSpec;
1332
 
  friend class ::WinTypeKeywords;
 
1423
  friend class ::ExtGnu;
1333
1424
  friend class ::PragmaOnceUnitState;
1334
1425
  friend class ::PragmaOnce;
1335
 
  friend class ::CCExprResolve;
1336
 
  friend class ::CExprResolve;
 
1426
  friend class ::CMatchSyntax;
1337
1427
 
1338
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
 
1428
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SmartPtr.h"
1339
1429
 
1340
1430
  RefCnt *_data;
1341
1431
 
1357
1447
 
1358
1448
#endif /* __smart_ptr_h__ */
1359
1449
 
1360
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
1361
 
// This file is part of PUMA.
1362
 
// Copyright (C) 1999-2003  The PUMA developer team.
1363
 
//                                                                
1364
 
// This program is free software;  you can redistribute it and/or 
1365
 
// modify it under the terms of the GNU General Public License as 
1366
 
// published by the Free Software Foundation; either version 2 of 
1367
 
// the License, or (at your option) any later version.            
1368
 
//                                                                
1369
 
// This program is distributed in the hope that it will be useful,
1370
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
1371
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
1372
 
// GNU General Public License for more details.                   
1373
 
//                                                                
1374
 
// You should have received a copy of the GNU General Public      
1375
 
// License along with this program; if not, write to the Free     
1376
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
1377
 
// MA  02111-1307  USA                                            
1378
 
 
1379
 
#ifndef __location_info_h__
1380
 
#define __location_info_h__
1381
 
 
1382
 
 
1383
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
1384
 
// This file is part of PUMA.
1385
 
// Copyright (C) 1999-2003  The PUMA developer team.
1386
 
//                                                                
1387
 
// This program is free software;  you can redistribute it and/or 
1388
 
// modify it under the terms of the GNU General Public License as 
1389
 
// published by the Free Software Foundation; either version 2 of 
1390
 
// the License, or (at your option) any later version.            
1391
 
//                                                                
1392
 
// This program is distributed in the hope that it will be useful,
1393
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
1394
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
1395
 
// GNU General Public License for more details.                   
1396
 
//                                                                
1397
 
// You should have received a copy of the GNU General Public      
1398
 
// License along with this program; if not, write to the Free     
1399
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
1400
 
// MA  02111-1307  USA                                            
1401
 
 
1402
 
#ifndef __filename_h__
1403
 
#define __filename_h__
1404
 
 
1405
 
 
1406
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
1450
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
1407
1451
// This file is part of PUMA.
1408
1452
// Copyright (C) 1999-2003  The PUMA developer team.
1409
1453
//                                                                
1426
1470
#define __filename_info_h__
1427
1471
 
1428
1472
 
1429
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
1473
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
1430
1474
// This file is part of PUMA.
1431
1475
// Copyright (C) 1999-2003  The PUMA developer team.
1432
1476
//                                                                
1449
1493
#define __DString_h__
1450
1494
 
1451
1495
 
1452
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1496
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1453
1497
// This file is part of PUMA.
1454
1498
// Copyright (C) 1999-2003  The PUMA developer team.
1455
1499
//                                                                
1472
1516
#define __StrHashTable_h__
1473
1517
 
1474
1518
 
1475
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1519
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1476
1520
// This file is part of PUMA.
1477
1521
// Copyright (C) 1999-2003  The PUMA developer team.
1478
1522
//                                                                
1495
1539
#define __StrHashKey_h__
1496
1540
 
1497
1541
 
1498
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
1542
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
1499
1543
// This file is part of PUMA.
1500
1544
// Copyright (C) 1999-2003  The PUMA developer team.
1501
1545
//                                                                
1525
1569
class Unit;
1526
1570
 
1527
1571
 
1528
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1572
#line 1573 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
1529
1573
} // closed Puma
 
1574
class CCExprResolve;
 
1575
class CExprResolve;
1530
1576
class WinIfExists;
1531
1577
class WinImportHandler;
1532
1578
class WinMacros;
1533
 
class CMatchSyntax;
1534
 
class ExtGnu;
 
1579
class WinAsm;
 
1580
class WinDeclSpecs;
 
1581
class WinMemberExplSpec;
 
1582
class WinTypeKeywords;
 
1583
class WinFriend;
1535
1584
class ExtAC;
1536
1585
class ExtACBuilderCoupling;
1537
1586
class ExtACSyntaxCoupling;
1538
1587
class ExtACTree;
1539
1588
class ExtACKeywords;
1540
 
class WinAsm;
1541
 
class WinDeclSpecs;
1542
 
class WinMemberExplSpec;
1543
 
class WinTypeKeywords;
 
1589
class ExtGnu;
1544
1590
class PragmaOnceUnitState;
1545
1591
class PragmaOnce;
1546
 
class CCExprResolve;
1547
 
class CExprResolve;
 
1592
class CMatchSyntax;
1548
1593
namespace Puma {
1549
1594
 
1550
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
1595
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
1551
1596
class StrCol {
1552
 
#line 1553 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1597
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
1598
  friend class ::CCExprResolve;
 
1599
  friend class ::CExprResolve;
1553
1600
  friend class ::WinIfExists;
1554
1601
  friend class ::WinImportHandler;
1555
1602
  friend class ::WinMacros;
1556
 
  friend class ::CMatchSyntax;
1557
 
  friend class ::ExtGnu;
 
1603
  friend class ::WinAsm;
 
1604
  friend class ::WinDeclSpecs;
 
1605
  friend class ::WinMemberExplSpec;
 
1606
  friend class ::WinTypeKeywords;
 
1607
  friend class ::WinFriend;
1558
1608
  friend class ::ExtAC;
1559
1609
  friend class ::ExtACBuilderCoupling;
1560
1610
  friend class ::ExtACSyntaxCoupling;
1561
1611
  friend class ::ExtACTree;
1562
1612
  friend class ::ExtACKeywords;
1563
 
  friend class ::WinAsm;
1564
 
  friend class ::WinDeclSpecs;
1565
 
  friend class ::WinMemberExplSpec;
1566
 
  friend class ::WinTypeKeywords;
 
1613
  friend class ::ExtGnu;
1567
1614
  friend class ::PragmaOnceUnitState;
1568
1615
  friend class ::PragmaOnce;
1569
 
  friend class ::CCExprResolve;
1570
 
  friend class ::CExprResolve;
 
1616
  friend class ::CMatchSyntax;
1571
1617
 
1572
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrCol.h"
 
1618
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrCol.h"
1573
1619
 
1574
1620
protected:
1575
1621
  StrCol () {}
1597
1643
 
1598
1644
#endif /* __str_col__ */
1599
1645
 
1600
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
1646
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
1601
1647
// This file is part of PUMA.
1602
1648
// Copyright (C) 1999-2003  The PUMA developer team.
1603
1649
//                                                                
1632
1678
 
1633
1679
 
1634
1680
 
1635
 
#line 1636 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1681
#line 1682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
1636
1682
} // closed Puma
 
1683
class CCExprResolve;
 
1684
class CExprResolve;
1637
1685
class WinIfExists;
1638
1686
class WinImportHandler;
1639
1687
class WinMacros;
1640
 
class CMatchSyntax;
1641
 
class ExtGnu;
 
1688
class WinAsm;
 
1689
class WinDeclSpecs;
 
1690
class WinMemberExplSpec;
 
1691
class WinTypeKeywords;
 
1692
class WinFriend;
1642
1693
class ExtAC;
1643
1694
class ExtACBuilderCoupling;
1644
1695
class ExtACSyntaxCoupling;
1645
1696
class ExtACTree;
1646
1697
class ExtACKeywords;
1647
 
class WinAsm;
1648
 
class WinDeclSpecs;
1649
 
class WinMemberExplSpec;
1650
 
class WinTypeKeywords;
 
1698
class ExtGnu;
1651
1699
class PragmaOnceUnitState;
1652
1700
class PragmaOnce;
1653
 
class CCExprResolve;
1654
 
class CExprResolve;
 
1701
class CMatchSyntax;
1655
1702
namespace Puma {
1656
1703
 
1657
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
1704
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
1658
1705
class Chain {
1659
 
#line 1660 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1706
#line 1707 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
1707
  friend class ::CCExprResolve;
 
1708
  friend class ::CExprResolve;
1660
1709
  friend class ::WinIfExists;
1661
1710
  friend class ::WinImportHandler;
1662
1711
  friend class ::WinMacros;
1663
 
  friend class ::CMatchSyntax;
1664
 
  friend class ::ExtGnu;
 
1712
  friend class ::WinAsm;
 
1713
  friend class ::WinDeclSpecs;
 
1714
  friend class ::WinMemberExplSpec;
 
1715
  friend class ::WinTypeKeywords;
 
1716
  friend class ::WinFriend;
1665
1717
  friend class ::ExtAC;
1666
1718
  friend class ::ExtACBuilderCoupling;
1667
1719
  friend class ::ExtACSyntaxCoupling;
1668
1720
  friend class ::ExtACTree;
1669
1721
  friend class ::ExtACKeywords;
1670
 
  friend class ::WinAsm;
1671
 
  friend class ::WinDeclSpecs;
1672
 
  friend class ::WinMemberExplSpec;
1673
 
  friend class ::WinTypeKeywords;
 
1722
  friend class ::ExtGnu;
1674
1723
  friend class ::PragmaOnceUnitState;
1675
1724
  friend class ::PragmaOnce;
1676
 
  friend class ::CCExprResolve;
1677
 
  friend class ::CExprResolve;
 
1725
  friend class ::CMatchSyntax;
1678
1726
 
1679
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Chain.h"
 
1727
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Chain.h"
1680
1728
 
1681
1729
  Chain *next;
1682
1730
 
1740
1788
 
1741
1789
#endif /* __Chain_h__ */
1742
1790
 
1743
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1791
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1744
1792
namespace Puma {
1745
1793
 
1746
1794
 
1747
1795
 
1748
 
#line 1749 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1796
#line 1797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
1749
1797
} // closed Puma
 
1798
class CCExprResolve;
 
1799
class CExprResolve;
1750
1800
class WinIfExists;
1751
1801
class WinImportHandler;
1752
1802
class WinMacros;
1753
 
class CMatchSyntax;
1754
 
class ExtGnu;
 
1803
class WinAsm;
 
1804
class WinDeclSpecs;
 
1805
class WinMemberExplSpec;
 
1806
class WinTypeKeywords;
 
1807
class WinFriend;
1755
1808
class ExtAC;
1756
1809
class ExtACBuilderCoupling;
1757
1810
class ExtACSyntaxCoupling;
1758
1811
class ExtACTree;
1759
1812
class ExtACKeywords;
1760
 
class WinAsm;
1761
 
class WinDeclSpecs;
1762
 
class WinMemberExplSpec;
1763
 
class WinTypeKeywords;
 
1813
class ExtGnu;
1764
1814
class PragmaOnceUnitState;
1765
1815
class PragmaOnce;
1766
 
class CCExprResolve;
1767
 
class CExprResolve;
 
1816
class CMatchSyntax;
1768
1817
namespace Puma {
1769
1818
 
1770
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1819
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1771
1820
class StrHashKey : public Chain {
1772
 
#line 1773 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1821
#line 1822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
1822
  friend class ::CCExprResolve;
 
1823
  friend class ::CExprResolve;
1773
1824
  friend class ::WinIfExists;
1774
1825
  friend class ::WinImportHandler;
1775
1826
  friend class ::WinMacros;
1776
 
  friend class ::CMatchSyntax;
1777
 
  friend class ::ExtGnu;
 
1827
  friend class ::WinAsm;
 
1828
  friend class ::WinDeclSpecs;
 
1829
  friend class ::WinMemberExplSpec;
 
1830
  friend class ::WinTypeKeywords;
 
1831
  friend class ::WinFriend;
1778
1832
  friend class ::ExtAC;
1779
1833
  friend class ::ExtACBuilderCoupling;
1780
1834
  friend class ::ExtACSyntaxCoupling;
1781
1835
  friend class ::ExtACTree;
1782
1836
  friend class ::ExtACKeywords;
1783
 
  friend class ::WinAsm;
1784
 
  friend class ::WinDeclSpecs;
1785
 
  friend class ::WinMemberExplSpec;
1786
 
  friend class ::WinTypeKeywords;
 
1837
  friend class ::ExtGnu;
1787
1838
  friend class ::PragmaOnceUnitState;
1788
1839
  friend class ::PragmaOnce;
1789
 
  friend class ::CCExprResolve;
1790
 
  friend class ::CExprResolve;
 
1840
  friend class ::CMatchSyntax;
1791
1841
 
1792
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
 
1842
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashKey.h"
1793
1843
 
1794
1844
  unsigned int m_Magic;
1795
1845
  unsigned int m_Len;
1800
1850
public:
1801
1851
  StrHashKey (int m, const char *s, int l) : 
1802
1852
    m_Magic (m), m_Len (l), m_Str (StrCol::dup (s, l)) {}
 
1853
  ~StrHashKey () { if (m_Str) delete[] m_Str; }
1803
1854
 
1804
1855
  unsigned int getMagic () const { return m_Magic; }
1805
1856
  unsigned int length () const { return m_Len; }
1811
1862
 
1812
1863
#endif /* __StrHashKey_h__ */
1813
1864
 
1814
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1865
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1815
1866
#include <assert.h>
1816
1867
 
1817
1868
namespace Puma {
1818
1869
 
1819
1870
 
1820
1871
 
1821
 
#line 1822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1872
#line 1873 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
1822
1873
} // closed Puma
 
1874
class CCExprResolve;
 
1875
class CExprResolve;
1823
1876
class WinIfExists;
1824
1877
class WinImportHandler;
1825
1878
class WinMacros;
1826
 
class CMatchSyntax;
1827
 
class ExtGnu;
 
1879
class WinAsm;
 
1880
class WinDeclSpecs;
 
1881
class WinMemberExplSpec;
 
1882
class WinTypeKeywords;
 
1883
class WinFriend;
1828
1884
class ExtAC;
1829
1885
class ExtACBuilderCoupling;
1830
1886
class ExtACSyntaxCoupling;
1831
1887
class ExtACTree;
1832
1888
class ExtACKeywords;
1833
 
class WinAsm;
1834
 
class WinDeclSpecs;
1835
 
class WinMemberExplSpec;
1836
 
class WinTypeKeywords;
 
1889
class ExtGnu;
1837
1890
class PragmaOnceUnitState;
1838
1891
class PragmaOnce;
1839
 
class CCExprResolve;
1840
 
class CExprResolve;
 
1892
class CMatchSyntax;
1841
1893
namespace Puma {
1842
1894
 
1843
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1895
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1844
1896
class StrHashTable {
1845
 
#line 1846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1897
#line 1898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
1898
  friend class ::CCExprResolve;
 
1899
  friend class ::CExprResolve;
1846
1900
  friend class ::WinIfExists;
1847
1901
  friend class ::WinImportHandler;
1848
1902
  friend class ::WinMacros;
1849
 
  friend class ::CMatchSyntax;
1850
 
  friend class ::ExtGnu;
 
1903
  friend class ::WinAsm;
 
1904
  friend class ::WinDeclSpecs;
 
1905
  friend class ::WinMemberExplSpec;
 
1906
  friend class ::WinTypeKeywords;
 
1907
  friend class ::WinFriend;
1851
1908
  friend class ::ExtAC;
1852
1909
  friend class ::ExtACBuilderCoupling;
1853
1910
  friend class ::ExtACSyntaxCoupling;
1854
1911
  friend class ::ExtACTree;
1855
1912
  friend class ::ExtACKeywords;
1856
 
  friend class ::WinAsm;
1857
 
  friend class ::WinDeclSpecs;
1858
 
  friend class ::WinMemberExplSpec;
1859
 
  friend class ::WinTypeKeywords;
 
1913
  friend class ::ExtGnu;
1860
1914
  friend class ::PragmaOnceUnitState;
1861
1915
  friend class ::PragmaOnce;
1862
 
  friend class ::CCExprResolve;
1863
 
  friend class ::CExprResolve;
 
1916
  friend class ::CMatchSyntax;
1864
1917
 
1865
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
 
1918
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/StrHashTable.h"
1866
1919
 
1867
1920
  StrHashKey *_emptyKey;
1868
1921
 
1875
1928
  StrHashKey *empty () const { assert (_emptyKey); return _emptyKey; }
1876
1929
  StrHashKey *insert (const char *);
1877
1930
  void remove (StrHashKey *);
 
1931
  void clear ();
1878
1932
 
1879
1933
  enum { STRHASHTABLE_SIZE=0xffff };
1880
1934
  
1882
1936
  Chain m_Table[STRHASHTABLE_SIZE];
1883
1937
 
1884
1938
  StrHashKey *find (unsigned int, const char *, unsigned int);
1885
 
  unsigned int hash (const char *, unsigned int);
 
1939
  unsigned int hash (const char *, unsigned int &);
1886
1940
};
1887
1941
 
1888
1942
 
1890
1944
 
1891
1945
#endif /* __StrHashTable_h__ */
1892
1946
 
1893
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
1947
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
1894
1948
#include <assert.h>
1895
1949
 
1896
1950
namespace Puma {
1899
1953
extern StrHashTable ___str_dict;
1900
1954
 
1901
1955
 
1902
 
#line 1903 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1956
#line 1957 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
1903
1957
} // closed Puma
 
1958
class CCExprResolve;
 
1959
class CExprResolve;
1904
1960
class WinIfExists;
1905
1961
class WinImportHandler;
1906
1962
class WinMacros;
1907
 
class CMatchSyntax;
1908
 
class ExtGnu;
 
1963
class WinAsm;
 
1964
class WinDeclSpecs;
 
1965
class WinMemberExplSpec;
 
1966
class WinTypeKeywords;
 
1967
class WinFriend;
1909
1968
class ExtAC;
1910
1969
class ExtACBuilderCoupling;
1911
1970
class ExtACSyntaxCoupling;
1912
1971
class ExtACTree;
1913
1972
class ExtACKeywords;
1914
 
class WinAsm;
1915
 
class WinDeclSpecs;
1916
 
class WinMemberExplSpec;
1917
 
class WinTypeKeywords;
 
1973
class ExtGnu;
1918
1974
class PragmaOnceUnitState;
1919
1975
class PragmaOnce;
1920
 
class CCExprResolve;
1921
 
class CExprResolve;
 
1976
class CMatchSyntax;
1922
1977
namespace Puma {
1923
1978
 
1924
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
1979
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
1925
1980
class DString {
1926
 
#line 1927 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
1981
#line 1982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
1982
  friend class ::CCExprResolve;
 
1983
  friend class ::CExprResolve;
1927
1984
  friend class ::WinIfExists;
1928
1985
  friend class ::WinImportHandler;
1929
1986
  friend class ::WinMacros;
1930
 
  friend class ::CMatchSyntax;
1931
 
  friend class ::ExtGnu;
 
1987
  friend class ::WinAsm;
 
1988
  friend class ::WinDeclSpecs;
 
1989
  friend class ::WinMemberExplSpec;
 
1990
  friend class ::WinTypeKeywords;
 
1991
  friend class ::WinFriend;
1932
1992
  friend class ::ExtAC;
1933
1993
  friend class ::ExtACBuilderCoupling;
1934
1994
  friend class ::ExtACSyntaxCoupling;
1935
1995
  friend class ::ExtACTree;
1936
1996
  friend class ::ExtACKeywords;
1937
 
  friend class ::WinAsm;
1938
 
  friend class ::WinDeclSpecs;
1939
 
  friend class ::WinMemberExplSpec;
1940
 
  friend class ::WinTypeKeywords;
 
1997
  friend class ::ExtGnu;
1941
1998
  friend class ::PragmaOnceUnitState;
1942
1999
  friend class ::PragmaOnce;
1943
 
  friend class ::CCExprResolve;
1944
 
  friend class ::CExprResolve;
 
2000
  friend class ::CMatchSyntax;
1945
2001
 
1946
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/DString.h"
 
2002
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/DString.h"
1947
2003
 
1948
2004
  StrHashKey *m_Key;
1949
2005
 
2010
2066
    assert (m_Key);
2011
2067
    return c_str ();
2012
2068
  }
 
2069
  
 
2070
  static void clearDict() {
 
2071
    ___str_dict.clear ();
 
2072
  }
2013
2073
};
2014
2074
 
2015
2075
 
2017
2077
 
2018
2078
#endif /* __DString_h__ */
2019
2079
 
2020
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
2080
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
2021
2081
namespace Puma {
2022
2082
 
2023
2083
 
2024
2084
 
2025
 
#line 2026 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
2085
#line 2086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
2026
2086
} // closed Puma
 
2087
class CCExprResolve;
 
2088
class CExprResolve;
2027
2089
class WinIfExists;
2028
2090
class WinImportHandler;
2029
2091
class WinMacros;
2030
 
class CMatchSyntax;
2031
 
class ExtGnu;
 
2092
class WinAsm;
 
2093
class WinDeclSpecs;
 
2094
class WinMemberExplSpec;
 
2095
class WinTypeKeywords;
 
2096
class WinFriend;
2032
2097
class ExtAC;
2033
2098
class ExtACBuilderCoupling;
2034
2099
class ExtACSyntaxCoupling;
2035
2100
class ExtACTree;
2036
2101
class ExtACKeywords;
2037
 
class WinAsm;
2038
 
class WinDeclSpecs;
2039
 
class WinMemberExplSpec;
2040
 
class WinTypeKeywords;
 
2102
class ExtGnu;
2041
2103
class PragmaOnceUnitState;
2042
2104
class PragmaOnce;
2043
 
class CCExprResolve;
2044
 
class CExprResolve;
 
2105
class CMatchSyntax;
2045
2106
namespace Puma {
2046
2107
 
2047
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
2108
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
2048
2109
class FilenameInfo : public RefCnt {
2049
 
#line 2050 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
2110
#line 2111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
2111
  friend class ::CCExprResolve;
 
2112
  friend class ::CExprResolve;
2050
2113
  friend class ::WinIfExists;
2051
2114
  friend class ::WinImportHandler;
2052
2115
  friend class ::WinMacros;
2053
 
  friend class ::CMatchSyntax;
2054
 
  friend class ::ExtGnu;
 
2116
  friend class ::WinAsm;
 
2117
  friend class ::WinDeclSpecs;
 
2118
  friend class ::WinMemberExplSpec;
 
2119
  friend class ::WinTypeKeywords;
 
2120
  friend class ::WinFriend;
2055
2121
  friend class ::ExtAC;
2056
2122
  friend class ::ExtACBuilderCoupling;
2057
2123
  friend class ::ExtACSyntaxCoupling;
2058
2124
  friend class ::ExtACTree;
2059
2125
  friend class ::ExtACKeywords;
2060
 
  friend class ::WinAsm;
2061
 
  friend class ::WinDeclSpecs;
2062
 
  friend class ::WinMemberExplSpec;
2063
 
  friend class ::WinTypeKeywords;
 
2126
  friend class ::ExtGnu;
2064
2127
  friend class ::PragmaOnceUnitState;
2065
2128
  friend class ::PragmaOnce;
2066
 
  friend class ::CCExprResolve;
2067
 
  friend class ::CExprResolve;
 
2129
  friend class ::CMatchSyntax;
2068
2130
 
2069
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
 
2131
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FilenameInfo.h"
2070
2132
 
2071
2133
  DString _name;
2072
2134
  const char *_path;
2076
2138
  FilenameInfo () : _path ((const char*)0), _root ((const char*)0) {}
2077
2139
  ~FilenameInfo ();
2078
2140
  void name (const char *n);
2079
 
  void name (const DString &dsn) { _name = dsn; }
 
2141
//  void name (const DString &dsn) { _name = dsn; }
2080
2142
  const char *name () const { return _name.c_str (); }
2081
2143
  const char *path ();
2082
2144
  const char *root ();
2091
2153
 
2092
2154
#endif /* __filename_info_h__ */
2093
2155
 
2094
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
2156
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
2095
2157
namespace Puma {
2096
2158
 
2097
2159
 
2098
2160
 
2099
 
#line 2100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
2161
#line 2162 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
2100
2162
} // closed Puma
 
2163
class CCExprResolve;
 
2164
class CExprResolve;
2101
2165
class WinIfExists;
2102
2166
class WinImportHandler;
2103
2167
class WinMacros;
2104
 
class CMatchSyntax;
2105
 
class ExtGnu;
 
2168
class WinAsm;
 
2169
class WinDeclSpecs;
 
2170
class WinMemberExplSpec;
 
2171
class WinTypeKeywords;
 
2172
class WinFriend;
2106
2173
class ExtAC;
2107
2174
class ExtACBuilderCoupling;
2108
2175
class ExtACSyntaxCoupling;
2109
2176
class ExtACTree;
2110
2177
class ExtACKeywords;
2111
 
class WinAsm;
2112
 
class WinDeclSpecs;
2113
 
class WinMemberExplSpec;
2114
 
class WinTypeKeywords;
 
2178
class ExtGnu;
2115
2179
class PragmaOnceUnitState;
2116
2180
class PragmaOnce;
2117
 
class CCExprResolve;
2118
 
class CExprResolve;
 
2181
class CMatchSyntax;
2119
2182
namespace Puma {
2120
2183
 
2121
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
2184
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
2122
2185
class Filename : public SmartPtr, public Printable {
2123
 
#line 2124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
2186
#line 2187 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
2187
  friend class ::CCExprResolve;
 
2188
  friend class ::CExprResolve;
2124
2189
  friend class ::WinIfExists;
2125
2190
  friend class ::WinImportHandler;
2126
2191
  friend class ::WinMacros;
2127
 
  friend class ::CMatchSyntax;
2128
 
  friend class ::ExtGnu;
 
2192
  friend class ::WinAsm;
 
2193
  friend class ::WinDeclSpecs;
 
2194
  friend class ::WinMemberExplSpec;
 
2195
  friend class ::WinTypeKeywords;
 
2196
  friend class ::WinFriend;
2129
2197
  friend class ::ExtAC;
2130
2198
  friend class ::ExtACBuilderCoupling;
2131
2199
  friend class ::ExtACSyntaxCoupling;
2132
2200
  friend class ::ExtACTree;
2133
2201
  friend class ::ExtACKeywords;
2134
 
  friend class ::WinAsm;
2135
 
  friend class ::WinDeclSpecs;
2136
 
  friend class ::WinMemberExplSpec;
2137
 
  friend class ::WinTypeKeywords;
 
2202
  friend class ::ExtGnu;
2138
2203
  friend class ::PragmaOnceUnitState;
2139
2204
  friend class ::PragmaOnce;
2140
 
  friend class ::CCExprResolve;
2141
 
  friend class ::CExprResolve;
 
2205
  friend class ::CMatchSyntax;
2142
2206
 
2143
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Filename.h"
 
2207
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Filename.h"
2144
2208
 
2145
2209
  FilenameInfo *info () const { return (FilenameInfo*)data (); }
2146
2210
 
2148
2212
  Filename () {}
2149
2213
  Filename (const char *n) { name (n); }
2150
2214
  Filename &operator = (const char *n) { name (n); return *this; }
 
2215
  bool operator ~ () const { return info () != 0; }
2151
2216
  void name (const char *n);
2152
2217
  const char *name () const;
2153
2218
  const char *path () const;
2163
2228
 
2164
2229
#endif /* __filename_h__ */
2165
2230
 
2166
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
 
2231
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
2167
2232
namespace Puma {
2168
2233
 
2169
2234
 
2170
2235
 
2171
 
#line 2172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
2236
#line 2237 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
2172
2237
} // closed Puma
 
2238
class CCExprResolve;
 
2239
class CExprResolve;
2173
2240
class WinIfExists;
2174
2241
class WinImportHandler;
2175
2242
class WinMacros;
2176
 
class CMatchSyntax;
2177
 
class ExtGnu;
 
2243
class WinAsm;
 
2244
class WinDeclSpecs;
 
2245
class WinMemberExplSpec;
 
2246
class WinTypeKeywords;
 
2247
class WinFriend;
2178
2248
class ExtAC;
2179
2249
class ExtACBuilderCoupling;
2180
2250
class ExtACSyntaxCoupling;
2181
2251
class ExtACTree;
2182
2252
class ExtACKeywords;
2183
 
class WinAsm;
2184
 
class WinDeclSpecs;
2185
 
class WinMemberExplSpec;
2186
 
class WinTypeKeywords;
 
2253
class ExtGnu;
2187
2254
class PragmaOnceUnitState;
2188
2255
class PragmaOnce;
2189
 
class CCExprResolve;
2190
 
class CExprResolve;
 
2256
class CMatchSyntax;
2191
2257
namespace Puma {
2192
2258
 
2193
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
2194
 
class LocationInfo : public RefCnt {
2195
 
#line 2196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
2259
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
 
2260
class Location {
 
2261
#line 2262 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
2262
  friend class ::CCExprResolve;
 
2263
  friend class ::CExprResolve;
2196
2264
  friend class ::WinIfExists;
2197
2265
  friend class ::WinImportHandler;
2198
2266
  friend class ::WinMacros;
2199
 
  friend class ::CMatchSyntax;
2200
 
  friend class ::ExtGnu;
 
2267
  friend class ::WinAsm;
 
2268
  friend class ::WinDeclSpecs;
 
2269
  friend class ::WinMemberExplSpec;
 
2270
  friend class ::WinTypeKeywords;
 
2271
  friend class ::WinFriend;
2201
2272
  friend class ::ExtAC;
2202
2273
  friend class ::ExtACBuilderCoupling;
2203
2274
  friend class ::ExtACSyntaxCoupling;
2204
2275
  friend class ::ExtACTree;
2205
2276
  friend class ::ExtACKeywords;
2206
 
  friend class ::WinAsm;
2207
 
  friend class ::WinDeclSpecs;
2208
 
  friend class ::WinMemberExplSpec;
2209
 
  friend class ::WinTypeKeywords;
 
2277
  friend class ::ExtGnu;
2210
2278
  friend class ::PragmaOnceUnitState;
2211
2279
  friend class ::PragmaOnce;
2212
 
  friend class ::CCExprResolve;
2213
 
  friend class ::CExprResolve;
 
2280
  friend class ::CMatchSyntax;
2214
2281
 
2215
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/LocationInfo.h"
 
2282
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Location.h"
2216
2283
 
2217
2284
  Filename _filename;
2218
2285
  int _line;
 
2286
  int _column;
2219
2287
 
2220
2288
public:
2221
 
  LocationInfo () : _filename (), _line (0) {}
2222
 
  void setup (Filename f, int l);
 
2289
  Location () : _filename (), _line (0), _column (0) {}
 
2290
  Location (Filename f, int l, int c = 0) { setup (f, l, c); }
 
2291
  void setup (Filename f, int l, int c = 0) {
 
2292
    _filename = f;
 
2293
    _line     = l;
 
2294
    _column   = c;
 
2295
  }
2223
2296
  const Filename &filename () const { return _filename; }
2224
2297
  int line () const { return _line; }
2225
 
  bool operator < (const LocationInfo &l) const;
2226
 
  bool operator == (const LocationInfo &l) const;
2227
 
};
2228
 
 
2229
 
 
2230
 
} // namespace Puma
2231
 
 
2232
 
#endif /* __location_info_h__ */
2233
 
 
2234
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2235
 
namespace Puma {
2236
 
 
2237
 
 
2238
 
 
2239
 
#line 2240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
2240
 
} // closed Puma
2241
 
class WinIfExists;
2242
 
class WinImportHandler;
2243
 
class WinMacros;
2244
 
class CMatchSyntax;
2245
 
class ExtGnu;
2246
 
class ExtAC;
2247
 
class ExtACBuilderCoupling;
2248
 
class ExtACSyntaxCoupling;
2249
 
class ExtACTree;
2250
 
class ExtACKeywords;
2251
 
class WinAsm;
2252
 
class WinDeclSpecs;
2253
 
class WinMemberExplSpec;
2254
 
class WinTypeKeywords;
2255
 
class PragmaOnceUnitState;
2256
 
class PragmaOnce;
2257
 
class CCExprResolve;
2258
 
class CExprResolve;
2259
 
namespace Puma {
2260
 
 
2261
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2262
 
class Location : public SmartPtr, public Printable {
2263
 
#line 2264 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
2264
 
  friend class ::WinIfExists;
2265
 
  friend class ::WinImportHandler;
2266
 
  friend class ::WinMacros;
2267
 
  friend class ::CMatchSyntax;
2268
 
  friend class ::ExtGnu;
2269
 
  friend class ::ExtAC;
2270
 
  friend class ::ExtACBuilderCoupling;
2271
 
  friend class ::ExtACSyntaxCoupling;
2272
 
  friend class ::ExtACTree;
2273
 
  friend class ::ExtACKeywords;
2274
 
  friend class ::WinAsm;
2275
 
  friend class ::WinDeclSpecs;
2276
 
  friend class ::WinMemberExplSpec;
2277
 
  friend class ::WinTypeKeywords;
2278
 
  friend class ::PragmaOnceUnitState;
2279
 
  friend class ::PragmaOnce;
2280
 
  friend class ::CCExprResolve;
2281
 
  friend class ::CExprResolve;
2282
 
 
2283
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Location.h"
2284
 
 
2285
 
  LocationInfo *info () const { return (LocationInfo*)data (); }
2286
 
 
2287
 
public:
2288
 
  Location () {}
2289
 
  Location (Filename f, int l) { setup (f, l); }
2290
 
  Location (LocationInfo *lptr) : SmartPtr (lptr) {}
2291
 
  LocationInfo *operator ~ () { if (info ()) info ()->ref (); return info (); }
2292
 
  void setup (Filename f, int l);
2293
 
  const Filename &filename () const   { return info ()->filename (); }
2294
 
  int line () const;
2295
 
  bool operator == (const Location &l) const;
 
2298
  int column () const { return _column; }
 
2299
  bool operator == (const Location &l) const {
 
2300
    return filename () == l.filename () && line () == l.line () &&
 
2301
      column () == l.column ();
 
2302
  }
2296
2303
  bool operator != (const Location &l) const { return ! (*this == l); }
2297
 
  bool operator < (const Location &l) const;
 
2304
  bool operator < (const Location &l) const {
 
2305
    // TODO: does it make sense to compare the filenames? better assert?
 
2306
    if (filename () != l.filename ())
 
2307
      return false;
 
2308
    return line () < l.line () && column () < l.column ();
 
2309
  }
 
2310
};
2298
2311
 
2299
 
  virtual void print (ostream &os) const {
2300
 
    if (info ())
 
2312
inline std::ostream &operator << (std::ostream &os, const Location &loc) {
2301
2313
#ifdef VISUAL_STUDIO
2302
 
      os << filename () << "(" << line () << ")";
 
2314
  os << loc.filename () << "(" << loc.line () << ")";
2303
2315
#else
2304
 
      os << filename () << ":" << line ();
 
2316
  os << loc.filename () << ":" << loc.line ();
2305
2317
#endif
2306
 
  }
2307
 
};
2308
 
 
2309
 
 
 
2318
  return os;  
 
2319
}
2310
2320
} // namespace Puma
2311
2321
 
2312
2322
#endif /* __location_h__ */
2313
2323
 
2314
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
 
2324
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Array.h"
2315
2325
// This file is part of PUMA.
2316
2326
// Copyright (C) 1999-2003  The PUMA developer team.
2317
2327
//                                                                
2337
2347
 
2338
2348
namespace Puma {
2339
2349
 
2340
 
 
2341
 
#line 2342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
2342
 
} // closed Puma
2343
 
class WinIfExists;
2344
 
class WinImportHandler;
2345
 
class WinMacros;
2346
 
class CMatchSyntax;
2347
 
class ExtGnu;
2348
 
class ExtAC;
2349
 
class ExtACBuilderCoupling;
2350
 
class ExtACSyntaxCoupling;
2351
 
class ExtACTree;
2352
 
class ExtACKeywords;
2353
 
class WinAsm;
2354
 
class WinDeclSpecs;
2355
 
class WinMemberExplSpec;
2356
 
class WinTypeKeywords;
2357
 
class PragmaOnceUnitState;
2358
 
class PragmaOnce;
2359
 
class CCExprResolve;
2360
 
class CExprResolve;
2361
 
namespace Puma {
2362
 
 
2363
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
2364
2350
template <class Item>
2365
2351
class Array {
2366
 
#line 2367 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
2367
 
  friend class ::WinIfExists;
2368
 
  friend class ::WinImportHandler;
2369
 
  friend class ::WinMacros;
2370
 
  friend class ::CMatchSyntax;
2371
 
  friend class ::ExtGnu;
2372
 
  friend class ::ExtAC;
2373
 
  friend class ::ExtACBuilderCoupling;
2374
 
  friend class ::ExtACSyntaxCoupling;
2375
 
  friend class ::ExtACTree;
2376
 
  friend class ::ExtACKeywords;
2377
 
  friend class ::WinAsm;
2378
 
  friend class ::WinDeclSpecs;
2379
 
  friend class ::WinMemberExplSpec;
2380
 
  friend class ::WinTypeKeywords;
2381
 
  friend class ::PragmaOnceUnitState;
2382
 
  friend class ::PragmaOnce;
2383
 
  friend class ::CCExprResolve;
2384
 
  friend class ::CExprResolve;
2385
 
 
2386
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Array.h"
2387
 
 
2388
 
   protected:
2389
 
      static const long default_init_size = 5;
2390
 
      static const long default_increment = 5;
2391
 
 
2392
 
   public:
2393
 
      Array (long is = default_init_size, long incr = default_increment);
2394
 
      Array (const Array<Item>& array);
2395
 
      Array<Item>& operator =(const Array<Item>&);
2396
 
      ~Array ();
2397
 
      void append (const Item& item);
2398
 
      void insert (long index, const Item& item);
2399
 
      void prepend (const Item& item);
2400
 
      void remove (long index);
2401
 
      void reset ();
2402
 
      Item& get (long index);
2403
 
      Item& operator[] (long index);
2404
 
      Item fetch (long index) const;
2405
 
      Item& lookup (long index) const;
2406
 
      long length () const;
2407
 
 
2408
 
   private:
2409
 
      Item* data;
2410
 
      long size;
2411
 
      long count;
2412
 
      long increment;
 
2352
protected:
 
2353
  static const long default_init_size = 5;
 
2354
  static const long default_increment = 5;
 
2355
 
 
2356
public:
 
2357
  Array (long is = default_init_size, long incr = default_increment);
 
2358
  Array (const Array<Item>& array);
 
2359
  Array<Item>& operator =(const Array<Item>&);
 
2360
  ~Array ();
 
2361
  void append (const Item& item);
 
2362
  void insert (long index, const Item& item);
 
2363
  void prepend (const Item& item);
 
2364
  void remove (long index);
 
2365
  void reset ();
 
2366
  Item& get (long index);
 
2367
  Item& operator[] (long index);
 
2368
  Item fetch (long index) const;
 
2369
  Item& lookup (long index) const;
 
2370
  long length () const;
 
2371
 
 
2372
private:
 
2373
  Item* data;
 
2374
  long size;
 
2375
  long count;
 
2376
  long increment;
2413
2377
      
2414
 
      void check (long wanted);
2415
 
 };
2416
 
 
2417
 
template <class Item>
2418
 
inline Array<Item>::Array (long is, long incr)
2419
 
 {
2420
 
   count     = 0; 
2421
 
   size      = is;
2422
 
   increment = incr;
2423
 
   data      = new Item[size];
2424
 
 }
2425
 
 
2426
 
template <class Item>
2427
 
Array<Item>::Array (const Array<Item>& array)
2428
 
 {
2429
 
   count = 0;
2430
 
   size  = array.size;
2431
 
   data  = new Item[size];
2432
 
   increment = array.increment;
2433
 
 
2434
 
   for (int pos = 0; pos < array.length (); pos++)
2435
 
      append (array.lookup (pos));
2436
 
 }
2437
 
 
2438
 
template <class Item>
2439
 
Array<Item>& Array<Item>::operator =(const Array<Item>& array)
2440
 
 {
2441
 
   if (data)
2442
 
      delete[] data;
2443
 
   count = 0;
2444
 
   size  = array.size;
2445
 
   data  = new Item[size];
2446
 
   increment = array.increment;
2447
 
 
2448
 
   for (int pos = 0; pos < array.length (); pos++)
2449
 
      append (array.lookup (pos));
2450
 
   return *this;
2451
 
 }
2452
 
 
2453
 
template <class Item>
2454
 
Array<Item>::~Array ()
2455
 
 {
2456
 
   if (data)
2457
 
      delete[] data;
2458
 
 }
2459
 
 
2460
 
template <class Item>
2461
 
inline void Array<Item>::check (long wanted)
2462
 
 {
2463
 
   if (wanted >= size)
2464
 
    {
2465
 
      Item* new_data;
2466
 
 
2467
 
      while (wanted >= size)
2468
 
      {
2469
 
         size += increment;
2470
 
         increment*=2;
2471
 
      }
2472
 
      new_data = new Item[size];
2473
 
      for (int pos = 0; pos < count; pos++)
2474
 
         new_data[pos] = data[pos];
2475
 
      delete[] data;
2476
 
      data = new_data;
2477
 
    }
2478
 
 }
 
2378
  void grow (long wanted);
 
2379
};
 
2380
 
 
2381
template <class Item>
 
2382
inline Array<Item>::Array (long is, long incr) {
 
2383
  count     = 0; 
 
2384
  size      = is;
 
2385
  increment = incr;
 
2386
  data      = 0;
 
2387
}
 
2388
 
 
2389
template <class Item>
 
2390
Array<Item>::Array (const Array<Item>& array) {
 
2391
  count     = 0;
 
2392
  size      = array.size;
 
2393
  increment = array.increment;
 
2394
  
 
2395
  if (size && array.data) {
 
2396
    data = new Item[size];
 
2397
    for (; count < array.count; count++) {
 
2398
      data[count] = array.data[count];
 
2399
    }
 
2400
  } else
 
2401
    data = 0;
 
2402
}
 
2403
 
 
2404
template <class Item>
 
2405
Array<Item>& Array<Item>::operator =(const Array<Item>& array) {
 
2406
  if (data)
 
2407
    delete[] data;
 
2408
 
 
2409
  count     = 0;
 
2410
  size      = array.size;
 
2411
  increment = array.increment;
 
2412
 
 
2413
  if (size && array.data) {
 
2414
    data = new Item[size];
 
2415
    for (; count < array.count; count++) {
 
2416
      data[count] = array.data[count];
 
2417
    }
 
2418
  } else
 
2419
    data = 0;
 
2420
  
 
2421
  return *this;
 
2422
}
 
2423
 
 
2424
template <class Item>
 
2425
Array<Item>::~Array () {
 
2426
  if (data)
 
2427
    delete[] data;
 
2428
}
 
2429
 
 
2430
template <class Item>
 
2431
inline void Array<Item>::grow (long wanted) {
 
2432
  do {
 
2433
    size += increment;
 
2434
    increment *= 2;
 
2435
  } while (wanted >= size);
 
2436
 
 
2437
  if (data) {
 
2438
    Item* new_data = new Item[size];
 
2439
    for (long i = 0; i < count; i++) {
 
2440
      new_data[i] = data[i];
 
2441
    }
 
2442
    delete[] data;
 
2443
    data = new_data;
 
2444
  } else
 
2445
    data = new Item[size];
 
2446
}
2479
2447
   
2480
2448
template <class Item>
2481
 
inline void Array<Item>::append (const Item& item)
2482
 
 {
2483
 
   check (count);
2484
 
   data[count++] = item;
2485
 
 }
2486
 
 
2487
 
template <class Item>
2488
 
void Array<Item>::prepend (const Item& item)
2489
 
 {
2490
 
   insert (0, item);
2491
 
 }
2492
 
 
2493
 
template <class Item>
2494
 
void Array<Item>::insert (long index, const Item& item)
2495
 
 {
2496
 
   check (count);
2497
 
   for (int pos = count; pos > index; pos--)
2498
 
      data[pos] = data[pos - 1];
2499
 
   data[index] = item;
2500
 
   count++;
2501
 
 }
2502
 
 
2503
 
template <class Item>
2504
 
inline Item& Array<Item>::get (long index)
2505
 
 {
2506
 
   check (index);
2507
 
   if (index >= count)
2508
 
      count = index + 1;
2509
 
   return data[index];
2510
 
 }
2511
 
 
2512
 
template <class Item>
2513
 
inline Item& Array<Item>::operator[] (long index)
2514
 
 {
2515
 
   return get (index);
2516
 
 }
2517
 
 
2518
 
template <class Item>
2519
 
inline Item Array<Item>::fetch (long index) const
2520
 
 {
2521
 
   assert(index < count);
2522
 
   return data[index];
2523
 
 }
2524
 
 
2525
 
template <class Item>
2526
 
inline long Array<Item>::length () const
2527
 
 {
2528
 
   return count;
2529
 
 }
2530
 
 
2531
 
template <class Item>
2532
 
inline void Array<Item>::remove (long index)
2533
 
 {
2534
 
   if (index < count && count > 0)
2535
 
    {
2536
 
      for (int pos = index; pos < count - 1; pos++)
2537
 
         data[pos] = data[pos + 1];
2538
 
      count--;
2539
 
    }
2540
 
 }
 
2449
inline void Array<Item>::append (const Item& item) {
 
2450
  if (count >= size || ! data) {
 
2451
    grow (count);
 
2452
  }
 
2453
  data[count++] = item;
 
2454
}
 
2455
 
 
2456
template <class Item>
 
2457
void Array<Item>::prepend (const Item& item) {
 
2458
  insert (0, item);
 
2459
}
 
2460
 
 
2461
template <class Item>
 
2462
void Array<Item>::insert (long index, const Item& item) {
 
2463
  if (count >= size || ! data) {
 
2464
    grow (count);
 
2465
  }
 
2466
  for (long i = count; i > index; i--)
 
2467
    data[i] = data[i - 1];
 
2468
  data[index] = item;
 
2469
  count++;
 
2470
}
 
2471
 
 
2472
template <class Item>
 
2473
inline Item& Array<Item>::get (long index) {
 
2474
  if (index >= size || ! data) {
 
2475
    grow (index);
 
2476
  }
 
2477
  if (index >= count)
 
2478
    count = index + 1;
 
2479
  return data[index];
 
2480
}
 
2481
 
 
2482
template <class Item>
 
2483
inline Item& Array<Item>::operator[] (long index) {
 
2484
  return get (index);
 
2485
}
 
2486
 
 
2487
template <class Item>
 
2488
inline Item Array<Item>::fetch (long index) const {
 
2489
  assert(index < count && data);
 
2490
  return data[index];
 
2491
}
 
2492
 
 
2493
template <class Item>
 
2494
inline long Array<Item>::length () const {
 
2495
  return count;
 
2496
}
 
2497
 
 
2498
template <class Item>
 
2499
inline void Array<Item>::remove (long index) {
 
2500
  if (index < count && count > 0) {
 
2501
    for (long i = index; i < count - 1; i++)
 
2502
      data[i] = data[i + 1];
 
2503
    count--;
 
2504
  }
 
2505
}
2541
2506
 
2542
2507
#ifndef __puma
2543
2508
template <>
2544
2509
inline void Array<int>::reset () {
2545
 
   count = 0; 
 
2510
  count = 0; 
2546
2511
}
2547
2512
#endif
2548
2513
 
2549
2514
template <class Item>
2550
 
void Array<Item>::reset ()
2551
 
 {
2552
 
   if (data)
2553
 
      delete[] data;
2554
 
   count     = 0; 
2555
 
   size      = default_init_size;
2556
 
   increment = default_increment;
2557
 
   data      = new Item[size];
2558
 
 }
 
2515
void Array<Item>::reset () {
 
2516
  if (data)
 
2517
    delete[] data;
 
2518
    
 
2519
  count     = 0; 
 
2520
  size      = default_init_size;
 
2521
  increment = default_increment;
 
2522
  data      = new Item[size];
 
2523
}
2559
2524
 
2560
2525
template <class Item>
2561
 
inline Item& Array<Item>::lookup (long index) const
2562
 
 {
2563
 
   assert(index >= 0 && index < count);
2564
 
//   if (index >= count) index = count - 1; 
2565
 
//   if (index < 0)      index = 0;
2566
 
   return data[index];
2567
 
 }
 
2526
inline Item& Array<Item>::lookup (long index) const {
 
2527
  assert(index >= 0 && index < count);
 
2528
  return data[index];
 
2529
}
2568
2530
 
2569
2531
 
2570
2532
} // namespace Puma
2598
2560
  void remove (long idx)                   { Base::remove (idx); }
2599
2561
  void reset ()                            { Base::reset (); }
2600
2562
 
2601
 
  Item *&get (long idx)          { return (Item*&)Base::get (idx); }
2602
 
  Item *&operator[] (long idx)   { return (Item*&)Base::operator[] (idx); }
2603
 
  Item *fetch (long idx) const   { return (Item*)Base::fetch (idx); }
2604
 
  Item *&lookup (long idx) const { return (Item*&)Base::lookup (idx); }
2605
 
  long length () const           { return Base::length (); }
 
2563
  Item *&get (long idx)                    { return (Item*&)Base::get (idx); }
 
2564
  Item *&operator[] (long idx)             { return (Item*&)Base::operator[] (idx); }
 
2565
  Item *fetch (long idx) const             { return (Item*)Base::fetch (idx); }
 
2566
  Item *&lookup (long idx) const           { return (Item*&)Base::lookup (idx); }
 
2567
  long length () const                     { return Base::length (); }
2606
2568
};
2607
2569
 
2608
2570
 
2612
2574
 
2613
2575
#endif /* __array_h__ */
2614
2576
 
2615
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
2577
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
2616
2578
#include <assert.h>
2617
2579
 
2618
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
2580
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
2619
2581
namespace Puma {
2620
2582
 
2621
2583
 
2622
2584
 
2623
 
#line 2624 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
2585
#line 2586 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
2624
2586
} // closed Puma
 
2587
class CCExprResolve;
 
2588
class CExprResolve;
2625
2589
class WinIfExists;
2626
2590
class WinImportHandler;
2627
2591
class WinMacros;
2628
 
class CMatchSyntax;
2629
 
class ExtGnu;
 
2592
class WinAsm;
 
2593
class WinDeclSpecs;
 
2594
class WinMemberExplSpec;
 
2595
class WinTypeKeywords;
 
2596
class WinFriend;
2630
2597
class ExtAC;
2631
2598
class ExtACBuilderCoupling;
2632
2599
class ExtACSyntaxCoupling;
2633
2600
class ExtACTree;
2634
2601
class ExtACKeywords;
2635
 
class WinAsm;
2636
 
class WinDeclSpecs;
2637
 
class WinMemberExplSpec;
2638
 
class WinTypeKeywords;
 
2602
class ExtGnu;
2639
2603
class PragmaOnceUnitState;
2640
2604
class PragmaOnce;
2641
 
class CCExprResolve;
2642
 
class CExprResolve;
 
2605
class CMatchSyntax;
2643
2606
namespace Puma {
2644
2607
 
2645
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
2608
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
2646
2609
class Token : public ListElement {
2647
 
#line 2648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
2610
#line 2611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
2611
  friend class ::CCExprResolve;
 
2612
  friend class ::CExprResolve;
2648
2613
  friend class ::WinIfExists;
2649
2614
  friend class ::WinImportHandler;
2650
2615
  friend class ::WinMacros;
2651
 
  friend class ::CMatchSyntax;
2652
 
  friend class ::ExtGnu;
 
2616
  friend class ::WinAsm;
 
2617
  friend class ::WinDeclSpecs;
 
2618
  friend class ::WinMemberExplSpec;
 
2619
  friend class ::WinTypeKeywords;
 
2620
  friend class ::WinFriend;
2653
2621
  friend class ::ExtAC;
2654
2622
  friend class ::ExtACBuilderCoupling;
2655
2623
  friend class ::ExtACSyntaxCoupling;
2656
2624
  friend class ::ExtACTree;
2657
2625
  friend class ::ExtACKeywords;
2658
 
  friend class ::WinAsm;
2659
 
  friend class ::WinDeclSpecs;
2660
 
  friend class ::WinMemberExplSpec;
2661
 
  friend class ::WinTypeKeywords;
 
2626
  friend class ::ExtGnu;
2662
2627
  friend class ::PragmaOnceUnitState;
2663
2628
  friend class ::PragmaOnce;
2664
 
  friend class ::CCExprResolve;
2665
 
  friend class ::CExprResolve;
 
2629
  friend class ::CMatchSyntax;
2666
2630
 
2667
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Token.h"
 
2631
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Token.h"
2668
2632
 
2669
2633
  int _type, _real_type;
2670
2634
 
2671
2635
  Location _location;
2672
2636
  LanguageID _language;
2673
 
  DString _text;
 
2637
  const char *_text;
 
2638
  mutable DString _dtext;
2674
2639
 
2675
2640
  Array<int> *_cont_lines;
2676
2641
   
2711
2676
  void macro_generated ()           { _flags |= TK_MACRO_GENERATED; }
2712
2677
  void macro_call ()                { _flags |= TK_MACRO_CALL; }
2713
2678
  
2714
 
  const DString &text () const     { return _text; }
 
2679
  const char *text () const;
 
2680
  DString &dtext () const;
2715
2681
  char *get_static_text () const;
2716
2682
  int type () const                 { return _type; }
2717
2683
  const Location &location () const { return _location; }
2788
2754
 
2789
2755
#endif /* __Token_h__ */
2790
2756
 
2791
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
2757
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
2792
2758
// This file is part of PUMA.
2793
2759
// Copyright (C) 1999-2003  The PUMA developer team.
2794
2760
//                                                                
2811
2777
#define __Builder_h__
2812
2778
 
2813
2779
 
2814
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
2780
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
2815
2781
// This file is part of PUMA.
2816
2782
// Copyright (C) 1999-2003  The PUMA developer team.
2817
2783
//                                                                
2834
2800
#define __error_collector_h__
2835
2801
 
2836
2802
 
2837
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
2803
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
2838
2804
// This file is part of PUMA.
2839
2805
// Copyright (C) 1999-2003  The PUMA developer team.
2840
2806
//                                                                
2869
2835
// messages or collect them for a later processing.
2870
2836
 
2871
2837
 
2872
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
2838
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
2873
2839
// This file is part of PUMA.
2874
2840
// Copyright (C) 1999-2003  The PUMA developer team.
2875
2841
//                                                                
2897
2863
 
2898
2864
 
2899
2865
 
2900
 
#line 2901 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
2866
#line 2867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
2901
2867
} // closed Puma
 
2868
class CCExprResolve;
 
2869
class CExprResolve;
2902
2870
class WinIfExists;
2903
2871
class WinImportHandler;
2904
2872
class WinMacros;
2905
 
class CMatchSyntax;
2906
 
class ExtGnu;
 
2873
class WinAsm;
 
2874
class WinDeclSpecs;
 
2875
class WinMemberExplSpec;
 
2876
class WinTypeKeywords;
 
2877
class WinFriend;
2907
2878
class ExtAC;
2908
2879
class ExtACBuilderCoupling;
2909
2880
class ExtACSyntaxCoupling;
2910
2881
class ExtACTree;
2911
2882
class ExtACKeywords;
2912
 
class WinAsm;
2913
 
class WinDeclSpecs;
2914
 
class WinMemberExplSpec;
2915
 
class WinTypeKeywords;
 
2883
class ExtGnu;
2916
2884
class PragmaOnceUnitState;
2917
2885
class PragmaOnce;
2918
 
class CCExprResolve;
2919
 
class CExprResolve;
 
2886
class CMatchSyntax;
2920
2887
namespace Puma {
2921
2888
 
2922
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
2889
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
2923
2890
class ErrorSeverity {
2924
 
#line 2925 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
2891
#line 2892 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
2892
  friend class ::CCExprResolve;
 
2893
  friend class ::CExprResolve;
2925
2894
  friend class ::WinIfExists;
2926
2895
  friend class ::WinImportHandler;
2927
2896
  friend class ::WinMacros;
2928
 
  friend class ::CMatchSyntax;
2929
 
  friend class ::ExtGnu;
 
2897
  friend class ::WinAsm;
 
2898
  friend class ::WinDeclSpecs;
 
2899
  friend class ::WinMemberExplSpec;
 
2900
  friend class ::WinTypeKeywords;
 
2901
  friend class ::WinFriend;
2930
2902
  friend class ::ExtAC;
2931
2903
  friend class ::ExtACBuilderCoupling;
2932
2904
  friend class ::ExtACSyntaxCoupling;
2933
2905
  friend class ::ExtACTree;
2934
2906
  friend class ::ExtACKeywords;
2935
 
  friend class ::WinAsm;
2936
 
  friend class ::WinDeclSpecs;
2937
 
  friend class ::WinMemberExplSpec;
2938
 
  friend class ::WinTypeKeywords;
 
2907
  friend class ::ExtGnu;
2939
2908
  friend class ::PragmaOnceUnitState;
2940
2909
  friend class ::PragmaOnce;
2941
 
  friend class ::CCExprResolve;
2942
 
  friend class ::CExprResolve;
 
2910
  friend class ::CMatchSyntax;
2943
2911
 
2944
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
 
2912
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSeverity.h"
2945
2913
 
2946
2914
  unsigned short _severity;
2947
2915
  const char *_text;
2981
2949
 
2982
2950
#endif /* __error_severity_h__ */
2983
2951
 
2984
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
2952
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
2985
2953
namespace Puma {
2986
2954
 
2987
2955
 
2988
2956
 
2989
 
#line 2990 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
2957
#line 2958 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
2990
2958
} // closed Puma
 
2959
class CCExprResolve;
 
2960
class CExprResolve;
2991
2961
class WinIfExists;
2992
2962
class WinImportHandler;
2993
2963
class WinMacros;
2994
 
class CMatchSyntax;
2995
 
class ExtGnu;
 
2964
class WinAsm;
 
2965
class WinDeclSpecs;
 
2966
class WinMemberExplSpec;
 
2967
class WinTypeKeywords;
 
2968
class WinFriend;
2996
2969
class ExtAC;
2997
2970
class ExtACBuilderCoupling;
2998
2971
class ExtACSyntaxCoupling;
2999
2972
class ExtACTree;
3000
2973
class ExtACKeywords;
3001
 
class WinAsm;
3002
 
class WinDeclSpecs;
3003
 
class WinMemberExplSpec;
3004
 
class WinTypeKeywords;
 
2974
class ExtGnu;
3005
2975
class PragmaOnceUnitState;
3006
2976
class PragmaOnce;
3007
 
class CCExprResolve;
3008
 
class CExprResolve;
 
2977
class CMatchSyntax;
3009
2978
namespace Puma {
3010
2979
 
3011
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
2980
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3012
2981
class ErrorSink {
3013
 
#line 3014 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
2982
#line 2983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
2983
  friend class ::CCExprResolve;
 
2984
  friend class ::CExprResolve;
3014
2985
  friend class ::WinIfExists;
3015
2986
  friend class ::WinImportHandler;
3016
2987
  friend class ::WinMacros;
3017
 
  friend class ::CMatchSyntax;
3018
 
  friend class ::ExtGnu;
 
2988
  friend class ::WinAsm;
 
2989
  friend class ::WinDeclSpecs;
 
2990
  friend class ::WinMemberExplSpec;
 
2991
  friend class ::WinTypeKeywords;
 
2992
  friend class ::WinFriend;
3019
2993
  friend class ::ExtAC;
3020
2994
  friend class ::ExtACBuilderCoupling;
3021
2995
  friend class ::ExtACSyntaxCoupling;
3022
2996
  friend class ::ExtACTree;
3023
2997
  friend class ::ExtACKeywords;
3024
 
  friend class ::WinAsm;
3025
 
  friend class ::WinDeclSpecs;
3026
 
  friend class ::WinMemberExplSpec;
3027
 
  friend class ::WinTypeKeywords;
 
2998
  friend class ::ExtGnu;
3028
2999
  friend class ::PragmaOnceUnitState;
3029
3000
  friend class ::PragmaOnce;
3030
 
  friend class ::CCExprResolve;
3031
 
  friend class ::CExprResolve;
 
3001
  friend class ::CMatchSyntax;
3032
3002
 
3033
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
 
3003
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorSink.h"
3034
3004
 
3035
3005
public:
3036
3006
  virtual ~ErrorSink () {}
3055
3025
 
3056
3026
#endif /* __error_sink_h__ */
3057
3027
 
3058
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
3028
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
3059
3029
#include <sstream> 
3060
3030
using namespace std;
3061
3031
 
3063
3033
 
3064
3034
 
3065
3035
 
3066
 
#line 3067 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
3036
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
3067
3037
} // closed Puma
 
3038
class CCExprResolve;
 
3039
class CExprResolve;
3068
3040
class WinIfExists;
3069
3041
class WinImportHandler;
3070
3042
class WinMacros;
3071
 
class CMatchSyntax;
3072
 
class ExtGnu;
 
3043
class WinAsm;
 
3044
class WinDeclSpecs;
 
3045
class WinMemberExplSpec;
 
3046
class WinTypeKeywords;
 
3047
class WinFriend;
3073
3048
class ExtAC;
3074
3049
class ExtACBuilderCoupling;
3075
3050
class ExtACSyntaxCoupling;
3076
3051
class ExtACTree;
3077
3052
class ExtACKeywords;
3078
 
class WinAsm;
3079
 
class WinDeclSpecs;
3080
 
class WinMemberExplSpec;
3081
 
class WinTypeKeywords;
 
3053
class ExtGnu;
3082
3054
class PragmaOnceUnitState;
3083
3055
class PragmaOnce;
3084
 
class CCExprResolve;
3085
 
class CExprResolve;
 
3056
class CMatchSyntax;
3086
3057
namespace Puma {
3087
3058
 
3088
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
3059
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
3089
3060
class ErrorCollector : public ErrorSink {
3090
 
#line 3091 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
3061
#line 3062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
3062
  friend class ::CCExprResolve;
 
3063
  friend class ::CExprResolve;
3091
3064
  friend class ::WinIfExists;
3092
3065
  friend class ::WinImportHandler;
3093
3066
  friend class ::WinMacros;
3094
 
  friend class ::CMatchSyntax;
3095
 
  friend class ::ExtGnu;
 
3067
  friend class ::WinAsm;
 
3068
  friend class ::WinDeclSpecs;
 
3069
  friend class ::WinMemberExplSpec;
 
3070
  friend class ::WinTypeKeywords;
 
3071
  friend class ::WinFriend;
3096
3072
  friend class ::ExtAC;
3097
3073
  friend class ::ExtACBuilderCoupling;
3098
3074
  friend class ::ExtACSyntaxCoupling;
3099
3075
  friend class ::ExtACTree;
3100
3076
  friend class ::ExtACKeywords;
3101
 
  friend class ::WinAsm;
3102
 
  friend class ::WinDeclSpecs;
3103
 
  friend class ::WinMemberExplSpec;
3104
 
  friend class ::WinTypeKeywords;
 
3077
  friend class ::ExtGnu;
3105
3078
  friend class ::PragmaOnceUnitState;
3106
3079
  friend class ::PragmaOnce;
3107
 
  friend class ::CCExprResolve;
3108
 
  friend class ::CExprResolve;
 
3080
  friend class ::CMatchSyntax;
3109
3081
 
3110
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
3082
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
3111
3083
 
3112
3084
  class Msg {
3113
 
#line 3114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
3085
#line 3086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
3086
  friend class ::CCExprResolve;
 
3087
  friend class ::CExprResolve;
3114
3088
  friend class ::WinIfExists;
3115
3089
  friend class ::WinImportHandler;
3116
3090
  friend class ::WinMacros;
3117
 
  friend class ::CMatchSyntax;
3118
 
  friend class ::ExtGnu;
 
3091
  friend class ::WinAsm;
 
3092
  friend class ::WinDeclSpecs;
 
3093
  friend class ::WinMemberExplSpec;
 
3094
  friend class ::WinTypeKeywords;
 
3095
  friend class ::WinFriend;
3119
3096
  friend class ::ExtAC;
3120
3097
  friend class ::ExtACBuilderCoupling;
3121
3098
  friend class ::ExtACSyntaxCoupling;
3122
3099
  friend class ::ExtACTree;
3123
3100
  friend class ::ExtACKeywords;
3124
 
  friend class ::WinAsm;
3125
 
  friend class ::WinDeclSpecs;
3126
 
  friend class ::WinMemberExplSpec;
3127
 
  friend class ::WinTypeKeywords;
 
3101
  friend class ::ExtGnu;
3128
3102
  friend class ::PragmaOnceUnitState;
3129
3103
  friend class ::PragmaOnce;
3130
 
  friend class ::CCExprResolve;
3131
 
  friend class ::CExprResolve;
 
3104
  friend class ::CMatchSyntax;
3132
3105
 
3133
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
 
3106
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorCollector.h"
3134
3107
 
3135
3108
    ErrorSeverity _sev;
3136
3109
    Location _loc;
3185
3158
 
3186
3159
#endif /* __error_collector_h__ */
3187
3160
 
3188
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PtrStack.h"
 
3161
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PtrStack.h"
3189
3162
// This file is part of PUMA.
3190
3163
// Copyright (C) 1999-2003  The PUMA developer team.
3191
3164
//                                                                
3210
3183
// Stepped pointer stack.
3211
3184
 
3212
3185
 
3213
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
 
3186
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Stack.h"
3214
3187
// This file is part of PUMA.
3215
3188
// Copyright (C) 1999-2003  The PUMA developer team.
3216
3189
//                                                                
3233
3206
#define __stack_h__
3234
3207
 
3235
3208
 
3236
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
3237
 
namespace Puma {
3238
 
 
3239
 
 
3240
 
#line 3241 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3241
 
} // closed Puma
3242
 
class WinIfExists;
3243
 
class WinImportHandler;
3244
 
class WinMacros;
3245
 
class CMatchSyntax;
3246
 
class ExtGnu;
3247
 
class ExtAC;
3248
 
class ExtACBuilderCoupling;
3249
 
class ExtACSyntaxCoupling;
3250
 
class ExtACTree;
3251
 
class ExtACKeywords;
3252
 
class WinAsm;
3253
 
class WinDeclSpecs;
3254
 
class WinMemberExplSpec;
3255
 
class WinTypeKeywords;
3256
 
class PragmaOnceUnitState;
3257
 
class PragmaOnce;
3258
 
class CCExprResolve;
3259
 
class CExprResolve;
3260
 
namespace Puma {
3261
 
 
3262
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
 
3209
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Stack.h"
 
3210
namespace Puma {
 
3211
 
3263
3212
template <class Item>
3264
3213
class Stack : private Array<Item> {
3265
 
#line 3266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3266
 
  friend class ::WinIfExists;
3267
 
  friend class ::WinImportHandler;
3268
 
  friend class ::WinMacros;
3269
 
  friend class ::CMatchSyntax;
3270
 
  friend class ::ExtGnu;
3271
 
  friend class ::ExtAC;
3272
 
  friend class ::ExtACBuilderCoupling;
3273
 
  friend class ::ExtACSyntaxCoupling;
3274
 
  friend class ::ExtACTree;
3275
 
  friend class ::ExtACKeywords;
3276
 
  friend class ::WinAsm;
3277
 
  friend class ::WinDeclSpecs;
3278
 
  friend class ::WinMemberExplSpec;
3279
 
  friend class ::WinTypeKeywords;
3280
 
  friend class ::PragmaOnceUnitState;
3281
 
  friend class ::PragmaOnce;
3282
 
  friend class ::CCExprResolve;
3283
 
  friend class ::CExprResolve;
3284
 
 
3285
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Stack.h"
3286
 
 
3287
3214
public:
3288
3215
  Stack (long is = 8192, long incr = 8192) :
3289
3216
    Array<Item> (is, incr) {}
3299
3226
 
3300
3227
#endif /* __stack_h__ */
3301
3228
 
3302
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCStack.h"
 
3229
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/BCStack.h"
3303
3230
// This file is part of PUMA.
3304
3231
// Copyright (C) 1999-2003  The PUMA developer team.
3305
3232
//                                                                
3322
3249
#define __bcstack_h__
3323
3250
 
3324
3251
 
3325
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
 
3252
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/BCList.h"
3326
3253
// This file is part of PUMA.
3327
3254
// Copyright (C) 1999-2003  The PUMA developer team.
3328
3255
//                                                                
3346
3273
 
3347
3274
namespace Puma {
3348
3275
 
3349
 
 
3350
 
#line 3351 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3351
 
} // closed Puma
3352
 
class WinIfExists;
3353
 
class WinImportHandler;
3354
 
class WinMacros;
3355
 
class CMatchSyntax;
3356
 
class ExtGnu;
3357
 
class ExtAC;
3358
 
class ExtACBuilderCoupling;
3359
 
class ExtACSyntaxCoupling;
3360
 
class ExtACTree;
3361
 
class ExtACKeywords;
3362
 
class WinAsm;
3363
 
class WinDeclSpecs;
3364
 
class WinMemberExplSpec;
3365
 
class WinTypeKeywords;
3366
 
class PragmaOnceUnitState;
3367
 
class PragmaOnce;
3368
 
class CCExprResolve;
3369
 
class CExprResolve;
3370
 
namespace Puma {
3371
 
 
3372
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
3373
3276
template <class Item, int BUCKET_SIZE = 32>
3374
3277
class BCList {
3375
 
#line 3376 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3376
 
  friend class ::WinIfExists;
3377
 
  friend class ::WinImportHandler;
3378
 
  friend class ::WinMacros;
3379
 
  friend class ::CMatchSyntax;
3380
 
  friend class ::ExtGnu;
3381
 
  friend class ::ExtAC;
3382
 
  friend class ::ExtACBuilderCoupling;
3383
 
  friend class ::ExtACSyntaxCoupling;
3384
 
  friend class ::ExtACTree;
3385
 
  friend class ::ExtACKeywords;
3386
 
  friend class ::WinAsm;
3387
 
  friend class ::WinDeclSpecs;
3388
 
  friend class ::WinMemberExplSpec;
3389
 
  friend class ::WinTypeKeywords;
3390
 
  friend class ::PragmaOnceUnitState;
3391
 
  friend class ::PragmaOnce;
3392
 
  friend class ::CCExprResolve;
3393
 
  friend class ::CExprResolve;
3394
 
 
3395
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
3396
 
 
3397
3278
 
3398
3279
protected:
3399
3280
  struct Bucket {
3400
 
#line 3401 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3401
 
  friend class ::WinIfExists;
3402
 
  friend class ::WinImportHandler;
3403
 
  friend class ::WinMacros;
3404
 
  friend class ::CMatchSyntax;
3405
 
  friend class ::ExtGnu;
3406
 
  friend class ::ExtAC;
3407
 
  friend class ::ExtACBuilderCoupling;
3408
 
  friend class ::ExtACSyntaxCoupling;
3409
 
  friend class ::ExtACTree;
3410
 
  friend class ::ExtACKeywords;
3411
 
  friend class ::WinAsm;
3412
 
  friend class ::WinDeclSpecs;
3413
 
  friend class ::WinMemberExplSpec;
3414
 
  friend class ::WinTypeKeywords;
3415
 
  friend class ::PragmaOnceUnitState;
3416
 
  friend class ::PragmaOnce;
3417
 
  friend class ::CCExprResolve;
3418
 
  friend class ::CExprResolve;
3419
 
 
3420
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
3421
 
 
3422
3281
    Bucket *_prev;
3423
3282
    Bucket *_next;
3424
3283
    Item *_write_pos;
3453
3312
 
3454
3313
public:  
3455
3314
  class Iterator {
3456
 
#line 3457 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3457
 
  friend class ::WinIfExists;
3458
 
  friend class ::WinImportHandler;
3459
 
  friend class ::WinMacros;
3460
 
  friend class ::CMatchSyntax;
3461
 
  friend class ::ExtGnu;
3462
 
  friend class ::ExtAC;
3463
 
  friend class ::ExtACBuilderCoupling;
3464
 
  friend class ::ExtACSyntaxCoupling;
3465
 
  friend class ::ExtACTree;
3466
 
  friend class ::ExtACKeywords;
3467
 
  friend class ::WinAsm;
3468
 
  friend class ::WinDeclSpecs;
3469
 
  friend class ::WinMemberExplSpec;
3470
 
  friend class ::WinTypeKeywords;
3471
 
  friend class ::PragmaOnceUnitState;
3472
 
  friend class ::PragmaOnce;
3473
 
  friend class ::CCExprResolve;
3474
 
  friend class ::CExprResolve;
3475
 
 
3476
 
#line 62 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCList.h"
3477
 
 
3478
3315
    friend class BCList<Item, BUCKET_SIZE>;
3479
3316
 
3480
3317
    Item *_item;
3572
3409
 
3573
3410
#endif /* __bclist_h__ */
3574
3411
 
3575
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCStack.h"
3576
 
namespace Puma {
3577
 
 
3578
 
 
3579
 
#line 3580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3580
 
} // closed Puma
3581
 
class WinIfExists;
3582
 
class WinImportHandler;
3583
 
class WinMacros;
3584
 
class CMatchSyntax;
3585
 
class ExtGnu;
3586
 
class ExtAC;
3587
 
class ExtACBuilderCoupling;
3588
 
class ExtACSyntaxCoupling;
3589
 
class ExtACTree;
3590
 
class ExtACKeywords;
3591
 
class WinAsm;
3592
 
class WinDeclSpecs;
3593
 
class WinMemberExplSpec;
3594
 
class WinTypeKeywords;
3595
 
class PragmaOnceUnitState;
3596
 
class PragmaOnce;
3597
 
class CCExprResolve;
3598
 
class CExprResolve;
3599
 
namespace Puma {
3600
 
 
3601
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCStack.h"
 
3412
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/BCStack.h"
 
3413
namespace Puma {
 
3414
 
3602
3415
template <class Item, int BUCKET_SIZE = 32>
3603
3416
class BCStack : private BCList<Item, BUCKET_SIZE> {
3604
 
#line 3605 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3605
 
  friend class ::WinIfExists;
3606
 
  friend class ::WinImportHandler;
3607
 
  friend class ::WinMacros;
3608
 
  friend class ::CMatchSyntax;
3609
 
  friend class ::ExtGnu;
3610
 
  friend class ::ExtAC;
3611
 
  friend class ::ExtACBuilderCoupling;
3612
 
  friend class ::ExtACSyntaxCoupling;
3613
 
  friend class ::ExtACTree;
3614
 
  friend class ::ExtACKeywords;
3615
 
  friend class ::WinAsm;
3616
 
  friend class ::WinDeclSpecs;
3617
 
  friend class ::WinMemberExplSpec;
3618
 
  friend class ::WinTypeKeywords;
3619
 
  friend class ::PragmaOnceUnitState;
3620
 
  friend class ::PragmaOnce;
3621
 
  friend class ::CCExprResolve;
3622
 
  friend class ::CExprResolve;
3623
 
 
3624
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/BCStack.h"
3625
 
 
3626
3417
  typedef BCList<Item, BUCKET_SIZE> List;
3627
3418
public:
3628
3419
  typedef typename List::Iterator Iterator;
3635
3426
  BCStack () : _length (0L) {}
3636
3427
  long length () const { return _length; }
3637
3428
  void push (Item item) {
3638
 
    if (_tos != BCList<Item, BUCKET_SIZE>::end ())
 
3429
    if (_tos)
3639
3430
      ++_tos;
3640
 
    if (_tos == BCList<Item, BUCKET_SIZE>::end ()) 
 
3431
    if (! _tos) 
3641
3432
      _tos = add (item);
3642
3433
    else
3643
3434
      *_tos = item;
3653
3444
 
3654
3445
#endif /* __bcstack_h__ */
3655
3446
 
3656
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PtrStack.h"
3657
 
namespace Puma {
3658
 
 
3659
 
 
3660
 
 
3661
 
#line 3662 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3662
 
} // closed Puma
3663
 
class WinIfExists;
3664
 
class WinImportHandler;
3665
 
class WinMacros;
3666
 
class CMatchSyntax;
3667
 
class ExtGnu;
3668
 
class ExtAC;
3669
 
class ExtACBuilderCoupling;
3670
 
class ExtACSyntaxCoupling;
3671
 
class ExtACTree;
3672
 
class ExtACKeywords;
3673
 
class WinAsm;
3674
 
class WinDeclSpecs;
3675
 
class WinMemberExplSpec;
3676
 
class WinTypeKeywords;
3677
 
class PragmaOnceUnitState;
3678
 
class PragmaOnce;
3679
 
class CCExprResolve;
3680
 
class CExprResolve;
3681
 
namespace Puma {
3682
 
 
3683
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PtrStack.h"
 
3447
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PtrStack.h"
 
3448
namespace Puma {
 
3449
 
 
3450
 
3684
3451
template <class T>
3685
3452
class PtrStack
3686
3453
#ifndef __puma
3687
3454
: private Array<T*>
3688
3455
#endif
3689
3456
 {
3690
 
#line 3691 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3691
 
  friend class ::WinIfExists;
3692
 
  friend class ::WinImportHandler;
3693
 
  friend class ::WinMacros;
3694
 
  friend class ::CMatchSyntax;
3695
 
  friend class ::ExtGnu;
3696
 
  friend class ::ExtAC;
3697
 
  friend class ::ExtACBuilderCoupling;
3698
 
  friend class ::ExtACSyntaxCoupling;
3699
 
  friend class ::ExtACTree;
3700
 
  friend class ::ExtACKeywords;
3701
 
  friend class ::WinAsm;
3702
 
  friend class ::WinDeclSpecs;
3703
 
  friend class ::WinMemberExplSpec;
3704
 
  friend class ::WinTypeKeywords;
3705
 
  friend class ::PragmaOnceUnitState;
3706
 
  friend class ::PragmaOnce;
3707
 
  friend class ::CCExprResolve;
3708
 
  friend class ::CExprResolve;
3709
 
 
3710
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PtrStack.h"
3711
 
 
3712
3457
  BCStack<long, 8192> _Indices;   // start indices
3713
3458
  
3714
3459
public:
3849
3594
 
3850
3595
#endif /* __PtrStack_h__ */
3851
3596
 
3852
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3597
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
3853
3598
 
3854
 
#line 3855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
3599
#line 3600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
3855
3600
 
3856
3601
#ifndef __ac_fwd_ExtACTree__
3857
3602
#define __ac_fwd_ExtACTree__
3858
3603
class ExtACTree;
3859
3604
namespace AC {
3860
3605
  template <class JoinPoint>
3861
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
3862
 
  template <class JoinPoint>
3863
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
3864
 
}
3865
 
#endif
3866
 
 
3867
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
3868
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
3869
 
#endif
3870
 
 
3871
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
3872
 
 
3873
 
#line 3874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3874
 
 
3875
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3876
 
// This file is part of PUMA.
3877
 
// Copyright (C) 1999-2003  The PUMA developer team.
3878
 
//                                                                
3879
 
// This program is free software;  you can redistribute it and/or 
3880
 
// modify it under the terms of the GNU General Public License as 
3881
 
// published by the Free Software Foundation; either version 2 of 
3882
 
// the License, or (at your option) any later version.            
3883
 
//                                                                
3884
 
// This program is distributed in the hope that it will be useful,
3885
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
3886
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
3887
 
// GNU General Public License for more details.                   
3888
 
//                                                                
3889
 
// You should have received a copy of the GNU General Public      
3890
 
// License along with this program; if not, write to the Free     
3891
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
3892
 
// MA  02111-1307  USA                                            
3893
 
 
3894
 
#ifndef __ExtACTree_ah__
3895
 
#define __ExtACTree_ah__
3896
 
 
3897
 
// TODO:
3898
 
// this shall be introduced by the ExtAC aspect as soon as the include cycle
3899
 
// problem is solved!
3900
 
 
3901
 
namespace Puma {
3902
 
  class CTree;
3903
 
}
3904
 
 
3905
 
using namespace Puma;
3906
 
 
3907
 
 
3908
 
#line 3909 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3909
 
class WinIfExists;
3910
 
class WinImportHandler;
3911
 
class WinMacros;
3912
 
class CMatchSyntax;
3913
 
class ExtGnu;
3914
 
class ExtAC;
3915
 
class ExtACBuilderCoupling;
3916
 
class ExtACSyntaxCoupling;
3917
 
class ExtACKeywords;
3918
 
class WinAsm;
3919
 
class WinDeclSpecs;
3920
 
class WinMemberExplSpec;
3921
 
class WinTypeKeywords;
3922
 
class PragmaOnceUnitState;
3923
 
class PragmaOnce;
3924
 
class CCExprResolve;
3925
 
class CExprResolve;
3926
 
 
3927
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3928
 
class ExtACTree {
3929
 
#line 3930 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3930
 
 
3931
 
public:
3932
 
  static ExtACTree *aspectof () {
3933
 
    static ExtACTree __instance;
3934
 
    return &__instance;
3935
 
  }
3936
 
  static ExtACTree *aspectOf () {
3937
 
    return aspectof ();
3938
 
  }
3939
 
private:
3940
 
 
3941
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3942
 
 
3943
 
#line 3944 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3944
 
  friend class ::WinIfExists;
3945
 
  friend class ::WinImportHandler;
3946
 
  friend class ::WinMacros;
3947
 
  friend class ::CMatchSyntax;
3948
 
  friend class ::ExtGnu;
3949
 
  friend class ::ExtAC;
3950
 
  friend class ::ExtACBuilderCoupling;
3951
 
  friend class ::ExtACSyntaxCoupling;
3952
 
  friend class ::ExtACKeywords;
3953
 
  friend class ::WinAsm;
3954
 
  friend class ::WinDeclSpecs;
3955
 
  friend class ::WinMemberExplSpec;
3956
 
  friend class ::WinTypeKeywords;
3957
 
  friend class ::PragmaOnceUnitState;
3958
 
  friend class ::PragmaOnce;
3959
 
  friend class ::CCExprResolve;
3960
 
  friend class ::CExprResolve;
3961
 
 
3962
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3963
 
 
3964
 
  
3965
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3966
 
 
3967
 
  
3968
 
  // implemented in a separate .cc file, because Builder.h is needed!
3969
 
  void delete_tree (CTree *t);
3970
 
  
3971
 
  
3972
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3973
 
 
3974
 
  
3975
 
  
3976
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3977
 
 
3978
 
public: template<class JoinPoint> void __a0_after 
3979
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3980
 
 
3981
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3982
 
(JoinPoint *tjp)
3983
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3984
 
 {
3985
 
#line 3986 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3986
 
 
3987
 
  typedef typename JoinPoint::That __JP_That;
3988
 
  typedef typename JoinPoint::Target __JP_Target;
3989
 
  typedef typename JoinPoint::Result __JP_Result;
3990
 
 
3991
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
3992
 
 
3993
 
    tjp->that ()->_intro_members = 0;
3994
 
  }
3995
 
#line 3996 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
3996
 
 
3997
 
private:
3998
 
 
3999
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
4000
 
 
4001
 
  
4002
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
4003
 
 
4004
 
public: template<class JoinPoint> void __a1_before 
4005
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
4006
 
 
4007
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
4008
 
(JoinPoint *tjp)
4009
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
4010
 
 {
4011
 
#line 4012 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
4012
 
 
4013
 
  typedef typename JoinPoint::That __JP_That;
4014
 
  typedef typename JoinPoint::Target __JP_Target;
4015
 
  typedef typename JoinPoint::Result __JP_Result;
4016
 
 
4017
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
4018
 
 
4019
 
    delete_tree (tjp->that ()->_intro_members);
4020
 
  }
4021
 
#line 4022 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
4022
 
 
4023
 
private:
4024
 
 
4025
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
4026
 
 
4027
 
};
4028
 
#line 4029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
4029
 
 
4030
 
namespace AC {
4031
 
  template <class JoinPoint>
4032
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp) {
4033
 
    ::ExtACTree::aspectof()->__a0_after (tjp);
4034
 
  }
4035
 
  template <class JoinPoint>
4036
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp) {
4037
 
    ::ExtACTree::aspectof()->__a1_before (tjp);
4038
 
  }
4039
 
4040
 
 
4041
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
4042
 
 
4043
 
 
4044
 
#endif // __ExtACTree_ah__
4045
 
 
4046
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4047
 
// This file is part of PUMA.
4048
 
// Copyright (C) 1999-2003  The PUMA developer team.
4049
 
//                                                                
4050
 
// This program is free software;  you can redistribute it and/or 
4051
 
// modify it under the terms of the GNU General Public License as 
4052
 
// published by the Free Software Foundation; either version 2 of 
4053
 
// the License, or (at your option) any later version.            
4054
 
//                                                                
4055
 
// This program is distributed in the hope that it will be useful,
4056
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4057
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4058
 
// GNU General Public License for more details.                   
4059
 
//                                                                
4060
 
// You should have received a copy of the GNU General Public      
4061
 
// License along with this program; if not, write to the Free     
4062
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4063
 
// MA  02111-1307  USA                                            
4064
 
 
4065
 
#ifndef __CCExprResolveH_ah__
4066
 
#define __CCExprResolveH_ah__
4067
 
 
4068
 
// This aspect inserts resolve member functions into all syntax tree classes
4069
 
// that represent expressions. As the function is virtual, an efficient
4070
 
// run-time switch over the node type is implemented.
4071
 
 
4072
 
namespace Puma {
4073
 
  class CCSemExpr;
4074
 
}
4075
 
 
4076
 
using namespace Puma;
4077
 
 
4078
 
namespace Puma {
4079
 
  
4080
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4081
 
 
4082
 
  
4083
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4084
 
 
4085
 
}
4086
 
 
4087
 
 
4088
 
#line 4089 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
4089
 
class WinIfExists;
4090
 
class WinImportHandler;
4091
 
class WinMacros;
4092
 
class CMatchSyntax;
4093
 
class ExtGnu;
4094
 
class ExtAC;
4095
 
class ExtACBuilderCoupling;
4096
 
class ExtACSyntaxCoupling;
4097
 
class ExtACTree;
4098
 
class ExtACKeywords;
4099
 
class WinAsm;
4100
 
class WinDeclSpecs;
4101
 
class WinMemberExplSpec;
4102
 
class WinTypeKeywords;
4103
 
class PragmaOnceUnitState;
4104
 
class PragmaOnce;
4105
 
class CExprResolve;
4106
 
 
4107
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4108
 
class CCExprResolve {
4109
 
#line 4110 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
4110
 
 
4111
 
public:
4112
 
  static CCExprResolve *aspectof () {
4113
 
    static CCExprResolve __instance;
4114
 
    return &__instance;
4115
 
  }
4116
 
  static CCExprResolve *aspectOf () {
4117
 
    return aspectof ();
4118
 
  }
4119
 
private:
4120
 
 
4121
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4122
 
 
4123
 
#line 4124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
4124
 
  friend class ::WinIfExists;
4125
 
  friend class ::WinImportHandler;
4126
 
  friend class ::WinMacros;
4127
 
  friend class ::CMatchSyntax;
4128
 
  friend class ::ExtGnu;
4129
 
  friend class ::ExtAC;
4130
 
  friend class ::ExtACBuilderCoupling;
4131
 
  friend class ::ExtACSyntaxCoupling;
4132
 
  friend class ::ExtACTree;
4133
 
  friend class ::ExtACKeywords;
4134
 
  friend class ::WinAsm;
4135
 
  friend class ::WinDeclSpecs;
4136
 
  friend class ::WinMemberExplSpec;
4137
 
  friend class ::WinTypeKeywords;
4138
 
  friend class ::PragmaOnceUnitState;
4139
 
  friend class ::PragmaOnce;
4140
 
  friend class ::CExprResolve;
4141
 
 
4142
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4143
 
 
4144
 
  
4145
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4146
 
 
4147
 
  
4148
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4149
 
 
4150
 
};
4151
 
#line 4152 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
4152
 
 
4153
 
namespace AC {
4154
 
4155
 
 
4156
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
4157
 
 
4158
 
 
4159
 
#endif /* __CCExprResolveH_ah__ */
4160
 
 
4161
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4162
 
// This file is part of PUMA.
4163
 
// Copyright (C) 1999-2003  The PUMA developer team.
4164
 
//                                                                
4165
 
// This program is free software;  you can redistribute it and/or 
4166
 
// modify it under the terms of the GNU General Public License as 
4167
 
// published by the Free Software Foundation; either version 2 of 
4168
 
// the License, or (at your option) any later version.            
4169
 
//                                                                
4170
 
// This program is distributed in the hope that it will be useful,
4171
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
4172
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
4173
 
// GNU General Public License for more details.                   
4174
 
//                                                                
4175
 
// You should have received a copy of the GNU General Public      
4176
 
// License along with this program; if not, write to the Free     
4177
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
4178
 
// MA  02111-1307  USA                                            
4179
 
 
4180
 
#ifndef __CExprResolveH_ah__
4181
 
#define __CExprResolveH_ah__
4182
 
 
4183
 
// This aspect inserts resolve member functions into all syntax tree classes
4184
 
// that represent expressions. As the function is virtual, an efficient
4185
 
// run-time switch over the node type is implemented.
4186
 
 
4187
 
namespace Puma {
4188
 
  class CSemExpr;
4189
 
}
4190
 
 
4191
 
using namespace Puma;
4192
 
 
4193
 
namespace Puma {
4194
 
  
4195
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4196
 
 
4197
 
  
4198
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4199
 
 
4200
 
}
4201
 
 
4202
 
 
4203
 
#line 4204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
4204
 
class WinIfExists;
4205
 
class WinImportHandler;
4206
 
class WinMacros;
4207
 
class CMatchSyntax;
4208
 
class ExtGnu;
4209
 
class ExtAC;
4210
 
class ExtACBuilderCoupling;
4211
 
class ExtACSyntaxCoupling;
4212
 
class ExtACTree;
4213
 
class ExtACKeywords;
4214
 
class WinAsm;
4215
 
class WinDeclSpecs;
4216
 
class WinMemberExplSpec;
4217
 
class WinTypeKeywords;
4218
 
class PragmaOnceUnitState;
4219
 
class PragmaOnce;
4220
 
class CCExprResolve;
4221
 
 
4222
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4223
 
class CExprResolve {
4224
 
#line 4225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
4225
 
 
4226
 
public:
4227
 
  static CExprResolve *aspectof () {
4228
 
    static CExprResolve __instance;
4229
 
    return &__instance;
4230
 
  }
4231
 
  static CExprResolve *aspectOf () {
4232
 
    return aspectof ();
4233
 
  }
4234
 
private:
4235
 
 
4236
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4237
 
 
4238
 
#line 4239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
4239
 
  friend class ::WinIfExists;
4240
 
  friend class ::WinImportHandler;
4241
 
  friend class ::WinMacros;
4242
 
  friend class ::CMatchSyntax;
4243
 
  friend class ::ExtGnu;
4244
 
  friend class ::ExtAC;
4245
 
  friend class ::ExtACBuilderCoupling;
4246
 
  friend class ::ExtACSyntaxCoupling;
4247
 
  friend class ::ExtACTree;
4248
 
  friend class ::ExtACKeywords;
4249
 
  friend class ::WinAsm;
4250
 
  friend class ::WinDeclSpecs;
4251
 
  friend class ::WinMemberExplSpec;
4252
 
  friend class ::WinTypeKeywords;
4253
 
  friend class ::PragmaOnceUnitState;
4254
 
  friend class ::PragmaOnce;
4255
 
  friend class ::CCExprResolve;
4256
 
 
4257
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4258
 
 
4259
 
  
4260
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4261
 
 
4262
 
  
4263
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4264
 
 
4265
 
};
4266
 
#line 4267 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
4267
 
 
4268
 
namespace AC {
4269
 
4270
 
 
4271
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
4272
 
 
4273
 
 
4274
 
#endif /* __CExprResolveH_ah__ */
4275
 
 
4276
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
4277
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
4278
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
4279
 
 
4280
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
3606
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
3607
  template <class JoinPoint>
 
3608
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
3609
}
 
3610
#endif
 
3611
 
 
3612
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
3613
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
3614
#endif
 
3615
 
 
3616
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
4281
3617
// This file is part of PUMA.
4282
3618
// Copyright (C) 1999-2003  The PUMA developer team.
4283
3619
//                                                                
4322
3658
class     CT_DefaultStmt;
4323
3659
class     CT_TryStmt;
4324
3660
class   CT_Expression;
 
3661
class     CT_Call;
 
3662
class       CT_CallExpr;
 
3663
class       CT_ImplicitCall;
4325
3664
class     CT_ThrowExpr;
4326
3665
class     CT_NewExpr;
4327
3666
class     CT_DeleteExpr;
4342
3681
class     CT_IfThenExpr;
4343
3682
class     CT_CmpdLiteral;
4344
3683
class     CT_IndexExpr;
4345
 
class     CT_CallExpr;
4346
3684
class     CT_CastExpr;
4347
3685
class     CT_StaticCast;
4348
3686
class       CT_ConstCast;
4389
3727
class     CT_NamespaceDef;
4390
3728
class     CT_NamespaceAliasDef;
4391
3729
class     CT_UsingDirective;
 
3730
class     CT_Condition;
4392
3731
class   CT_List;
4393
3732
class     CT_CmpdStmt;
4394
3733
class     CT_DeclSpecSeq;
4419
3758
class     CT_TemplateArgList;
4420
3759
class   CT_Token;
4421
3760
class   CT_Error;
4422
 
class   CT_Condition;
4423
3761
class   CT_BaseSpec;
4424
3762
class   CT_AccessSpec;
4425
3763
class   CT_ArrayDelimiter;
4432
3770
} // namespace Puma
4433
3771
 
4434
3772
 
4435
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
3773
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
4436
3774
// This file is part of PUMA.
4437
3775
// Copyright (C) 1999-2003  The PUMA developer team.
4438
3776
//                                                                
4460
3798
class CObjectInfo;
4461
3799
 
4462
3800
 
4463
 
#line 4464 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
3801
#line 3802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
4464
3802
} // closed Puma
 
3803
class CCExprResolve;
 
3804
class CExprResolve;
4465
3805
class WinIfExists;
4466
3806
class WinImportHandler;
4467
3807
class WinMacros;
4468
 
class CMatchSyntax;
4469
 
class ExtGnu;
 
3808
class WinAsm;
 
3809
class WinDeclSpecs;
 
3810
class WinMemberExplSpec;
 
3811
class WinTypeKeywords;
 
3812
class WinFriend;
4470
3813
class ExtAC;
4471
3814
class ExtACBuilderCoupling;
4472
3815
class ExtACSyntaxCoupling;
4473
3816
class ExtACTree;
4474
3817
class ExtACKeywords;
4475
 
class WinAsm;
4476
 
class WinDeclSpecs;
4477
 
class WinMemberExplSpec;
4478
 
class WinTypeKeywords;
 
3818
class ExtGnu;
4479
3819
class PragmaOnceUnitState;
4480
3820
class PragmaOnce;
4481
 
class CCExprResolve;
4482
 
class CExprResolve;
 
3821
class CMatchSyntax;
4483
3822
namespace Puma {
4484
3823
 
4485
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
3824
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
4486
3825
class CSemObject {
4487
 
#line 4488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
3826
#line 3827 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
3827
  friend class ::CCExprResolve;
 
3828
  friend class ::CExprResolve;
4488
3829
  friend class ::WinIfExists;
4489
3830
  friend class ::WinImportHandler;
4490
3831
  friend class ::WinMacros;
4491
 
  friend class ::CMatchSyntax;
4492
 
  friend class ::ExtGnu;
 
3832
  friend class ::WinAsm;
 
3833
  friend class ::WinDeclSpecs;
 
3834
  friend class ::WinMemberExplSpec;
 
3835
  friend class ::WinTypeKeywords;
 
3836
  friend class ::WinFriend;
4493
3837
  friend class ::ExtAC;
4494
3838
  friend class ::ExtACBuilderCoupling;
4495
3839
  friend class ::ExtACSyntaxCoupling;
4496
3840
  friend class ::ExtACTree;
4497
3841
  friend class ::ExtACKeywords;
4498
 
  friend class ::WinAsm;
4499
 
  friend class ::WinDeclSpecs;
4500
 
  friend class ::WinMemberExplSpec;
4501
 
  friend class ::WinTypeKeywords;
 
3842
  friend class ::ExtGnu;
4502
3843
  friend class ::PragmaOnceUnitState;
4503
3844
  friend class ::PragmaOnce;
4504
 
  friend class ::CCExprResolve;
4505
 
  friend class ::CExprResolve;
 
3845
  friend class ::CMatchSyntax;
4506
3846
 
4507
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemObject.h"
 
3847
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemObject.h"
4508
3848
 
4509
3849
  CObjectInfo *_obj;
4510
3850
 
4519
3859
 
4520
3860
#endif /* __CSemObject_h__ */
4521
3861
 
4522
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
3862
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
4523
3863
// This file is part of PUMA.
4524
3864
// Copyright (C) 1999-2003  The PUMA developer team.
4525
3865
//                                                                
4547
3887
class CStructure;
4548
3888
 
4549
3889
 
4550
 
#line 4551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
3890
#line 3891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
4551
3891
} // closed Puma
 
3892
class CCExprResolve;
 
3893
class CExprResolve;
4552
3894
class WinIfExists;
4553
3895
class WinImportHandler;
4554
3896
class WinMacros;
4555
 
class CMatchSyntax;
4556
 
class ExtGnu;
 
3897
class WinAsm;
 
3898
class WinDeclSpecs;
 
3899
class WinMemberExplSpec;
 
3900
class WinTypeKeywords;
 
3901
class WinFriend;
4557
3902
class ExtAC;
4558
3903
class ExtACBuilderCoupling;
4559
3904
class ExtACSyntaxCoupling;
4560
3905
class ExtACTree;
4561
3906
class ExtACKeywords;
4562
 
class WinAsm;
4563
 
class WinDeclSpecs;
4564
 
class WinMemberExplSpec;
4565
 
class WinTypeKeywords;
 
3907
class ExtGnu;
4566
3908
class PragmaOnceUnitState;
4567
3909
class PragmaOnce;
4568
 
class CCExprResolve;
4569
 
class CExprResolve;
 
3910
class CMatchSyntax;
4570
3911
namespace Puma {
4571
3912
 
4572
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
3913
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
4573
3914
class CSemScope {
4574
 
#line 4575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
3915
#line 3916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
3916
  friend class ::CCExprResolve;
 
3917
  friend class ::CExprResolve;
4575
3918
  friend class ::WinIfExists;
4576
3919
  friend class ::WinImportHandler;
4577
3920
  friend class ::WinMacros;
4578
 
  friend class ::CMatchSyntax;
4579
 
  friend class ::ExtGnu;
 
3921
  friend class ::WinAsm;
 
3922
  friend class ::WinDeclSpecs;
 
3923
  friend class ::WinMemberExplSpec;
 
3924
  friend class ::WinTypeKeywords;
 
3925
  friend class ::WinFriend;
4580
3926
  friend class ::ExtAC;
4581
3927
  friend class ::ExtACBuilderCoupling;
4582
3928
  friend class ::ExtACSyntaxCoupling;
4583
3929
  friend class ::ExtACTree;
4584
3930
  friend class ::ExtACKeywords;
4585
 
  friend class ::WinAsm;
4586
 
  friend class ::WinDeclSpecs;
4587
 
  friend class ::WinMemberExplSpec;
4588
 
  friend class ::WinTypeKeywords;
 
3931
  friend class ::ExtGnu;
4589
3932
  friend class ::PragmaOnceUnitState;
4590
3933
  friend class ::PragmaOnce;
4591
 
  friend class ::CCExprResolve;
4592
 
  friend class ::CExprResolve;
 
3934
  friend class ::CMatchSyntax;
4593
3935
 
4594
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemScope.h"
 
3936
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemScope.h"
4595
3937
 
4596
3938
  CStructure *_scope;
4597
3939
 
4606
3948
 
4607
3949
#endif /* __CSemScope_h__ */
4608
3950
 
4609
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
3951
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
4610
3952
// This file is part of PUMA.
4611
3953
// Copyright (C) 1999-2003  The PUMA developer team.
4612
3954
//                                                                
4629
3971
#define __CSemValue_h__
4630
3972
 
4631
3973
 
4632
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
3974
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
4633
3975
// This file is part of PUMA.
4634
3976
// Copyright (C) 1999-2003  The PUMA developer team.
4635
3977
//                                                                
4652
3994
#define __CExprValue_h__
4653
3995
 
4654
3996
 
4655
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
3997
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
4656
3998
using std::ostream;
4657
3999
 
4658
4000
namespace Puma {
4664
4006
class CWStrLiteral;
4665
4007
 
4666
4008
 
4667
 
#line 4668 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
4009
#line 4010 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
4668
4010
} // closed Puma
 
4011
class CCExprResolve;
 
4012
class CExprResolve;
4669
4013
class WinIfExists;
4670
4014
class WinImportHandler;
4671
4015
class WinMacros;
4672
 
class CMatchSyntax;
4673
 
class ExtGnu;
 
4016
class WinAsm;
 
4017
class WinDeclSpecs;
 
4018
class WinMemberExplSpec;
 
4019
class WinTypeKeywords;
 
4020
class WinFriend;
4674
4021
class ExtAC;
4675
4022
class ExtACBuilderCoupling;
4676
4023
class ExtACSyntaxCoupling;
4677
4024
class ExtACTree;
4678
4025
class ExtACKeywords;
4679
 
class WinAsm;
4680
 
class WinDeclSpecs;
4681
 
class WinMemberExplSpec;
4682
 
class WinTypeKeywords;
 
4026
class ExtGnu;
4683
4027
class PragmaOnceUnitState;
4684
4028
class PragmaOnce;
4685
 
class CCExprResolve;
4686
 
class CExprResolve;
 
4029
class CMatchSyntax;
4687
4030
namespace Puma {
4688
4031
 
4689
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
4032
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
4690
4033
class CExprValue {
4691
 
#line 4692 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
4034
#line 4035 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
4035
  friend class ::CCExprResolve;
 
4036
  friend class ::CExprResolve;
4692
4037
  friend class ::WinIfExists;
4693
4038
  friend class ::WinImportHandler;
4694
4039
  friend class ::WinMacros;
4695
 
  friend class ::CMatchSyntax;
4696
 
  friend class ::ExtGnu;
 
4040
  friend class ::WinAsm;
 
4041
  friend class ::WinDeclSpecs;
 
4042
  friend class ::WinMemberExplSpec;
 
4043
  friend class ::WinTypeKeywords;
 
4044
  friend class ::WinFriend;
4697
4045
  friend class ::ExtAC;
4698
4046
  friend class ::ExtACBuilderCoupling;
4699
4047
  friend class ::ExtACSyntaxCoupling;
4700
4048
  friend class ::ExtACTree;
4701
4049
  friend class ::ExtACKeywords;
4702
 
  friend class ::WinAsm;
4703
 
  friend class ::WinDeclSpecs;
4704
 
  friend class ::WinMemberExplSpec;
4705
 
  friend class ::WinTypeKeywords;
 
4050
  friend class ::ExtGnu;
4706
4051
  friend class ::PragmaOnceUnitState;
4707
4052
  friend class ::PragmaOnce;
4708
 
  friend class ::CCExprResolve;
4709
 
  friend class ::CExprResolve;
 
4053
  friend class ::CMatchSyntax;
4710
4054
 
4711
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CExprValue.h"
 
4055
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CExprValue.h"
4712
4056
 
4713
4057
  CTypeInfo *_type;
4714
4058
  
4735
4079
 
4736
4080
#endif /* __CExprValue_h__ */
4737
4081
 
4738
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
4082
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
4739
4083
// This file is part of PUMA.
4740
4084
// Copyright (C) 1999-2003  The PUMA developer team.
4741
4085
//                                                                
4758
4102
#define __CTypeInfo_h__
4759
4103
 
4760
4104
 
4761
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
4105
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
4762
4106
namespace Puma {
4763
4107
 
4764
4108
 
4786
4130
class CT_ExprList;
4787
4131
class CObjectInfo;
4788
4132
class CScopeInfo;
 
4133
class CTemplateParamInfo;
4789
4134
//class ostream;
4790
4135
 
4791
4136
 
4792
 
#line 4793 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
4137
#line 4138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
4793
4138
} // closed Puma
 
4139
class CCExprResolve;
 
4140
class CExprResolve;
4794
4141
class WinIfExists;
4795
4142
class WinImportHandler;
4796
4143
class WinMacros;
4797
 
class CMatchSyntax;
4798
 
class ExtGnu;
 
4144
class WinAsm;
 
4145
class WinDeclSpecs;
 
4146
class WinMemberExplSpec;
 
4147
class WinTypeKeywords;
 
4148
class WinFriend;
4799
4149
class ExtAC;
4800
4150
class ExtACBuilderCoupling;
4801
4151
class ExtACSyntaxCoupling;
4802
4152
class ExtACTree;
4803
4153
class ExtACKeywords;
4804
 
class WinAsm;
4805
 
class WinDeclSpecs;
4806
 
class WinMemberExplSpec;
4807
 
class WinTypeKeywords;
 
4154
class ExtGnu;
4808
4155
class PragmaOnceUnitState;
4809
4156
class PragmaOnce;
4810
 
class CCExprResolve;
4811
 
class CExprResolve;
 
4157
class CMatchSyntax;
4812
4158
namespace Puma {
4813
4159
 
4814
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
4160
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
4815
4161
class CTypeInfo : public Printable {
4816
 
#line 4817 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
4162
#line 4163 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
4163
  friend class ::CCExprResolve;
 
4164
  friend class ::CExprResolve;
4817
4165
  friend class ::WinIfExists;
4818
4166
  friend class ::WinImportHandler;
4819
4167
  friend class ::WinMacros;
4820
 
  friend class ::CMatchSyntax;
4821
 
  friend class ::ExtGnu;
 
4168
  friend class ::WinAsm;
 
4169
  friend class ::WinDeclSpecs;
 
4170
  friend class ::WinMemberExplSpec;
 
4171
  friend class ::WinTypeKeywords;
 
4172
  friend class ::WinFriend;
4822
4173
  friend class ::ExtAC;
4823
4174
  friend class ::ExtACBuilderCoupling;
4824
4175
  friend class ::ExtACSyntaxCoupling;
4825
4176
  friend class ::ExtACTree;
4826
4177
  friend class ::ExtACKeywords;
4827
 
  friend class ::WinAsm;
4828
 
  friend class ::WinDeclSpecs;
4829
 
  friend class ::WinMemberExplSpec;
4830
 
  friend class ::WinTypeKeywords;
 
4178
  friend class ::ExtGnu;
4831
4179
  friend class ::PragmaOnceUnitState;
4832
4180
  friend class ::PragmaOnce;
4833
 
  friend class ::CCExprResolve;
4834
 
  friend class ::CExprResolve;
 
4181
  friend class ::CMatchSyntax;
4835
4182
 
4836
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
4183
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
4837
4184
 
4838
4185
  // needed for type printing
4839
4186
  enum PrintState {
4841
4188
    PRINT_PRE = 1,  // printing a declarator prefix like '*' or '&'
4842
4189
    PRINT_ABS = 2,  // printing absolute names
4843
4190
    PRINT_TPL = 4,  // printing template argument list
4844
 
    PRINT_TDN = 8   // print typedef names instead of defined type
 
4191
    PRINT_TDN = 8,  // print typedef names instead of defined type
 
4192
    PRINT_ELA = 16  // print elaborated type specifiers (struct, enum, union)
4845
4193
  };
4846
4194
 
4847
4195
public:
4902
4250
  bool operator !=(const CTypeInfo &) const;
4903
4251
  
4904
4252
  void print (ostream& os) const;
4905
 
  void TypeText (ostream &, const char * = (const char*)0,
4906
 
                 bool abs = false, bool tdef = false) const;
 
4253
  void TypeText (ostream &, const char *name = (const char*)0,
 
4254
                 bool abs = false, bool tdef = false, 
 
4255
                 bool elaborated_type_spec = false) const;
4907
4256
  long int Dimension () const;
4908
4257
  
4909
4258
  long int Size () const;
5035
4384
  void Mangled (ostream &) const;
5036
4385
 
5037
4386
private:
 
4387
  bool equalTemplateParams (CTemplateParamInfo *p1, CTemplateParamInfo *p2) const;
5038
4388
  void TypeText (char, ostream &, const char * = (const char*)0) const;
5039
4389
  void printName (char, ostream &, CObjectInfo *) const;
5040
4390
  void printScope (char, ostream &, CObjectInfo *) const;
5046
4396
 
5047
4397
 
5048
4398
 
5049
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
4399
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
5050
4400
// This file is part of PUMA.
5051
4401
// Copyright (C) 1999-2003  The PUMA developer team.
5052
4402
//                                                                
5077
4427
 
5078
4428
 
5079
4429
 
5080
 
#line 5081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
4430
#line 4431 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
5081
4431
} // closed Puma
 
4432
class CCExprResolve;
 
4433
class CExprResolve;
5082
4434
class WinIfExists;
5083
4435
class WinImportHandler;
5084
4436
class WinMacros;
5085
 
class CMatchSyntax;
5086
 
class ExtGnu;
 
4437
class WinAsm;
 
4438
class WinDeclSpecs;
 
4439
class WinMemberExplSpec;
 
4440
class WinTypeKeywords;
 
4441
class WinFriend;
5087
4442
class ExtAC;
5088
4443
class ExtACBuilderCoupling;
5089
4444
class ExtACSyntaxCoupling;
5090
4445
class ExtACTree;
5091
4446
class ExtACKeywords;
5092
 
class WinAsm;
5093
 
class WinDeclSpecs;
5094
 
class WinMemberExplSpec;
5095
 
class WinTypeKeywords;
 
4447
class ExtGnu;
5096
4448
class PragmaOnceUnitState;
5097
4449
class PragmaOnce;
5098
 
class CCExprResolve;
5099
 
class CExprResolve;
 
4450
class CMatchSyntax;
5100
4451
namespace Puma {
5101
4452
 
5102
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
4453
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
5103
4454
class CTypePrimitive : public CTypeInfo {
5104
 
#line 5105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
4455
#line 4456 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
4456
  friend class ::CCExprResolve;
 
4457
  friend class ::CExprResolve;
5105
4458
  friend class ::WinIfExists;
5106
4459
  friend class ::WinImportHandler;
5107
4460
  friend class ::WinMacros;
5108
 
  friend class ::CMatchSyntax;
5109
 
  friend class ::ExtGnu;
 
4461
  friend class ::WinAsm;
 
4462
  friend class ::WinDeclSpecs;
 
4463
  friend class ::WinMemberExplSpec;
 
4464
  friend class ::WinTypeKeywords;
 
4465
  friend class ::WinFriend;
5110
4466
  friend class ::ExtAC;
5111
4467
  friend class ::ExtACBuilderCoupling;
5112
4468
  friend class ::ExtACSyntaxCoupling;
5113
4469
  friend class ::ExtACTree;
5114
4470
  friend class ::ExtACKeywords;
5115
 
  friend class ::WinAsm;
5116
 
  friend class ::WinDeclSpecs;
5117
 
  friend class ::WinMemberExplSpec;
5118
 
  friend class ::WinTypeKeywords;
 
4471
  friend class ::ExtGnu;
5119
4472
  friend class ::PragmaOnceUnitState;
5120
4473
  friend class ::PragmaOnce;
5121
 
  friend class ::CCExprResolve;
5122
 
  friend class ::CExprResolve;
 
4474
  friend class ::CMatchSyntax;
5123
4475
 
5124
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
 
4476
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePrimitive.h"
5125
4477
 
5126
4478
  const char *_Text;
5127
4479
 
5170
4522
 
5171
4523
#endif /* __CTypePrimitive_h__ */
5172
4524
 
5173
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
4525
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
5174
4526
// This file is part of PUMA.
5175
4527
// Copyright (C) 1999-2003  The PUMA developer team.
5176
4528
//                                                                
5201
4553
 
5202
4554
 
5203
4555
 
5204
 
#line 5205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
4556
#line 4557 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
5205
4557
} // closed Puma
 
4558
class CCExprResolve;
 
4559
class CExprResolve;
5206
4560
class WinIfExists;
5207
4561
class WinImportHandler;
5208
4562
class WinMacros;
5209
 
class CMatchSyntax;
5210
 
class ExtGnu;
 
4563
class WinAsm;
 
4564
class WinDeclSpecs;
 
4565
class WinMemberExplSpec;
 
4566
class WinTypeKeywords;
 
4567
class WinFriend;
5211
4568
class ExtAC;
5212
4569
class ExtACBuilderCoupling;
5213
4570
class ExtACSyntaxCoupling;
5214
4571
class ExtACTree;
5215
4572
class ExtACKeywords;
5216
 
class WinAsm;
5217
 
class WinDeclSpecs;
5218
 
class WinMemberExplSpec;
5219
 
class WinTypeKeywords;
 
4573
class ExtGnu;
5220
4574
class PragmaOnceUnitState;
5221
4575
class PragmaOnce;
5222
 
class CCExprResolve;
5223
 
class CExprResolve;
 
4576
class CMatchSyntax;
5224
4577
namespace Puma {
5225
4578
 
5226
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
4579
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
5227
4580
class CTypeQualified : public CTypeInfo {
5228
 
#line 5229 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
4581
#line 4582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
4582
  friend class ::CCExprResolve;
 
4583
  friend class ::CExprResolve;
5229
4584
  friend class ::WinIfExists;
5230
4585
  friend class ::WinImportHandler;
5231
4586
  friend class ::WinMacros;
5232
 
  friend class ::CMatchSyntax;
5233
 
  friend class ::ExtGnu;
 
4587
  friend class ::WinAsm;
 
4588
  friend class ::WinDeclSpecs;
 
4589
  friend class ::WinMemberExplSpec;
 
4590
  friend class ::WinTypeKeywords;
 
4591
  friend class ::WinFriend;
5234
4592
  friend class ::ExtAC;
5235
4593
  friend class ::ExtACBuilderCoupling;
5236
4594
  friend class ::ExtACSyntaxCoupling;
5237
4595
  friend class ::ExtACTree;
5238
4596
  friend class ::ExtACKeywords;
5239
 
  friend class ::WinAsm;
5240
 
  friend class ::WinDeclSpecs;
5241
 
  friend class ::WinMemberExplSpec;
5242
 
  friend class ::WinTypeKeywords;
 
4597
  friend class ::ExtGnu;
5243
4598
  friend class ::PragmaOnceUnitState;
5244
4599
  friend class ::PragmaOnce;
5245
 
  friend class ::CCExprResolve;
5246
 
  friend class ::CExprResolve;
5247
 
 
5248
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
5249
 
 
5250
 
  bool _Const;
5251
 
  bool _Volatile;
5252
 
  bool _Restrict;
 
4600
  friend class ::CMatchSyntax;
 
4601
 
 
4602
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeQualified.h"
 
4603
 
 
4604
  bool _QualConst;
 
4605
  bool _QualVolatile;
 
4606
  bool _QualRestrict;
5253
4607
 
5254
4608
protected:
5255
4609
  CTypeQualified (CTypeInfo *, bool, bool, bool, TypeId);
5270
4624
inline CTypeQualified::CTypeQualified (CTypeInfo *base, bool c, bool v, bool r, 
5271
4625
 CTypeInfo::TypeId id) :
5272
4626
  CTypeInfo (base, id),
5273
 
  _Const (c),
5274
 
  _Volatile (v),
5275
 
  _Restrict (r)
 
4627
  _QualConst (c),
 
4628
  _QualVolatile (v),
 
4629
  _QualRestrict (r)
5276
4630
 {}
5277
4631
inline CTypeQualified::CTypeQualified (CTypeInfo *base, bool c, bool v, bool r) :
5278
4632
  CTypeInfo (base, CTypeInfo::TYPE_QUALIFIED),
5279
 
  _Const (c),
5280
 
  _Volatile (v),
5281
 
  _Restrict (r)
 
4633
  _QualConst (c),
 
4634
  _QualVolatile (v),
 
4635
  _QualRestrict (r)
5282
4636
 {}
5283
4637
inline CTypeQualified::~CTypeQualified ()
5284
4638
 {}
5285
4639
 
5286
4640
inline bool CTypeQualified::isConst () const
5287
 
 { return _Const; }
 
4641
 { return _QualConst; }
5288
4642
inline bool CTypeQualified::isVolatile () const
5289
 
 { return _Volatile; }
 
4643
 { return _QualVolatile; }
5290
4644
inline bool CTypeQualified::isRestrict () const
5291
 
 { return _Restrict; }
 
4645
 { return _QualRestrict; }
5292
4646
 
5293
4647
inline void CTypeQualified::isConst (bool v)
5294
 
 { _Const = v; }
 
4648
 { _QualConst = v; }
5295
4649
inline void CTypeQualified::isVolatile (bool v)
5296
 
 { _Volatile = v; }
 
4650
 { _QualVolatile = v; }
5297
4651
inline void CTypeQualified::isRestrict (bool v)
5298
 
 { _Restrict = v; }
 
4652
 { _QualRestrict = v; }
5299
4653
 
5300
4654
 
5301
4655
} // namespace Puma
5302
4656
 
5303
4657
#endif /* __CTypeQualified_h__ */
5304
4658
 
5305
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
4659
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
5306
4660
// This file is part of PUMA.
5307
4661
// Copyright (C) 1999-2003  The PUMA developer team.
5308
4662
//                                                                
5333
4687
 
5334
4688
 
5335
4689
 
5336
 
#line 5337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
4690
#line 4691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
5337
4691
} // closed Puma
 
4692
class CCExprResolve;
 
4693
class CExprResolve;
5338
4694
class WinIfExists;
5339
4695
class WinImportHandler;
5340
4696
class WinMacros;
5341
 
class CMatchSyntax;
5342
 
class ExtGnu;
 
4697
class WinAsm;
 
4698
class WinDeclSpecs;
 
4699
class WinMemberExplSpec;
 
4700
class WinTypeKeywords;
 
4701
class WinFriend;
5343
4702
class ExtAC;
5344
4703
class ExtACBuilderCoupling;
5345
4704
class ExtACSyntaxCoupling;
5346
4705
class ExtACTree;
5347
4706
class ExtACKeywords;
5348
 
class WinAsm;
5349
 
class WinDeclSpecs;
5350
 
class WinMemberExplSpec;
5351
 
class WinTypeKeywords;
 
4707
class ExtGnu;
5352
4708
class PragmaOnceUnitState;
5353
4709
class PragmaOnce;
5354
 
class CCExprResolve;
5355
 
class CExprResolve;
 
4710
class CMatchSyntax;
5356
4711
namespace Puma {
5357
4712
 
5358
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
4713
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
5359
4714
class CTypeAddress : public CTypeInfo {
5360
 
#line 5361 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
4715
#line 4716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
4716
  friend class ::CCExprResolve;
 
4717
  friend class ::CExprResolve;
5361
4718
  friend class ::WinIfExists;
5362
4719
  friend class ::WinImportHandler;
5363
4720
  friend class ::WinMacros;
5364
 
  friend class ::CMatchSyntax;
5365
 
  friend class ::ExtGnu;
 
4721
  friend class ::WinAsm;
 
4722
  friend class ::WinDeclSpecs;
 
4723
  friend class ::WinMemberExplSpec;
 
4724
  friend class ::WinTypeKeywords;
 
4725
  friend class ::WinFriend;
5366
4726
  friend class ::ExtAC;
5367
4727
  friend class ::ExtACBuilderCoupling;
5368
4728
  friend class ::ExtACSyntaxCoupling;
5369
4729
  friend class ::ExtACTree;
5370
4730
  friend class ::ExtACKeywords;
5371
 
  friend class ::WinAsm;
5372
 
  friend class ::WinDeclSpecs;
5373
 
  friend class ::WinMemberExplSpec;
5374
 
  friend class ::WinTypeKeywords;
 
4731
  friend class ::ExtGnu;
5375
4732
  friend class ::PragmaOnceUnitState;
5376
4733
  friend class ::PragmaOnce;
5377
 
  friend class ::CCExprResolve;
5378
 
  friend class ::CExprResolve;
 
4734
  friend class ::CMatchSyntax;
5379
4735
 
5380
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
 
4736
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeAddress.h"
5381
4737
 
5382
4738
public:
5383
4739
  CTypeAddress (CTypeInfo *);
5395
4751
 
5396
4752
#endif /* __CTypeAddress_h__ */
5397
4753
 
5398
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
4754
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
5399
4755
// This file is part of PUMA.
5400
4756
// Copyright (C) 1999-2003  The PUMA developer team.
5401
4757
//                                                                
5426
4782
 
5427
4783
 
5428
4784
 
5429
 
#line 5430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
4785
#line 4786 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
5430
4786
} // closed Puma
 
4787
class CCExprResolve;
 
4788
class CExprResolve;
5431
4789
class WinIfExists;
5432
4790
class WinImportHandler;
5433
4791
class WinMacros;
5434
 
class CMatchSyntax;
5435
 
class ExtGnu;
 
4792
class WinAsm;
 
4793
class WinDeclSpecs;
 
4794
class WinMemberExplSpec;
 
4795
class WinTypeKeywords;
 
4796
class WinFriend;
5436
4797
class ExtAC;
5437
4798
class ExtACBuilderCoupling;
5438
4799
class ExtACSyntaxCoupling;
5439
4800
class ExtACTree;
5440
4801
class ExtACKeywords;
5441
 
class WinAsm;
5442
 
class WinDeclSpecs;
5443
 
class WinMemberExplSpec;
5444
 
class WinTypeKeywords;
 
4802
class ExtGnu;
5445
4803
class PragmaOnceUnitState;
5446
4804
class PragmaOnce;
5447
 
class CCExprResolve;
5448
 
class CExprResolve;
 
4805
class CMatchSyntax;
5449
4806
namespace Puma {
5450
4807
 
5451
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
4808
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
5452
4809
class CTypeBitField : public CTypeInfo {
5453
 
#line 5454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
4810
#line 4811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
4811
  friend class ::CCExprResolve;
 
4812
  friend class ::CExprResolve;
5454
4813
  friend class ::WinIfExists;
5455
4814
  friend class ::WinImportHandler;
5456
4815
  friend class ::WinMacros;
5457
 
  friend class ::CMatchSyntax;
5458
 
  friend class ::ExtGnu;
 
4816
  friend class ::WinAsm;
 
4817
  friend class ::WinDeclSpecs;
 
4818
  friend class ::WinMemberExplSpec;
 
4819
  friend class ::WinTypeKeywords;
 
4820
  friend class ::WinFriend;
5459
4821
  friend class ::ExtAC;
5460
4822
  friend class ::ExtACBuilderCoupling;
5461
4823
  friend class ::ExtACSyntaxCoupling;
5462
4824
  friend class ::ExtACTree;
5463
4825
  friend class ::ExtACKeywords;
5464
 
  friend class ::WinAsm;
5465
 
  friend class ::WinDeclSpecs;
5466
 
  friend class ::WinMemberExplSpec;
5467
 
  friend class ::WinTypeKeywords;
 
4826
  friend class ::ExtGnu;
5468
4827
  friend class ::PragmaOnceUnitState;
5469
4828
  friend class ::PragmaOnce;
5470
 
  friend class ::CCExprResolve;
5471
 
  friend class ::CExprResolve;
 
4829
  friend class ::CMatchSyntax;
5472
4830
 
5473
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
 
4831
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeBitField.h"
5474
4832
 
5475
4833
  long int _Size;
5476
4834
 
5499
4857
 
5500
4858
#endif /* __CTypeBitField_h__ */
5501
4859
 
5502
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
4860
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
5503
4861
// This file is part of PUMA.
5504
4862
// Copyright (C) 1999-2003  The PUMA developer team.
5505
4863
//                                                                
5530
4888
 
5531
4889
 
5532
4890
 
5533
 
#line 5534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
4891
#line 4892 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
5534
4892
} // closed Puma
 
4893
class CCExprResolve;
 
4894
class CExprResolve;
5535
4895
class WinIfExists;
5536
4896
class WinImportHandler;
5537
4897
class WinMacros;
5538
 
class CMatchSyntax;
5539
 
class ExtGnu;
 
4898
class WinAsm;
 
4899
class WinDeclSpecs;
 
4900
class WinMemberExplSpec;
 
4901
class WinTypeKeywords;
 
4902
class WinFriend;
5540
4903
class ExtAC;
5541
4904
class ExtACBuilderCoupling;
5542
4905
class ExtACSyntaxCoupling;
5543
4906
class ExtACTree;
5544
4907
class ExtACKeywords;
5545
 
class WinAsm;
5546
 
class WinDeclSpecs;
5547
 
class WinMemberExplSpec;
5548
 
class WinTypeKeywords;
 
4908
class ExtGnu;
5549
4909
class PragmaOnceUnitState;
5550
4910
class PragmaOnce;
5551
 
class CCExprResolve;
5552
 
class CExprResolve;
 
4911
class CMatchSyntax;
5553
4912
namespace Puma {
5554
4913
 
5555
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
4914
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
5556
4915
class CTypeArray : public CTypeInfo {
5557
 
#line 5558 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
4916
#line 4917 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
4917
  friend class ::CCExprResolve;
 
4918
  friend class ::CExprResolve;
5558
4919
  friend class ::WinIfExists;
5559
4920
  friend class ::WinImportHandler;
5560
4921
  friend class ::WinMacros;
5561
 
  friend class ::CMatchSyntax;
5562
 
  friend class ::ExtGnu;
 
4922
  friend class ::WinAsm;
 
4923
  friend class ::WinDeclSpecs;
 
4924
  friend class ::WinMemberExplSpec;
 
4925
  friend class ::WinTypeKeywords;
 
4926
  friend class ::WinFriend;
5563
4927
  friend class ::ExtAC;
5564
4928
  friend class ::ExtACBuilderCoupling;
5565
4929
  friend class ::ExtACSyntaxCoupling;
5566
4930
  friend class ::ExtACTree;
5567
4931
  friend class ::ExtACKeywords;
5568
 
  friend class ::WinAsm;
5569
 
  friend class ::WinDeclSpecs;
5570
 
  friend class ::WinMemberExplSpec;
5571
 
  friend class ::WinTypeKeywords;
 
4932
  friend class ::ExtGnu;
5572
4933
  friend class ::PragmaOnceUnitState;
5573
4934
  friend class ::PragmaOnce;
5574
 
  friend class ::CCExprResolve;
5575
 
  friend class ::CExprResolve;
 
4935
  friend class ::CMatchSyntax;
5576
4936
 
5577
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
 
4937
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeArray.h"
5578
4938
 
5579
4939
  long int _Size;
5580
4940
  bool _isFixed;
5581
4941
  CTypeQualified *_Quals;
5582
4942
  CTypeTemplateParam *_DepDim;
 
4943
  bool _hasDim;
5583
4944
 
5584
4945
protected:
5585
4946
  CTypeArray (CTypeInfo *, CTypeQualified *, TypeId);
5586
4947
  
5587
4948
public:
5588
 
  CTypeArray (CTypeInfo *, CTypeQualified * = 0);
 
4949
  CTypeArray (CTypeInfo *, CTypeQualified * = 0, bool has_dimension = false);
5589
4950
  ~CTypeArray ();
5590
4951
 
5591
4952
  void Dimension (long int);
5594
4955
  void isFixed (bool);
5595
4956
  bool isFixed () const;
5596
4957
  
 
4958
  void hasDimension (bool);
 
4959
  bool hasDimension () const;
 
4960
  
5597
4961
  CTypeQualified *Qualifiers () const;
5598
4962
  
5599
4963
  void DepDim (CTypeTemplateParam *);
5600
4964
  CTypeTemplateParam *DepDim () const;
5601
4965
};
5602
4966
 
5603
 
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals) :
 
4967
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals, bool has_dimension) :
5604
4968
  CTypeInfo (base, CTypeInfo::TYPE_ARRAY),
5605
4969
  _Size (0),
5606
4970
  _isFixed (false),
5607
4971
  _Quals (quals),
5608
 
  _DepDim (0)
 
4972
  _DepDim (0),
 
4973
  _hasDim (has_dimension)
5609
4974
 {}
5610
4975
inline CTypeArray::CTypeArray (CTypeInfo *base, CTypeQualified *quals, CTypeInfo::TypeId id) :
5611
4976
  CTypeInfo (base, id),
5612
4977
  _Size (0),
5613
4978
  _isFixed (false),
5614
4979
  _Quals (quals),
5615
 
  _DepDim (0)
 
4980
  _DepDim (0),
 
4981
  _hasDim (false)
5616
4982
 {}
5617
4983
inline CTypeArray::~CTypeArray ()
5618
4984
 { if (_Quals) CTypeInfo::Destroy (_Quals); }
5627
4993
inline bool CTypeArray::isFixed () const
5628
4994
 { return _isFixed; }
5629
4995
 
 
4996
inline void CTypeArray::hasDimension (bool v)
 
4997
 { _hasDim = v; }
 
4998
inline bool CTypeArray::hasDimension () const
 
4999
 { return _hasDim || _Size != 0; }
 
5000
 
5630
5001
inline CTypeQualified *CTypeArray::Qualifiers () const
5631
5002
 { return _Quals; }
5632
5003
 
5640
5011
 
5641
5012
#endif /* __CTypeArray_h__ */
5642
5013
 
5643
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
5014
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
5644
5015
// This file is part of PUMA.
5645
5016
// Copyright (C) 1999-2003  The PUMA developer team.
5646
5017
//                                                                
5671
5042
 
5672
5043
 
5673
5044
 
5674
 
#line 5675 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5045
#line 5046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
5675
5046
} // closed Puma
 
5047
class CCExprResolve;
 
5048
class CExprResolve;
5676
5049
class WinIfExists;
5677
5050
class WinImportHandler;
5678
5051
class WinMacros;
5679
 
class CMatchSyntax;
5680
 
class ExtGnu;
 
5052
class WinAsm;
 
5053
class WinDeclSpecs;
 
5054
class WinMemberExplSpec;
 
5055
class WinTypeKeywords;
 
5056
class WinFriend;
5681
5057
class ExtAC;
5682
5058
class ExtACBuilderCoupling;
5683
5059
class ExtACSyntaxCoupling;
5684
5060
class ExtACTree;
5685
5061
class ExtACKeywords;
5686
 
class WinAsm;
5687
 
class WinDeclSpecs;
5688
 
class WinMemberExplSpec;
5689
 
class WinTypeKeywords;
 
5062
class ExtGnu;
5690
5063
class PragmaOnceUnitState;
5691
5064
class PragmaOnce;
5692
 
class CCExprResolve;
5693
 
class CExprResolve;
 
5065
class CMatchSyntax;
5694
5066
namespace Puma {
5695
5067
 
5696
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
5068
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
5697
5069
class CTypeVarArray : public CTypeArray {
5698
 
#line 5699 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5070
#line 5071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
5071
  friend class ::CCExprResolve;
 
5072
  friend class ::CExprResolve;
5699
5073
  friend class ::WinIfExists;
5700
5074
  friend class ::WinImportHandler;
5701
5075
  friend class ::WinMacros;
5702
 
  friend class ::CMatchSyntax;
5703
 
  friend class ::ExtGnu;
 
5076
  friend class ::WinAsm;
 
5077
  friend class ::WinDeclSpecs;
 
5078
  friend class ::WinMemberExplSpec;
 
5079
  friend class ::WinTypeKeywords;
 
5080
  friend class ::WinFriend;
5704
5081
  friend class ::ExtAC;
5705
5082
  friend class ::ExtACBuilderCoupling;
5706
5083
  friend class ::ExtACSyntaxCoupling;
5707
5084
  friend class ::ExtACTree;
5708
5085
  friend class ::ExtACKeywords;
5709
 
  friend class ::WinAsm;
5710
 
  friend class ::WinDeclSpecs;
5711
 
  friend class ::WinMemberExplSpec;
5712
 
  friend class ::WinTypeKeywords;
 
5086
  friend class ::ExtGnu;
5713
5087
  friend class ::PragmaOnceUnitState;
5714
5088
  friend class ::PragmaOnce;
5715
 
  friend class ::CCExprResolve;
5716
 
  friend class ::CExprResolve;
 
5089
  friend class ::CMatchSyntax;
5717
5090
 
5718
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
 
5091
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeVarArray.h"
5719
5092
 
5720
5093
public:
5721
5094
  CTypeVarArray (CTypeInfo *, CTypeQualified * = 0);
5733
5106
 
5734
5107
#endif /* __CTypeVarArray_h__ */
5735
5108
 
5736
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
5109
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
5737
5110
// This file is part of PUMA.
5738
5111
// Copyright (C) 1999-2003  The PUMA developer team.
5739
5112
//                                                                
5764
5137
 
5765
5138
 
5766
5139
 
5767
 
#line 5768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5140
#line 5141 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
5768
5141
} // closed Puma
 
5142
class CCExprResolve;
 
5143
class CExprResolve;
5769
5144
class WinIfExists;
5770
5145
class WinImportHandler;
5771
5146
class WinMacros;
5772
 
class CMatchSyntax;
5773
 
class ExtGnu;
 
5147
class WinAsm;
 
5148
class WinDeclSpecs;
 
5149
class WinMemberExplSpec;
 
5150
class WinTypeKeywords;
 
5151
class WinFriend;
5774
5152
class ExtAC;
5775
5153
class ExtACBuilderCoupling;
5776
5154
class ExtACSyntaxCoupling;
5777
5155
class ExtACTree;
5778
5156
class ExtACKeywords;
5779
 
class WinAsm;
5780
 
class WinDeclSpecs;
5781
 
class WinMemberExplSpec;
5782
 
class WinTypeKeywords;
 
5157
class ExtGnu;
5783
5158
class PragmaOnceUnitState;
5784
5159
class PragmaOnce;
5785
 
class CCExprResolve;
5786
 
class CExprResolve;
 
5160
class CMatchSyntax;
5787
5161
namespace Puma {
5788
5162
 
5789
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
5163
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
5790
5164
class CTypePointer : public CTypeInfo {
5791
 
#line 5792 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5165
#line 5166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
5166
  friend class ::CCExprResolve;
 
5167
  friend class ::CExprResolve;
5792
5168
  friend class ::WinIfExists;
5793
5169
  friend class ::WinImportHandler;
5794
5170
  friend class ::WinMacros;
5795
 
  friend class ::CMatchSyntax;
5796
 
  friend class ::ExtGnu;
 
5171
  friend class ::WinAsm;
 
5172
  friend class ::WinDeclSpecs;
 
5173
  friend class ::WinMemberExplSpec;
 
5174
  friend class ::WinTypeKeywords;
 
5175
  friend class ::WinFriend;
5797
5176
  friend class ::ExtAC;
5798
5177
  friend class ::ExtACBuilderCoupling;
5799
5178
  friend class ::ExtACSyntaxCoupling;
5800
5179
  friend class ::ExtACTree;
5801
5180
  friend class ::ExtACKeywords;
5802
 
  friend class ::WinAsm;
5803
 
  friend class ::WinDeclSpecs;
5804
 
  friend class ::WinMemberExplSpec;
5805
 
  friend class ::WinTypeKeywords;
 
5181
  friend class ::ExtGnu;
5806
5182
  friend class ::PragmaOnceUnitState;
5807
5183
  friend class ::PragmaOnce;
5808
 
  friend class ::CCExprResolve;
5809
 
  friend class ::CExprResolve;
 
5184
  friend class ::CMatchSyntax;
5810
5185
 
5811
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
 
5186
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypePointer.h"
5812
5187
 
5813
5188
protected:
5814
5189
  CTypePointer (CTypeInfo *, CTypeInfo::TypeId);
5832
5207
 
5833
5208
#endif /* __CTypePointer_h__ */
5834
5209
 
5835
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
5210
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
5836
5211
// This file is part of PUMA.
5837
5212
// Copyright (C) 1999-2003  The PUMA developer team.
5838
5213
//                                                                
5867
5242
class CTemplateParamInfo;
5868
5243
 
5869
5244
 
5870
 
#line 5871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5245
#line 5246 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
5871
5246
} // closed Puma
 
5247
class CCExprResolve;
 
5248
class CExprResolve;
5872
5249
class WinIfExists;
5873
5250
class WinImportHandler;
5874
5251
class WinMacros;
5875
 
class CMatchSyntax;
5876
 
class ExtGnu;
 
5252
class WinAsm;
 
5253
class WinDeclSpecs;
 
5254
class WinMemberExplSpec;
 
5255
class WinTypeKeywords;
 
5256
class WinFriend;
5877
5257
class ExtAC;
5878
5258
class ExtACBuilderCoupling;
5879
5259
class ExtACSyntaxCoupling;
5880
5260
class ExtACTree;
5881
5261
class ExtACKeywords;
5882
 
class WinAsm;
5883
 
class WinDeclSpecs;
5884
 
class WinMemberExplSpec;
5885
 
class WinTypeKeywords;
 
5262
class ExtGnu;
5886
5263
class PragmaOnceUnitState;
5887
5264
class PragmaOnce;
5888
 
class CCExprResolve;
5889
 
class CExprResolve;
 
5265
class CMatchSyntax;
5890
5266
namespace Puma {
5891
5267
 
5892
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
5268
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
5893
5269
class CTypeMemberPointer : public CTypePointer {
5894
 
#line 5895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5270
#line 5271 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
5271
  friend class ::CCExprResolve;
 
5272
  friend class ::CExprResolve;
5895
5273
  friend class ::WinIfExists;
5896
5274
  friend class ::WinImportHandler;
5897
5275
  friend class ::WinMacros;
5898
 
  friend class ::CMatchSyntax;
5899
 
  friend class ::ExtGnu;
 
5276
  friend class ::WinAsm;
 
5277
  friend class ::WinDeclSpecs;
 
5278
  friend class ::WinMemberExplSpec;
 
5279
  friend class ::WinTypeKeywords;
 
5280
  friend class ::WinFriend;
5900
5281
  friend class ::ExtAC;
5901
5282
  friend class ::ExtACBuilderCoupling;
5902
5283
  friend class ::ExtACSyntaxCoupling;
5903
5284
  friend class ::ExtACTree;
5904
5285
  friend class ::ExtACKeywords;
5905
 
  friend class ::WinAsm;
5906
 
  friend class ::WinDeclSpecs;
5907
 
  friend class ::WinMemberExplSpec;
5908
 
  friend class ::WinTypeKeywords;
 
5286
  friend class ::ExtGnu;
5909
5287
  friend class ::PragmaOnceUnitState;
5910
5288
  friend class ::PragmaOnce;
5911
 
  friend class ::CCExprResolve;
5912
 
  friend class ::CExprResolve;
 
5289
  friend class ::CMatchSyntax;
5913
5290
 
5914
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
 
5291
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeMemberPointer.h"
5915
5292
 
5916
5293
  CObjectInfo *_Class;
5917
5294
 
5935
5312
 
5936
5313
#endif /* __CTypeMemberPointer_h__ */
5937
5314
 
5938
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
5315
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
5939
5316
// This file is part of PUMA.
5940
5317
// Copyright (C) 1999-2003  The PUMA developer team.
5941
5318
//                                                                
5963
5340
#endif
5964
5341
 
5965
5342
 
5966
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
5343
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
5967
5344
// This file is part of PUMA.
5968
5345
// Copyright (C) 1999-2003  The PUMA developer team.
5969
5346
//                                                                
5986
5363
#define __CTypeList_h__
5987
5364
 
5988
5365
 
5989
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
5366
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
5990
5367
namespace Puma {
5991
5368
 
5992
5369
 
5994
5371
class CT_ArgDeclList;
5995
5372
 
5996
5373
 
5997
 
#line 5998 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5374
#line 5375 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
5998
5375
} // closed Puma
 
5376
class CCExprResolve;
 
5377
class CExprResolve;
5999
5378
class WinIfExists;
6000
5379
class WinImportHandler;
6001
5380
class WinMacros;
6002
 
class CMatchSyntax;
6003
 
class ExtGnu;
 
5381
class WinAsm;
 
5382
class WinDeclSpecs;
 
5383
class WinMemberExplSpec;
 
5384
class WinTypeKeywords;
 
5385
class WinFriend;
6004
5386
class ExtAC;
6005
5387
class ExtACBuilderCoupling;
6006
5388
class ExtACSyntaxCoupling;
6007
5389
class ExtACTree;
6008
5390
class ExtACKeywords;
6009
 
class WinAsm;
6010
 
class WinDeclSpecs;
6011
 
class WinMemberExplSpec;
6012
 
class WinTypeKeywords;
 
5391
class ExtGnu;
6013
5392
class PragmaOnceUnitState;
6014
5393
class PragmaOnce;
6015
 
class CCExprResolve;
6016
 
class CExprResolve;
 
5394
class CMatchSyntax;
6017
5395
namespace Puma {
6018
5396
 
6019
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
5397
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
6020
5398
class CTypeList {
6021
 
#line 6022 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5399
#line 5400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
5400
  friend class ::CCExprResolve;
 
5401
  friend class ::CExprResolve;
6022
5402
  friend class ::WinIfExists;
6023
5403
  friend class ::WinImportHandler;
6024
5404
  friend class ::WinMacros;
6025
 
  friend class ::CMatchSyntax;
6026
 
  friend class ::ExtGnu;
 
5405
  friend class ::WinAsm;
 
5406
  friend class ::WinDeclSpecs;
 
5407
  friend class ::WinMemberExplSpec;
 
5408
  friend class ::WinTypeKeywords;
 
5409
  friend class ::WinFriend;
6027
5410
  friend class ::ExtAC;
6028
5411
  friend class ::ExtACBuilderCoupling;
6029
5412
  friend class ::ExtACSyntaxCoupling;
6030
5413
  friend class ::ExtACTree;
6031
5414
  friend class ::ExtACKeywords;
6032
 
  friend class ::WinAsm;
6033
 
  friend class ::WinDeclSpecs;
6034
 
  friend class ::WinMemberExplSpec;
6035
 
  friend class ::WinTypeKeywords;
 
5415
  friend class ::ExtGnu;
6036
5416
  friend class ::PragmaOnceUnitState;
6037
5417
  friend class ::PragmaOnce;
6038
 
  friend class ::CCExprResolve;
6039
 
  friend class ::CExprResolve;
 
5418
  friend class ::CMatchSyntax;
6040
5419
 
6041
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeList.h"
 
5420
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeList.h"
6042
5421
 
6043
5422
  Array<CTypeInfo*> _List;
6044
5423
  CT_ArgDeclList *_ArgumentList;
6086
5465
 
6087
5466
#endif /* __CTypeList_h__ */
6088
5467
 
6089
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
5468
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
6090
5469
namespace Puma {
6091
5470
 
6092
5471
 
6094
5473
class CRecord;
6095
5474
 
6096
5475
 
6097
 
#line 6098 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5476
#line 5477 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
6098
5477
} // closed Puma
 
5478
class CCExprResolve;
 
5479
class CExprResolve;
6099
5480
class WinIfExists;
6100
5481
class WinImportHandler;
6101
5482
class WinMacros;
6102
 
class CMatchSyntax;
6103
 
class ExtGnu;
 
5483
class WinAsm;
 
5484
class WinDeclSpecs;
 
5485
class WinMemberExplSpec;
 
5486
class WinTypeKeywords;
 
5487
class WinFriend;
6104
5488
class ExtAC;
6105
5489
class ExtACBuilderCoupling;
6106
5490
class ExtACSyntaxCoupling;
6107
5491
class ExtACTree;
6108
5492
class ExtACKeywords;
6109
 
class WinAsm;
6110
 
class WinDeclSpecs;
6111
 
class WinMemberExplSpec;
6112
 
class WinTypeKeywords;
 
5493
class ExtGnu;
6113
5494
class PragmaOnceUnitState;
6114
5495
class PragmaOnce;
6115
 
class CCExprResolve;
6116
 
class CExprResolve;
 
5496
class CMatchSyntax;
6117
5497
namespace Puma {
6118
5498
 
6119
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
5499
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
6120
5500
class CTypeFunction : public CTypeQualified {
6121
 
#line 6122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5501
#line 5502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
5502
  friend class ::CCExprResolve;
 
5503
  friend class ::CExprResolve;
6122
5504
  friend class ::WinIfExists;
6123
5505
  friend class ::WinImportHandler;
6124
5506
  friend class ::WinMacros;
6125
 
  friend class ::CMatchSyntax;
6126
 
  friend class ::ExtGnu;
 
5507
  friend class ::WinAsm;
 
5508
  friend class ::WinDeclSpecs;
 
5509
  friend class ::WinMemberExplSpec;
 
5510
  friend class ::WinTypeKeywords;
 
5511
  friend class ::WinFriend;
6127
5512
  friend class ::ExtAC;
6128
5513
  friend class ::ExtACBuilderCoupling;
6129
5514
  friend class ::ExtACSyntaxCoupling;
6130
5515
  friend class ::ExtACTree;
6131
5516
  friend class ::ExtACKeywords;
6132
 
  friend class ::WinAsm;
6133
 
  friend class ::WinDeclSpecs;
6134
 
  friend class ::WinMemberExplSpec;
6135
 
  friend class ::WinTypeKeywords;
 
5517
  friend class ::ExtGnu;
6136
5518
  friend class ::PragmaOnceUnitState;
6137
5519
  friend class ::PragmaOnce;
6138
 
  friend class ::CCExprResolve;
6139
 
  friend class ::CExprResolve;
 
5520
  friend class ::CMatchSyntax;
6140
5521
 
6141
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
 
5522
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeFunction.h"
6142
5523
 
6143
5524
  CTypeList *_ArgTypes;
6144
5525
  CFunctionInfo *_Function;
6186
5567
 
6187
5568
#endif /* __CTypeFunction_h__ */
6188
5569
 
6189
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
5570
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
6190
5571
// This file is part of PUMA.
6191
5572
// Copyright (C) 1999-2003  The PUMA developer team.
6192
5573
//                                                                
6219
5600
class CEnumInfo;
6220
5601
 
6221
5602
 
6222
 
#line 6223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5603
#line 5604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
6223
5604
} // closed Puma
 
5605
class CCExprResolve;
 
5606
class CExprResolve;
6224
5607
class WinIfExists;
6225
5608
class WinImportHandler;
6226
5609
class WinMacros;
6227
 
class CMatchSyntax;
6228
 
class ExtGnu;
 
5610
class WinAsm;
 
5611
class WinDeclSpecs;
 
5612
class WinMemberExplSpec;
 
5613
class WinTypeKeywords;
 
5614
class WinFriend;
6229
5615
class ExtAC;
6230
5616
class ExtACBuilderCoupling;
6231
5617
class ExtACSyntaxCoupling;
6232
5618
class ExtACTree;
6233
5619
class ExtACKeywords;
6234
 
class WinAsm;
6235
 
class WinDeclSpecs;
6236
 
class WinMemberExplSpec;
6237
 
class WinTypeKeywords;
 
5620
class ExtGnu;
6238
5621
class PragmaOnceUnitState;
6239
5622
class PragmaOnce;
6240
 
class CCExprResolve;
6241
 
class CExprResolve;
 
5623
class CMatchSyntax;
6242
5624
namespace Puma {
6243
5625
 
6244
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
5626
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
6245
5627
class CTypeEnum : public CTypeInfo {
6246
 
#line 6247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5628
#line 5629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
5629
  friend class ::CCExprResolve;
 
5630
  friend class ::CExprResolve;
6247
5631
  friend class ::WinIfExists;
6248
5632
  friend class ::WinImportHandler;
6249
5633
  friend class ::WinMacros;
6250
 
  friend class ::CMatchSyntax;
6251
 
  friend class ::ExtGnu;
 
5634
  friend class ::WinAsm;
 
5635
  friend class ::WinDeclSpecs;
 
5636
  friend class ::WinMemberExplSpec;
 
5637
  friend class ::WinTypeKeywords;
 
5638
  friend class ::WinFriend;
6252
5639
  friend class ::ExtAC;
6253
5640
  friend class ::ExtACBuilderCoupling;
6254
5641
  friend class ::ExtACSyntaxCoupling;
6255
5642
  friend class ::ExtACTree;
6256
5643
  friend class ::ExtACKeywords;
6257
 
  friend class ::WinAsm;
6258
 
  friend class ::WinDeclSpecs;
6259
 
  friend class ::WinMemberExplSpec;
6260
 
  friend class ::WinTypeKeywords;
 
5644
  friend class ::ExtGnu;
6261
5645
  friend class ::PragmaOnceUnitState;
6262
5646
  friend class ::PragmaOnce;
6263
 
  friend class ::CCExprResolve;
6264
 
  friend class ::CExprResolve;
 
5647
  friend class ::CMatchSyntax;
6265
5648
 
6266
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
 
5649
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeEnum.h"
6267
5650
 
6268
5651
  CEnumInfo *_Enum;
6269
5652
 
6273
5656
 
6274
5657
  CEnumInfo *EnumInfo () const;
6275
5658
  bool isComplete (unsigned long = 0) const;
 
5659
  
 
5660
  CTypeInfo *UnderlyingType () const;
6276
5661
};
6277
5662
 
6278
5663
inline CTypeEnum::CTypeEnum (CEnumInfo *e) :
6284
5669
 
6285
5670
inline CEnumInfo *CTypeEnum::EnumInfo () const 
6286
5671
 { return _Enum; }
6287
 
 
 
5672
 
6288
5673
 
6289
5674
} // namespace Puma
6290
5675
 
6291
5676
#endif /* __CTypeEnum_h__ */
6292
5677
 
6293
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
5678
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
6294
5679
// This file is part of PUMA.
6295
5680
// Copyright (C) 1999-2003  The PUMA developer team.
6296
5681
//                                                                
6323
5708
class CRecord;
6324
5709
 
6325
5710
 
6326
 
#line 6327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5711
#line 5712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
6327
5712
} // closed Puma
 
5713
class CCExprResolve;
 
5714
class CExprResolve;
6328
5715
class WinIfExists;
6329
5716
class WinImportHandler;
6330
5717
class WinMacros;
6331
 
class CMatchSyntax;
6332
 
class ExtGnu;
 
5718
class WinAsm;
 
5719
class WinDeclSpecs;
 
5720
class WinMemberExplSpec;
 
5721
class WinTypeKeywords;
 
5722
class WinFriend;
6333
5723
class ExtAC;
6334
5724
class ExtACBuilderCoupling;
6335
5725
class ExtACSyntaxCoupling;
6336
5726
class ExtACTree;
6337
5727
class ExtACKeywords;
6338
 
class WinAsm;
6339
 
class WinDeclSpecs;
6340
 
class WinMemberExplSpec;
6341
 
class WinTypeKeywords;
 
5728
class ExtGnu;
6342
5729
class PragmaOnceUnitState;
6343
5730
class PragmaOnce;
6344
 
class CCExprResolve;
6345
 
class CExprResolve;
 
5731
class CMatchSyntax;
6346
5732
namespace Puma {
6347
5733
 
6348
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
5734
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
6349
5735
class CTypeRecord : public CTypeInfo {
6350
 
#line 6351 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5736
#line 5737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
5737
  friend class ::CCExprResolve;
 
5738
  friend class ::CExprResolve;
6351
5739
  friend class ::WinIfExists;
6352
5740
  friend class ::WinImportHandler;
6353
5741
  friend class ::WinMacros;
6354
 
  friend class ::CMatchSyntax;
6355
 
  friend class ::ExtGnu;
 
5742
  friend class ::WinAsm;
 
5743
  friend class ::WinDeclSpecs;
 
5744
  friend class ::WinMemberExplSpec;
 
5745
  friend class ::WinTypeKeywords;
 
5746
  friend class ::WinFriend;
6356
5747
  friend class ::ExtAC;
6357
5748
  friend class ::ExtACBuilderCoupling;
6358
5749
  friend class ::ExtACSyntaxCoupling;
6359
5750
  friend class ::ExtACTree;
6360
5751
  friend class ::ExtACKeywords;
6361
 
  friend class ::WinAsm;
6362
 
  friend class ::WinDeclSpecs;
6363
 
  friend class ::WinMemberExplSpec;
6364
 
  friend class ::WinTypeKeywords;
 
5752
  friend class ::ExtGnu;
6365
5753
  friend class ::PragmaOnceUnitState;
6366
5754
  friend class ::PragmaOnce;
6367
 
  friend class ::CCExprResolve;
6368
 
  friend class ::CExprResolve;
 
5755
  friend class ::CMatchSyntax;
6369
5756
 
6370
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
 
5757
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeRecord.h"
6371
5758
 
6372
5759
  bool _hasConstMember;
6373
5760
 
6422
5809
 
6423
5810
#endif /* __CTypeRecord_h__ */
6424
5811
 
6425
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
5812
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
6426
5813
// This file is part of PUMA.
6427
5814
// Copyright (C) 1999-2003  The PUMA developer team.
6428
5815
//                                                                
6456
5843
class CRecord;
6457
5844
 
6458
5845
 
6459
 
#line 6460 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5846
#line 5847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
6460
5847
} // closed Puma
 
5848
class CCExprResolve;
 
5849
class CExprResolve;
6461
5850
class WinIfExists;
6462
5851
class WinImportHandler;
6463
5852
class WinMacros;
6464
 
class CMatchSyntax;
6465
 
class ExtGnu;
 
5853
class WinAsm;
 
5854
class WinDeclSpecs;
 
5855
class WinMemberExplSpec;
 
5856
class WinTypeKeywords;
 
5857
class WinFriend;
6466
5858
class ExtAC;
6467
5859
class ExtACBuilderCoupling;
6468
5860
class ExtACSyntaxCoupling;
6469
5861
class ExtACTree;
6470
5862
class ExtACKeywords;
6471
 
class WinAsm;
6472
 
class WinDeclSpecs;
6473
 
class WinMemberExplSpec;
6474
 
class WinTypeKeywords;
 
5863
class ExtGnu;
6475
5864
class PragmaOnceUnitState;
6476
5865
class PragmaOnce;
6477
 
class CCExprResolve;
6478
 
class CExprResolve;
 
5866
class CMatchSyntax;
6479
5867
namespace Puma {
6480
5868
 
6481
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
5869
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
6482
5870
class CTypeClass : public CTypeRecord {
6483
 
#line 6484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5871
#line 5872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
5872
  friend class ::CCExprResolve;
 
5873
  friend class ::CExprResolve;
6484
5874
  friend class ::WinIfExists;
6485
5875
  friend class ::WinImportHandler;
6486
5876
  friend class ::WinMacros;
6487
 
  friend class ::CMatchSyntax;
6488
 
  friend class ::ExtGnu;
 
5877
  friend class ::WinAsm;
 
5878
  friend class ::WinDeclSpecs;
 
5879
  friend class ::WinMemberExplSpec;
 
5880
  friend class ::WinTypeKeywords;
 
5881
  friend class ::WinFriend;
6489
5882
  friend class ::ExtAC;
6490
5883
  friend class ::ExtACBuilderCoupling;
6491
5884
  friend class ::ExtACSyntaxCoupling;
6492
5885
  friend class ::ExtACTree;
6493
5886
  friend class ::ExtACKeywords;
6494
 
  friend class ::WinAsm;
6495
 
  friend class ::WinDeclSpecs;
6496
 
  friend class ::WinMemberExplSpec;
6497
 
  friend class ::WinTypeKeywords;
 
5887
  friend class ::ExtGnu;
6498
5888
  friend class ::PragmaOnceUnitState;
6499
5889
  friend class ::PragmaOnce;
6500
 
  friend class ::CCExprResolve;
6501
 
  friend class ::CExprResolve;
 
5890
  friend class ::CMatchSyntax;
6502
5891
 
6503
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
 
5892
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeClass.h"
6504
5893
 
6505
5894
public:
6506
5895
  CTypeClass (CRecord *);
6520
5909
 
6521
5910
#endif /* __CTypeClass_h__ */
6522
5911
 
6523
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
5912
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
6524
5913
// This file is part of PUMA.
6525
5914
// Copyright (C) 1999-2003  The PUMA developer team.
6526
5915
//                                                                
6554
5943
class CRecord;
6555
5944
 
6556
5945
 
6557
 
#line 6558 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5946
#line 5947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
6558
5947
} // closed Puma
 
5948
class CCExprResolve;
 
5949
class CExprResolve;
6559
5950
class WinIfExists;
6560
5951
class WinImportHandler;
6561
5952
class WinMacros;
6562
 
class CMatchSyntax;
6563
 
class ExtGnu;
 
5953
class WinAsm;
 
5954
class WinDeclSpecs;
 
5955
class WinMemberExplSpec;
 
5956
class WinTypeKeywords;
 
5957
class WinFriend;
6564
5958
class ExtAC;
6565
5959
class ExtACBuilderCoupling;
6566
5960
class ExtACSyntaxCoupling;
6567
5961
class ExtACTree;
6568
5962
class ExtACKeywords;
6569
 
class WinAsm;
6570
 
class WinDeclSpecs;
6571
 
class WinMemberExplSpec;
6572
 
class WinTypeKeywords;
 
5963
class ExtGnu;
6573
5964
class PragmaOnceUnitState;
6574
5965
class PragmaOnce;
6575
 
class CCExprResolve;
6576
 
class CExprResolve;
 
5966
class CMatchSyntax;
6577
5967
namespace Puma {
6578
5968
 
6579
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
5969
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
6580
5970
class CTypeUnion : public CTypeRecord {
6581
 
#line 6582 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
5971
#line 5972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
5972
  friend class ::CCExprResolve;
 
5973
  friend class ::CExprResolve;
6582
5974
  friend class ::WinIfExists;
6583
5975
  friend class ::WinImportHandler;
6584
5976
  friend class ::WinMacros;
6585
 
  friend class ::CMatchSyntax;
6586
 
  friend class ::ExtGnu;
 
5977
  friend class ::WinAsm;
 
5978
  friend class ::WinDeclSpecs;
 
5979
  friend class ::WinMemberExplSpec;
 
5980
  friend class ::WinTypeKeywords;
 
5981
  friend class ::WinFriend;
6587
5982
  friend class ::ExtAC;
6588
5983
  friend class ::ExtACBuilderCoupling;
6589
5984
  friend class ::ExtACSyntaxCoupling;
6590
5985
  friend class ::ExtACTree;
6591
5986
  friend class ::ExtACKeywords;
6592
 
  friend class ::WinAsm;
6593
 
  friend class ::WinDeclSpecs;
6594
 
  friend class ::WinMemberExplSpec;
6595
 
  friend class ::WinTypeKeywords;
 
5987
  friend class ::ExtGnu;
6596
5988
  friend class ::PragmaOnceUnitState;
6597
5989
  friend class ::PragmaOnce;
6598
 
  friend class ::CCExprResolve;
6599
 
  friend class ::CExprResolve;
 
5990
  friend class ::CMatchSyntax;
6600
5991
 
6601
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
 
5992
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeUnion.h"
6602
5993
 
6603
5994
public:
6604
5995
  CTypeUnion (CRecord *);
6618
6009
 
6619
6010
#endif /* __CTypeUnion_h__ */
6620
6011
 
6621
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
6012
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
6622
6013
// This file is part of PUMA.
6623
6014
// Copyright (C) 1999-2003  The PUMA developer team.
6624
6015
//                                                                
6651
6042
class CTemplateParamInfo;
6652
6043
 
6653
6044
 
6654
 
#line 6655 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
6045
#line 6046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
6655
6046
} // closed Puma
 
6047
class CCExprResolve;
 
6048
class CExprResolve;
6656
6049
class WinIfExists;
6657
6050
class WinImportHandler;
6658
6051
class WinMacros;
6659
 
class CMatchSyntax;
6660
 
class ExtGnu;
 
6052
class WinAsm;
 
6053
class WinDeclSpecs;
 
6054
class WinMemberExplSpec;
 
6055
class WinTypeKeywords;
 
6056
class WinFriend;
6661
6057
class ExtAC;
6662
6058
class ExtACBuilderCoupling;
6663
6059
class ExtACSyntaxCoupling;
6664
6060
class ExtACTree;
6665
6061
class ExtACKeywords;
6666
 
class WinAsm;
6667
 
class WinDeclSpecs;
6668
 
class WinMemberExplSpec;
6669
 
class WinTypeKeywords;
 
6062
class ExtGnu;
6670
6063
class PragmaOnceUnitState;
6671
6064
class PragmaOnce;
6672
 
class CCExprResolve;
6673
 
class CExprResolve;
 
6065
class CMatchSyntax;
6674
6066
namespace Puma {
6675
6067
 
6676
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
6068
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
6677
6069
class CTypeTemplateParam : public CTypeInfo {
6678
 
#line 6679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
6070
#line 6071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
6071
  friend class ::CCExprResolve;
 
6072
  friend class ::CExprResolve;
6679
6073
  friend class ::WinIfExists;
6680
6074
  friend class ::WinImportHandler;
6681
6075
  friend class ::WinMacros;
6682
 
  friend class ::CMatchSyntax;
6683
 
  friend class ::ExtGnu;
 
6076
  friend class ::WinAsm;
 
6077
  friend class ::WinDeclSpecs;
 
6078
  friend class ::WinMemberExplSpec;
 
6079
  friend class ::WinTypeKeywords;
 
6080
  friend class ::WinFriend;
6684
6081
  friend class ::ExtAC;
6685
6082
  friend class ::ExtACBuilderCoupling;
6686
6083
  friend class ::ExtACSyntaxCoupling;
6687
6084
  friend class ::ExtACTree;
6688
6085
  friend class ::ExtACKeywords;
6689
 
  friend class ::WinAsm;
6690
 
  friend class ::WinDeclSpecs;
6691
 
  friend class ::WinMemberExplSpec;
6692
 
  friend class ::WinTypeKeywords;
 
6086
  friend class ::ExtGnu;
6693
6087
  friend class ::PragmaOnceUnitState;
6694
6088
  friend class ::PragmaOnce;
6695
 
  friend class ::CCExprResolve;
6696
 
  friend class ::CExprResolve;
 
6089
  friend class ::CMatchSyntax;
6697
6090
 
6698
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
 
6091
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeTemplateParam.h"
6699
6092
 
6700
6093
  CTemplateParamInfo *_TemplateParam;
6701
6094
 
6704
6097
  ~CTypeTemplateParam ();
6705
6098
 
6706
6099
  CTemplateParamInfo *TemplateParamInfo () const;
 
6100
  void TemplateParamInfo (CTemplateParamInfo *);
6707
6101
  bool isType () const;
6708
6102
  bool isNonType () const;
6709
6103
};
6721
6115
inline bool CTypeTemplateParam::isNonType () const
6722
6116
 { return (! isType ()); }
6723
6117
 
 
6118
inline void CTypeTemplateParam::TemplateParamInfo (CTemplateParamInfo *info)
 
6119
 { _TemplateParam = info; }
6724
6120
 
6725
6121
} // namespace Puma
6726
6122
 
6727
6123
#endif /* __CTypeTemplateParam_h__ */
6728
6124
 
6729
 
#line 280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
 
6125
#line 284 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTypeInfo.h"
6730
6126
namespace Puma {
6731
6127
 
6732
6128
inline CTypeInfo::CTypeInfo (CTypeInfo *info, CTypeInfo::TypeId id) :
6752
6148
 
6753
6149
inline void CTypeInfo::print (ostream& out) const 
6754
6150
 { TypeText ((char)PRINT_STD, out); }
6755
 
inline void CTypeInfo::TypeText (ostream &out, const char *t, bool abs, bool tdef) const
 
6151
inline void CTypeInfo::TypeText (ostream &out, const char *t, bool abs, bool tdef, bool elaborated_type_spec) const
6756
6152
 { char flags = (char)(abs ? PRINT_ABS : PRINT_STD);
6757
 
   if (tdef) flags |= (char)PRINT_TDN; TypeText (flags, out, t); }
 
6153
   if (tdef) flags |= (char)PRINT_TDN; 
 
6154
   if (elaborated_type_spec) flags |= (char)PRINT_ELA;
 
6155
   TypeText (flags, out, t); }
6758
6156
 
6759
6157
inline long int CTypeInfo::Dimension () const
6760
6158
 { return TypeArray () ? TypeArray ()->Dimension () : 
6940
6338
 
6941
6339
#endif /* __CTypeInfo_h__ */
6942
6340
 
6943
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
6341
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
6944
6342
namespace Puma {
6945
6343
 
6946
6344
 
6947
6345
 
6948
 
#line 6949 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
6346
#line 6347 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
6949
6347
} // closed Puma
 
6348
class CCExprResolve;
 
6349
class CExprResolve;
6950
6350
class WinIfExists;
6951
6351
class WinImportHandler;
6952
6352
class WinMacros;
6953
 
class CMatchSyntax;
6954
 
class ExtGnu;
 
6353
class WinAsm;
 
6354
class WinDeclSpecs;
 
6355
class WinMemberExplSpec;
 
6356
class WinTypeKeywords;
 
6357
class WinFriend;
6955
6358
class ExtAC;
6956
6359
class ExtACBuilderCoupling;
6957
6360
class ExtACSyntaxCoupling;
6958
6361
class ExtACTree;
6959
6362
class ExtACKeywords;
6960
 
class WinAsm;
6961
 
class WinDeclSpecs;
6962
 
class WinMemberExplSpec;
6963
 
class WinTypeKeywords;
 
6363
class ExtGnu;
6964
6364
class PragmaOnceUnitState;
6965
6365
class PragmaOnce;
6966
 
class CCExprResolve;
6967
 
class CExprResolve;
 
6366
class CMatchSyntax;
6968
6367
namespace Puma {
6969
6368
 
6970
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
6369
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
6971
6370
class CSemValue {
6972
 
#line 6973 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
6371
#line 6372 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
6372
  friend class ::CCExprResolve;
 
6373
  friend class ::CExprResolve;
6973
6374
  friend class ::WinIfExists;
6974
6375
  friend class ::WinImportHandler;
6975
6376
  friend class ::WinMacros;
6976
 
  friend class ::CMatchSyntax;
6977
 
  friend class ::ExtGnu;
 
6377
  friend class ::WinAsm;
 
6378
  friend class ::WinDeclSpecs;
 
6379
  friend class ::WinMemberExplSpec;
 
6380
  friend class ::WinTypeKeywords;
 
6381
  friend class ::WinFriend;
6978
6382
  friend class ::ExtAC;
6979
6383
  friend class ::ExtACBuilderCoupling;
6980
6384
  friend class ::ExtACSyntaxCoupling;
6981
6385
  friend class ::ExtACTree;
6982
6386
  friend class ::ExtACKeywords;
6983
 
  friend class ::WinAsm;
6984
 
  friend class ::WinDeclSpecs;
6985
 
  friend class ::WinMemberExplSpec;
6986
 
  friend class ::WinTypeKeywords;
 
6387
  friend class ::ExtGnu;
6987
6388
  friend class ::PragmaOnceUnitState;
6988
6389
  friend class ::PragmaOnce;
6989
 
  friend class ::CCExprResolve;
6990
 
  friend class ::CExprResolve;
 
6390
  friend class ::CMatchSyntax;
6991
6391
 
6992
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemValue.h"
 
6392
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemValue.h"
6993
6393
 
6994
6394
  bool value_ref;
6995
6395
  bool type_ref;
7006
6406
  void setValueRef (CExprValue *);
7007
6407
  void setType (CTypeInfo *);
7008
6408
  void setTypeRef (CTypeInfo *);
 
6409
  CExprValue* getValue() { return value; }
 
6410
  CTypeInfo* getType() { return type; }
7009
6411
};
7010
6412
 
7011
6413
inline CSemValue::CSemValue () : 
7037
6439
 
7038
6440
#endif /* __CSemValue_h__ */
7039
6441
 
7040
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
6442
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
7041
6443
// This file is part of PUMA.
7042
6444
// Copyright (C) 1999-2003  The PUMA developer team.
7043
6445
//                                                                
7060
6462
#define __CStrLiteral_h__
7061
6463
 
7062
6464
 
7063
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
6465
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
7064
6466
namespace Puma {
7065
6467
 
7066
6468
 
7067
6469
 
7068
 
#line 7069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
6470
#line 6471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
7069
6471
} // closed Puma
 
6472
class CCExprResolve;
 
6473
class CExprResolve;
7070
6474
class WinIfExists;
7071
6475
class WinImportHandler;
7072
6476
class WinMacros;
7073
 
class CMatchSyntax;
7074
 
class ExtGnu;
 
6477
class WinAsm;
 
6478
class WinDeclSpecs;
 
6479
class WinMemberExplSpec;
 
6480
class WinTypeKeywords;
 
6481
class WinFriend;
7075
6482
class ExtAC;
7076
6483
class ExtACBuilderCoupling;
7077
6484
class ExtACSyntaxCoupling;
7078
6485
class ExtACTree;
7079
6486
class ExtACKeywords;
7080
 
class WinAsm;
7081
 
class WinDeclSpecs;
7082
 
class WinMemberExplSpec;
7083
 
class WinTypeKeywords;
 
6487
class ExtGnu;
7084
6488
class PragmaOnceUnitState;
7085
6489
class PragmaOnce;
7086
 
class CCExprResolve;
7087
 
class CExprResolve;
 
6490
class CMatchSyntax;
7088
6491
namespace Puma {
7089
6492
 
7090
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
6493
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
7091
6494
class CStrLiteral : public CExprValue {
7092
 
#line 7093 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
6495
#line 6496 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
6496
  friend class ::CCExprResolve;
 
6497
  friend class ::CExprResolve;
7093
6498
  friend class ::WinIfExists;
7094
6499
  friend class ::WinImportHandler;
7095
6500
  friend class ::WinMacros;
7096
 
  friend class ::CMatchSyntax;
7097
 
  friend class ::ExtGnu;
 
6501
  friend class ::WinAsm;
 
6502
  friend class ::WinDeclSpecs;
 
6503
  friend class ::WinMemberExplSpec;
 
6504
  friend class ::WinTypeKeywords;
 
6505
  friend class ::WinFriend;
7098
6506
  friend class ::ExtAC;
7099
6507
  friend class ::ExtACBuilderCoupling;
7100
6508
  friend class ::ExtACSyntaxCoupling;
7101
6509
  friend class ::ExtACTree;
7102
6510
  friend class ::ExtACKeywords;
7103
 
  friend class ::WinAsm;
7104
 
  friend class ::WinDeclSpecs;
7105
 
  friend class ::WinMemberExplSpec;
7106
 
  friend class ::WinTypeKeywords;
 
6511
  friend class ::ExtGnu;
7107
6512
  friend class ::PragmaOnceUnitState;
7108
6513
  friend class ::PragmaOnce;
7109
 
  friend class ::CCExprResolve;
7110
 
  friend class ::CExprResolve;
 
6514
  friend class ::CMatchSyntax;
7111
6515
 
7112
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
 
6516
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStrLiteral.h"
7113
6517
 
7114
6518
  const char *_string;
7115
6519
  unsigned long _len;
7131
6535
 
7132
6536
#endif /* __CStrLiteral_h__ */
7133
6537
 
7134
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTokens.h"
 
6538
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTokens.h"
7135
6539
// This file is part of PUMA.
7136
6540
// Copyright (C) 1999-2003  The PUMA developer team.
7137
6541
//                                                                
7162
6566
  TOK_ZERO_VAL,
7163
6567
  TOK_INT_VAL,
7164
6568
  TOK_FLT_VAL,
 
6569
  TOK_STRING_VAL,
 
6570
  TOK_CHAR_VAL,
7165
6571
  TOK_COMMA,
7166
6572
  TOK_ASSIGN,
7167
6573
  TOK_QUESTION,
7344
6750
  TOK_LAST_AC = TOK_UNKNOWN_T,
7345
6751
  
7346
6752
  // further [A](C|C++) token
7347
 
  TOK_STRING_VAL,
7348
 
  TOK_CHAR_VAL,
7349
6753
  TOK_ID,
7350
6754
 
7351
6755
  // These two always have to be the ** last ** token listed here!!!
7358
6762
 
7359
6763
#endif /* __C_TOKENS__ */
7360
6764
 
7361
 
#line 167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6765
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6766
#include <string.h>
7362
6767
using namespace std;
7363
6768
 
7364
6769
namespace Puma {
7374
6779
/*                                                                           */
7375
6780
/*****************************************************************************/
7376
6781
 
7377
 
 
7378
 
#line 7379 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
7379
 
} // closed Puma
7380
 
class WinIfExists;
7381
 
class WinImportHandler;
7382
 
class WinMacros;
7383
 
class CMatchSyntax;
7384
 
class ExtGnu;
7385
 
class ExtAC;
7386
 
class ExtACBuilderCoupling;
7387
 
class ExtACSyntaxCoupling;
7388
 
class ExtACTree;
7389
 
class ExtACKeywords;
7390
 
class WinAsm;
7391
 
class WinDeclSpecs;
7392
 
class WinMemberExplSpec;
7393
 
class WinTypeKeywords;
7394
 
class PragmaOnceUnitState;
7395
 
class PragmaOnce;
7396
 
class CCExprResolve;
7397
 
class CExprResolve;
7398
 
namespace Puma {
7399
 
 
7400
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6782
/** \file
 
6783
 *  C/C++ syntax tree classes.
 
6784
 *  \see Puma::CTree */
 
6785
 
 
6786
/** \class CTree CTree.h Puma/CTree.h
 
6787
 *  Base class for all C/C++ syntax tree classes. */
 
6788
 
 
6789
#line 6790 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
6790
} // closed Puma
 
6791
class CCExprResolve;
 
6792
class CExprResolve;
 
6793
class WinIfExists;
 
6794
class WinImportHandler;
 
6795
class WinMacros;
 
6796
class WinAsm;
 
6797
class WinDeclSpecs;
 
6798
class WinMemberExplSpec;
 
6799
class WinTypeKeywords;
 
6800
class WinFriend;
 
6801
class ExtAC;
 
6802
class ExtACBuilderCoupling;
 
6803
class ExtACSyntaxCoupling;
 
6804
class ExtACTree;
 
6805
class ExtACKeywords;
 
6806
class ExtGnu;
 
6807
class PragmaOnceUnitState;
 
6808
class PragmaOnce;
 
6809
class CMatchSyntax;
 
6810
namespace Puma {
 
6811
 
 
6812
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6813
 
 
6814
#line 6815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
6815
} // closed Puma
 
6816
 
 
6817
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6818
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
6819
 
 
6820
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6821
// This file is part of PUMA.
 
6822
// Copyright (C) 1999-2003  The PUMA developer team.
 
6823
//                                                                
 
6824
// This program is free software;  you can redistribute it and/or 
 
6825
// modify it under the terms of the GNU General Public License as 
 
6826
// published by the Free Software Foundation; either version 2 of 
 
6827
// the License, or (at your option) any later version.            
 
6828
//                                                                
 
6829
// This program is distributed in the hope that it will be useful,
 
6830
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
6831
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
6832
// GNU General Public License for more details.                   
 
6833
//                                                                
 
6834
// You should have received a copy of the GNU General Public      
 
6835
// License along with this program; if not, write to the Free     
 
6836
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
6837
// MA  02111-1307  USA                                            
 
6838
 
 
6839
#ifndef __CCExprResolveH_ah__
 
6840
#define __CCExprResolveH_ah__
 
6841
 
 
6842
// This aspect inserts resolve member functions into all syntax tree classes
 
6843
// that represent expressions. As the function is virtual, an efficient
 
6844
// run-time switch over the node type is implemented.
 
6845
 
 
6846
namespace Puma {
 
6847
  class CCSemExpr;
 
6848
}
 
6849
 
 
6850
namespace Puma {
 
6851
  
 
6852
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6853
 
 
6854
  
 
6855
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6856
 
 
6857
}
 
6858
 
 
6859
 
 
6860
#line 6861 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
6861
class CExprResolve;
 
6862
class WinIfExists;
 
6863
class WinImportHandler;
 
6864
class WinMacros;
 
6865
class WinAsm;
 
6866
class WinDeclSpecs;
 
6867
class WinMemberExplSpec;
 
6868
class WinTypeKeywords;
 
6869
class WinFriend;
 
6870
class ExtAC;
 
6871
class ExtACBuilderCoupling;
 
6872
class ExtACSyntaxCoupling;
 
6873
class ExtACTree;
 
6874
class ExtACKeywords;
 
6875
class ExtGnu;
 
6876
class PragmaOnceUnitState;
 
6877
class PragmaOnce;
 
6878
class CMatchSyntax;
 
6879
 
 
6880
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6881
class CCExprResolve {
 
6882
#line 6883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
6883
 
 
6884
public:
 
6885
  static CCExprResolve *aspectof () {
 
6886
    static CCExprResolve __instance;
 
6887
    return &__instance;
 
6888
  }
 
6889
  static CCExprResolve *aspectOf () {
 
6890
    return aspectof ();
 
6891
  }
 
6892
private:
 
6893
 
 
6894
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6895
 
 
6896
#line 6897 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
6897
  friend class ::CExprResolve;
 
6898
  friend class ::WinIfExists;
 
6899
  friend class ::WinImportHandler;
 
6900
  friend class ::WinMacros;
 
6901
  friend class ::WinAsm;
 
6902
  friend class ::WinDeclSpecs;
 
6903
  friend class ::WinMemberExplSpec;
 
6904
  friend class ::WinTypeKeywords;
 
6905
  friend class ::WinFriend;
 
6906
  friend class ::ExtAC;
 
6907
  friend class ::ExtACBuilderCoupling;
 
6908
  friend class ::ExtACSyntaxCoupling;
 
6909
  friend class ::ExtACTree;
 
6910
  friend class ::ExtACKeywords;
 
6911
  friend class ::ExtGnu;
 
6912
  friend class ::PragmaOnceUnitState;
 
6913
  friend class ::PragmaOnce;
 
6914
  friend class ::CMatchSyntax;
 
6915
 
 
6916
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6917
 
 
6918
  
 
6919
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6920
 
 
6921
  
 
6922
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6923
 
 
6924
};
 
6925
#line 6926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
6926
 
 
6927
namespace AC {
 
6928
 
6929
 
 
6930
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
6931
 
 
6932
 
 
6933
#endif /* __CCExprResolveH_ah__ */
 
6934
 
 
6935
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6936
#endif
 
6937
namespace Puma {
 
6938
 
 
6939
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
6940
 
 
6941
#line 6942 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
6942
} // closed Puma
 
6943
 
 
6944
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6945
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
6946
 
 
6947
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6948
// This file is part of PUMA.
 
6949
// Copyright (C) 1999-2003  The PUMA developer team.
 
6950
//                                                                
 
6951
// This program is free software;  you can redistribute it and/or 
 
6952
// modify it under the terms of the GNU General Public License as 
 
6953
// published by the Free Software Foundation; either version 2 of 
 
6954
// the License, or (at your option) any later version.            
 
6955
//                                                                
 
6956
// This program is distributed in the hope that it will be useful,
 
6957
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
6958
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
6959
// GNU General Public License for more details.                   
 
6960
//                                                                
 
6961
// You should have received a copy of the GNU General Public      
 
6962
// License along with this program; if not, write to the Free     
 
6963
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
6964
// MA  02111-1307  USA                                            
 
6965
 
 
6966
#ifndef __CExprResolveH_ah__
 
6967
#define __CExprResolveH_ah__
 
6968
 
 
6969
// This aspect inserts resolve member functions into all syntax tree classes
 
6970
// that represent expressions. As the function is virtual, an efficient
 
6971
// run-time switch over the node type is implemented.
 
6972
 
 
6973
namespace Puma {
 
6974
  class CSemExpr;
 
6975
}
 
6976
 
 
6977
namespace Puma {
 
6978
  
 
6979
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6980
 
 
6981
  
 
6982
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
6983
 
 
6984
}
 
6985
 
 
6986
 
 
6987
#line 6988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
6988
class CCExprResolve;
 
6989
class WinIfExists;
 
6990
class WinImportHandler;
 
6991
class WinMacros;
 
6992
class WinAsm;
 
6993
class WinDeclSpecs;
 
6994
class WinMemberExplSpec;
 
6995
class WinTypeKeywords;
 
6996
class WinFriend;
 
6997
class ExtAC;
 
6998
class ExtACBuilderCoupling;
 
6999
class ExtACSyntaxCoupling;
 
7000
class ExtACTree;
 
7001
class ExtACKeywords;
 
7002
class ExtGnu;
 
7003
class PragmaOnceUnitState;
 
7004
class PragmaOnce;
 
7005
class CMatchSyntax;
 
7006
 
 
7007
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7008
class CExprResolve {
 
7009
#line 7010 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7010
 
 
7011
public:
 
7012
  static CExprResolve *aspectof () {
 
7013
    static CExprResolve __instance;
 
7014
    return &__instance;
 
7015
  }
 
7016
  static CExprResolve *aspectOf () {
 
7017
    return aspectof ();
 
7018
  }
 
7019
private:
 
7020
 
 
7021
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7022
 
 
7023
#line 7024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7024
  friend class ::CCExprResolve;
 
7025
  friend class ::WinIfExists;
 
7026
  friend class ::WinImportHandler;
 
7027
  friend class ::WinMacros;
 
7028
  friend class ::WinAsm;
 
7029
  friend class ::WinDeclSpecs;
 
7030
  friend class ::WinMemberExplSpec;
 
7031
  friend class ::WinTypeKeywords;
 
7032
  friend class ::WinFriend;
 
7033
  friend class ::ExtAC;
 
7034
  friend class ::ExtACBuilderCoupling;
 
7035
  friend class ::ExtACSyntaxCoupling;
 
7036
  friend class ::ExtACTree;
 
7037
  friend class ::ExtACKeywords;
 
7038
  friend class ::ExtGnu;
 
7039
  friend class ::PragmaOnceUnitState;
 
7040
  friend class ::PragmaOnce;
 
7041
  friend class ::CMatchSyntax;
 
7042
 
 
7043
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7044
 
 
7045
  
 
7046
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7047
 
 
7048
  
 
7049
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7050
 
 
7051
};
 
7052
#line 7053 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7053
 
 
7054
namespace AC {
 
7055
 
7056
 
 
7057
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7058
 
 
7059
 
 
7060
#endif /* __CExprResolveH_ah__ */
 
7061
 
 
7062
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7063
#endif
 
7064
namespace Puma {
 
7065
 
 
7066
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7401
7067
class CTree {
7402
 
#line 7403 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7068
#line 7069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7069
  friend class ::CCExprResolve;
 
7070
  friend class ::CExprResolve;
7403
7071
  friend class ::WinIfExists;
7404
7072
  friend class ::WinImportHandler;
7405
7073
  friend class ::WinMacros;
7406
 
  friend class ::CMatchSyntax;
7407
 
  friend class ::ExtGnu;
 
7074
  friend class ::WinAsm;
 
7075
  friend class ::WinDeclSpecs;
 
7076
  friend class ::WinMemberExplSpec;
 
7077
  friend class ::WinTypeKeywords;
 
7078
  friend class ::WinFriend;
7408
7079
  friend class ::ExtAC;
7409
7080
  friend class ::ExtACBuilderCoupling;
7410
7081
  friend class ::ExtACSyntaxCoupling;
7411
7082
  friend class ::ExtACTree;
7412
7083
  friend class ::ExtACKeywords;
7413
 
  friend class ::WinAsm;
7414
 
  friend class ::WinDeclSpecs;
7415
 
  friend class ::WinMemberExplSpec;
7416
 
  friend class ::WinTypeKeywords;
 
7084
  friend class ::ExtGnu;
7417
7085
  friend class ::PragmaOnceUnitState;
7418
7086
  friend class ::PragmaOnce;
7419
 
  friend class ::CCExprResolve;
7420
 
  friend class ::CExprResolve;
7421
 
 
7422
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7087
  friend class ::CMatchSyntax;
 
7088
 
 
7089
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7090
 
 
7091
  CTree * _parent;
7423
7092
 
7424
7093
public:
7425
7094
  /*DEBUG*/static int alloc;
7426
7095
  /*DEBUG*/static int release;
7427
7096
 
7428
7097
protected:
7429
 
  CTree *Son (CTree * const *, int, int) const;
7430
 
  int Sons (CTree * const *, int) const;
7431
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
7098
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
7099
   *  \param sons The sons array.
 
7100
   *  \param len Length of the sons array.
 
7101
   *  \param n Index of the son.
 
7102
   *  \return The n-th son or NULL. */
 
7103
  CTree *Son (CTree * const *sons, int len, int n) const;
 
7104
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
7105
   *  \param sons The sons array.
 
7106
   *  \param len Length of the sons array. */
 
7107
  int Sons (CTree * const *sons, int len) const;
 
7108
  /** Replace a son.
 
7109
   *  \param sons The sons array.
 
7110
   *  \param len Length of the sons array.
 
7111
   *  \param old_son The son to replace.
 
7112
   *  \param new_son The new son. */
 
7113
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
7114
  /** Replace a son if it equals the given son.
 
7115
   *  \param son The actual son.
 
7116
   *  \param old_son The son to replace, must match the actual son.
 
7117
   *  \param new_son The new son, overwrites the actual son. */
 
7118
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
7119
  /** Add a new son.
 
7120
   *  \param son The actual son.
 
7121
   *  \param new_son The new son, overwrites the actual son. */
 
7122
  void AddSon (CTree *&son, CTree *new_son);
 
7123
  /** Set the parent tree node.
 
7124
   *  \param parent The new parent tree node. */
 
7125
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
7126
  /** Set the parent tree node of the given tree node.
 
7127
   *  \param node The tree node.
 
7128
   *  \param parent The new parent. */
 
7129
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
7432
7130
  
7433
7131
protected:
7434
 
  CTree () { /*DEBUG*/alloc++; }
 
7132
  /** Default constructor. */
 
7133
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
7435
7134
 
7436
7135
public:
 
7136
  /** Destructor. */
7437
7137
  virtual ~CTree () { /*DEBUG*/release++; }
 
7138
  /** Get the number of sons. */
7438
7139
  virtual int Sons () const = 0;
 
7140
  /** Get the n-th son.
 
7141
   *  \param n The index of the son.
 
7142
   *  \return The n-th son or NULL. */
7439
7143
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
7144
  /** Get the node name (node identifier). */
7440
7145
  virtual const char *NodeName () const = 0;
 
7146
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
7147
   *  \return The token or NULL. */
7441
7148
  virtual Token *token () const;
 
7149
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
7150
   *  \return The token or NULL. */
7442
7151
  virtual Token *end_token () const;
 
7152
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
7153
   *  \return The token node or NULL. */
7443
7154
  virtual CT_Token *token_node () const;
 
7155
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
7156
   *  \return The token node or NULL. */
7444
7157
  virtual CT_Token *end_token_node () const;
7445
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
7158
  /** Replace a son.
 
7159
   *  \param old_son The son to replace.
 
7160
   *  \param new_son The son with which to replace. */
 
7161
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
7162
  /** Get the parent node.
 
7163
   *  \return The parent node or NULL. */
 
7164
  virtual CTree *Parent () const { return (CTree*)_parent; }
7446
7165
 
7447
7166
public: // semantic information
 
7167
  /** Get the semantic type of the node.
 
7168
   *  \return The type object or NULL. */
7448
7169
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
7170
  /** Get the calculated value of the expression.
 
7171
   *  \return The value object or NULL. */
7449
7172
  virtual CExprValue *Value () const { return (CExprValue*)0; }
7450
7173
  
 
7174
  /** Get the semantic scope of the node.
 
7175
   *  \return The scope object or NULL. */
 
7176
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
7177
  /** Get the semantic value of the node.
 
7178
   *  \return The value object or NULL. */
7451
7179
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
7180
  /** Get the semantic object of the node.
 
7181
   *  \return The semantic object or NULL. */
7452
7182
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
7453
7183
  
7454
7184
public: // node classification function
 
7185
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
7186
   *  \return The CT_SimpleName node or NULL. */
7455
7187
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
7188
  /** Get a pointer to CT_String if the current node represents a string.
 
7189
   *  \return The CT_String node or NULL. */
 
7190
  virtual CT_String *IsString () { return 0; }
 
7191
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
7192
   *  \return The CT_Declarator pointer or NULL. */
7456
7193
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
7194
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
7195
   *  \return The CT_Statement pointer or NULL. */
 
7196
  virtual CT_Statement *IsStatement () { return 0; }
 
7197
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
7198
   *  \return The CT_Expression pointer or NULL. */
 
7199
  virtual CT_Expression *IsExpression () { return 0; }
 
7200
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
7201
   *  \return The CT_Decl pointer or NULL. */
 
7202
  virtual CT_Decl *IsDeclaration () { return 0; }
 
7203
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
7204
   *  \return The CT_Call pointer or NULL. */
 
7205
  virtual CT_Call *IsCall () { return 0; }
7457
7206
   private:
7458
7207
  typedef CTree CCExprResolveCTree;
7459
7208
 
7460
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
7209
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
7461
7210
 public :
7462
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
7211
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
7463
7212
  typedef CTree CExprResolveCTree;
7464
7213
 
7465
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
7214
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
7466
7215
 public :
7467
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
7468
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7216
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
7217
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7469
7218
};
7470
7219
 
 
7220
/** \class CT_Error CTree.h Puma/CTree.h
 
7221
 *  Error tree node that is inserted into the tree for syntactic constructs
 
7222
 *  that could not be parsed. */
7471
7223
 
7472
 
#line 7473 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7224
#line 7225 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
7473
7225
} // closed Puma
 
7226
class CCExprResolve;
 
7227
class CExprResolve;
7474
7228
class WinIfExists;
7475
7229
class WinImportHandler;
7476
7230
class WinMacros;
7477
 
class CMatchSyntax;
7478
 
class ExtGnu;
 
7231
class WinAsm;
 
7232
class WinDeclSpecs;
 
7233
class WinMemberExplSpec;
 
7234
class WinTypeKeywords;
 
7235
class WinFriend;
7479
7236
class ExtAC;
7480
7237
class ExtACBuilderCoupling;
7481
7238
class ExtACSyntaxCoupling;
7482
7239
class ExtACTree;
7483
7240
class ExtACKeywords;
7484
 
class WinAsm;
7485
 
class WinDeclSpecs;
7486
 
class WinMemberExplSpec;
7487
 
class WinTypeKeywords;
 
7241
class ExtGnu;
7488
7242
class PragmaOnceUnitState;
7489
7243
class PragmaOnce;
7490
 
class CCExprResolve;
7491
 
class CExprResolve;
 
7244
class CMatchSyntax;
7492
7245
namespace Puma {
7493
7246
 
7494
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7247
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7495
7248
class CT_Error : public CTree {
7496
 
#line 7497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7249
#line 7250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7250
  friend class ::CCExprResolve;
 
7251
  friend class ::CExprResolve;
7497
7252
  friend class ::WinIfExists;
7498
7253
  friend class ::WinImportHandler;
7499
7254
  friend class ::WinMacros;
7500
 
  friend class ::CMatchSyntax;
7501
 
  friend class ::ExtGnu;
 
7255
  friend class ::WinAsm;
 
7256
  friend class ::WinDeclSpecs;
 
7257
  friend class ::WinMemberExplSpec;
 
7258
  friend class ::WinTypeKeywords;
 
7259
  friend class ::WinFriend;
7502
7260
  friend class ::ExtAC;
7503
7261
  friend class ::ExtACBuilderCoupling;
7504
7262
  friend class ::ExtACSyntaxCoupling;
7505
7263
  friend class ::ExtACTree;
7506
7264
  friend class ::ExtACKeywords;
7507
 
  friend class ::WinAsm;
7508
 
  friend class ::WinDeclSpecs;
7509
 
  friend class ::WinMemberExplSpec;
7510
 
  friend class ::WinTypeKeywords;
 
7265
  friend class ::ExtGnu;
7511
7266
  friend class ::PragmaOnceUnitState;
7512
7267
  friend class ::PragmaOnce;
7513
 
  friend class ::CCExprResolve;
7514
 
  friend class ::CExprResolve;
 
7268
  friend class ::CMatchSyntax;
7515
7269
 
7516
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7270
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7517
7271
 
7518
7272
public:
 
7273
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7519
7274
  static const char *NodeId ();
 
7275
  /** Get the name of the node. Can be compared with NodeId(). */
7520
7276
  const char *NodeName () const { return NodeId (); }
 
7277
  /** Get the number of sons. */
7521
7278
  int Sons () const { return 0; }
7522
7279
};
7523
7280
 
 
7281
/** \class CT_Token CTree.h Puma/CTree.h
 
7282
 *  Tree node representing a single token in the source code. */
7524
7283
 
7525
 
#line 7526 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7284
#line 7285 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
7526
7285
} // closed Puma
 
7286
class CCExprResolve;
 
7287
class CExprResolve;
7527
7288
class WinIfExists;
7528
7289
class WinImportHandler;
7529
7290
class WinMacros;
7530
 
class CMatchSyntax;
7531
 
class ExtGnu;
 
7291
class WinAsm;
 
7292
class WinDeclSpecs;
 
7293
class WinMemberExplSpec;
 
7294
class WinTypeKeywords;
 
7295
class WinFriend;
7532
7296
class ExtAC;
7533
7297
class ExtACBuilderCoupling;
7534
7298
class ExtACSyntaxCoupling;
7535
7299
class ExtACTree;
7536
7300
class ExtACKeywords;
7537
 
class WinAsm;
7538
 
class WinDeclSpecs;
7539
 
class WinMemberExplSpec;
7540
 
class WinTypeKeywords;
 
7301
class ExtGnu;
7541
7302
class PragmaOnceUnitState;
7542
7303
class PragmaOnce;
7543
 
class CCExprResolve;
7544
 
class CExprResolve;
 
7304
class CMatchSyntax;
7545
7305
namespace Puma {
7546
7306
 
7547
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7307
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7548
7308
class CT_Token : public CTree {
7549
 
#line 7550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7309
#line 7310 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7310
  friend class ::CCExprResolve;
 
7311
  friend class ::CExprResolve;
7550
7312
  friend class ::WinIfExists;
7551
7313
  friend class ::WinImportHandler;
7552
7314
  friend class ::WinMacros;
7553
 
  friend class ::CMatchSyntax;
7554
 
  friend class ::ExtGnu;
 
7315
  friend class ::WinAsm;
 
7316
  friend class ::WinDeclSpecs;
 
7317
  friend class ::WinMemberExplSpec;
 
7318
  friend class ::WinTypeKeywords;
 
7319
  friend class ::WinFriend;
7555
7320
  friend class ::ExtAC;
7556
7321
  friend class ::ExtACBuilderCoupling;
7557
7322
  friend class ::ExtACSyntaxCoupling;
7558
7323
  friend class ::ExtACTree;
7559
7324
  friend class ::ExtACKeywords;
7560
 
  friend class ::WinAsm;
7561
 
  friend class ::WinDeclSpecs;
7562
 
  friend class ::WinMemberExplSpec;
7563
 
  friend class ::WinTypeKeywords;
 
7325
  friend class ::ExtGnu;
7564
7326
  friend class ::PragmaOnceUnitState;
7565
7327
  friend class ::PragmaOnce;
7566
 
  friend class ::CCExprResolve;
7567
 
  friend class ::CExprResolve;
 
7328
  friend class ::CMatchSyntax;
7568
7329
 
7569
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7330
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7570
7331
 
7571
7332
  Token *_token;
7572
7333
  unsigned long int _number;
7573
7334
  
7574
7335
public:
7575
 
  CT_Token (Token *t, unsigned long int n = 0) : 
7576
 
    _token (t), _number (n) {}
 
7336
  /** Constructor. 
 
7337
   *  \param token The represented token.
 
7338
   *  \param number The token number (a consecutive number). */
 
7339
  CT_Token (Token *token, unsigned long int number = 0) : 
 
7340
    _token (token), _number (number) {}
 
7341
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7577
7342
  static const char *NodeId ();
 
7343
  /** Get the name of the node. Can be compared with NodeId(). */
7578
7344
  const char *NodeName () const { return NodeId (); }
 
7345
  /** Get the number of sons. */
7579
7346
  int Sons () const { return 0; }
 
7347
  /** Get the represented token. */
7580
7348
  Token *token () const { return _token; }
 
7349
  /** Get the represented token. */
7581
7350
  Token *end_token () const { return _token; }
 
7351
  /** Get this. */
7582
7352
  CT_Token *token_node () const { return (CT_Token*)this; }
 
7353
  /** Get this. */
7583
7354
  CT_Token *end_token_node () const { return (CT_Token*)this; }
7584
 
  void Number (unsigned long int n) { _number = n; }
 
7355
  /** Set the token number. 
 
7356
   *  \param number The token number. */ 
 
7357
  void Number (unsigned long int number) { _number = number; }
 
7358
  /** Get the token number. Can be used to indentify this token. */
7585
7359
  unsigned long int Number () const { return _number; }
7586
 
  // special new / delete with reusing memory
 
7360
  
 
7361
public:
 
7362
  /** Own new operator reusing memory. */
7587
7363
  void *operator new (size_t);
7588
 
  void  operator delete (void *);
 
7364
  /** Own delete operator. */
 
7365
  void operator delete (void *);
7589
7366
};
7590
7367
 
7591
7368
/*****************************************************************************/
7594
7371
/*                                                                           */
7595
7372
/*****************************************************************************/
7596
7373
 
 
7374
/** \class CT_List CTree.h Puma/CTree.h
 
7375
 *  Base class for tree nodes representing lists. */
7597
7376
 
7598
 
#line 7599 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7377
#line 7378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
7599
7378
} // closed Puma
 
7379
class CCExprResolve;
 
7380
class CExprResolve;
7600
7381
class WinIfExists;
7601
7382
class WinImportHandler;
7602
7383
class WinMacros;
7603
 
class CMatchSyntax;
7604
 
class ExtGnu;
 
7384
class WinAsm;
 
7385
class WinDeclSpecs;
 
7386
class WinMemberExplSpec;
 
7387
class WinTypeKeywords;
 
7388
class WinFriend;
7605
7389
class ExtAC;
7606
7390
class ExtACBuilderCoupling;
7607
7391
class ExtACSyntaxCoupling;
7608
7392
class ExtACTree;
7609
7393
class ExtACKeywords;
7610
 
class WinAsm;
7611
 
class WinDeclSpecs;
7612
 
class WinMemberExplSpec;
7613
 
class WinTypeKeywords;
 
7394
class ExtGnu;
7614
7395
class PragmaOnceUnitState;
7615
7396
class PragmaOnce;
7616
 
class CCExprResolve;
7617
 
class CExprResolve;
 
7397
class CMatchSyntax;
7618
7398
namespace Puma {
7619
7399
 
7620
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7400
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7621
7401
class CT_List : public CTree {
7622
 
#line 7623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7402
#line 7403 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7403
  friend class ::CCExprResolve;
 
7404
  friend class ::CExprResolve;
7623
7405
  friend class ::WinIfExists;
7624
7406
  friend class ::WinImportHandler;
7625
7407
  friend class ::WinMacros;
7626
 
  friend class ::CMatchSyntax;
7627
 
  friend class ::ExtGnu;
 
7408
  friend class ::WinAsm;
 
7409
  friend class ::WinDeclSpecs;
 
7410
  friend class ::WinMemberExplSpec;
 
7411
  friend class ::WinTypeKeywords;
 
7412
  friend class ::WinFriend;
7628
7413
  friend class ::ExtAC;
7629
7414
  friend class ::ExtACBuilderCoupling;
7630
7415
  friend class ::ExtACSyntaxCoupling;
7631
7416
  friend class ::ExtACTree;
7632
7417
  friend class ::ExtACKeywords;
7633
 
  friend class ::WinAsm;
7634
 
  friend class ::WinDeclSpecs;
7635
 
  friend class ::WinMemberExplSpec;
7636
 
  friend class ::WinTypeKeywords;
 
7418
  friend class ::ExtGnu;
7637
7419
  friend class ::PragmaOnceUnitState;
7638
7420
  friend class ::PragmaOnce;
7639
 
  friend class ::CCExprResolve;
7640
 
  friend class ::CExprResolve;
 
7421
  friend class ::CMatchSyntax;
7641
7422
 
7642
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7423
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7643
7424
 
7644
7425
  Array<CTree*> _sons;
7645
7426
  int _properties;
7646
7427
 
7647
7428
protected:
 
7429
  /** Constructor.
 
7430
   *  \param size The initial list size.
 
7431
   *  \param incr The initial increment count. 
 
7432
   *  \param props The list properties (bit array). */
7648
7433
  CT_List(int size = 5, int incr = 5, int props = 0) : 
7649
7434
    _sons (size, incr), _properties (props) {}
7650
7435
 
7651
7436
public:
 
7437
  /** List properties. */
7652
7438
  enum {
7653
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
7654
 
    CLOSE = 2,
7655
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
7656
 
    SEPARATORS = 4,   // the list has separators like ','
7657
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
7658
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
7659
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
7660
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
7439
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
7440
    CLOSE = 2,        /** List has an end token */
 
7441
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
7442
    SEPARATORS = 4,   /** List has separators, like ',' */
 
7443
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
7444
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
7445
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
7446
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
7661
7447
  };
7662
7448
 
 
7449
  /** Get the number of list entries. */
7663
7450
  int Entries () const;
7664
 
  CTree *Entry (int no) const;
 
7451
  /** Get the n-th list entry.
 
7452
   *  \param n The index of the entry. 
 
7453
   *  \return The list entry or NULL. */
 
7454
  CTree *Entry (int n) const;
 
7455
  /** Get the number of sons. */
7665
7456
  int Sons () const { return _sons.length (); }
 
7457
  /** Get the n-th son.
 
7458
   *  \param n The index of the son. 
 
7459
   *  \return The n-th son or NULL. */
7666
7460
  CTree *Son (int n) const { return _sons.lookup (n); }
 
7461
  /** Get the list properties. */
7667
7462
  int GetProperties () const { return _properties; }
 
7463
  /** Add a list property.
 
7464
   *  \param p The property to add. */
7668
7465
  void AddProperties (int p) { _properties |= p; }
7669
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
7670
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
7671
 
  void InsertSon (CTree *, CTree *);  // before given son
7672
 
  void ReplaceSon (CTree *, CTree *);
7673
 
  void RemoveSon (CTree *);
 
7466
  /** Add a son.
 
7467
   *  \param s The son to add. */
 
7468
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
7469
  /** Prepend a son.
 
7470
   *  \param s The son to prepend. */
 
7471
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
7472
  /** Insert a son before another son.
 
7473
   *  \param before The son to insert the new son before.
 
7474
   *  \param son The son to insert. */
 
7475
  void InsertSon (CTree *before, CTree *son); 
 
7476
  /** Replace a son.
 
7477
   *  \param old_son The son to replace.
 
7478
   *  \param new_son The new son. */
 
7479
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
7480
  /** Remove a son.
 
7481
   *  \param son The son to remove. */
 
7482
  void RemoveSon (CTree *son);
 
7483
  /** Insert a son at the given index. 
 
7484
   *  \param idx The index at which to insert.
 
7485
   *  \param s The son to insert. */
7674
7486
  void InsertSon (int idx, CTree *s)
7675
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
7487
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
7488
  /** Replace the son at the given index.
 
7489
   *  \param idx The index of the son to replace.
 
7490
   *  \param s The new son. */
7676
7491
  void ReplaceSon (int idx, CTree *s) 
7677
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
7492
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
7493
  /** Remove the son at the given index. 
 
7494
   *  \param idx The index of the son to remove. */
7678
7495
  void RemoveSon (int idx) 
7679
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
7496
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
7680
7497
};
7681
7498
 
 
7499
/** \class CT_ExprList CTree.h Puma/CTree.h
 
7500
 *  Tree node representing an expression list. */
7682
7501
 
7683
 
#line 7684 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7502
#line 7503 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
7684
7503
} // closed Puma
 
7504
class CCExprResolve;
 
7505
class CExprResolve;
7685
7506
class WinIfExists;
7686
7507
class WinImportHandler;
7687
7508
class WinMacros;
7688
 
class CMatchSyntax;
7689
 
class ExtGnu;
 
7509
class WinAsm;
 
7510
class WinDeclSpecs;
 
7511
class WinMemberExplSpec;
 
7512
class WinTypeKeywords;
 
7513
class WinFriend;
7690
7514
class ExtAC;
7691
7515
class ExtACBuilderCoupling;
7692
7516
class ExtACSyntaxCoupling;
7693
7517
class ExtACTree;
7694
7518
class ExtACKeywords;
7695
 
class WinAsm;
7696
 
class WinDeclSpecs;
7697
 
class WinMemberExplSpec;
7698
 
class WinTypeKeywords;
 
7519
class ExtGnu;
7699
7520
class PragmaOnceUnitState;
7700
7521
class PragmaOnce;
7701
 
class CCExprResolve;
7702
 
class CExprResolve;
 
7522
class CMatchSyntax;
7703
7523
namespace Puma {
7704
7524
 
7705
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7525
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7706
7526
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
7707
 
#line 7708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7527
#line 7528 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7528
  friend class ::CCExprResolve;
 
7529
  friend class ::CExprResolve;
7708
7530
  friend class ::WinIfExists;
7709
7531
  friend class ::WinImportHandler;
7710
7532
  friend class ::WinMacros;
7711
 
  friend class ::CMatchSyntax;
7712
 
  friend class ::ExtGnu;
 
7533
  friend class ::WinAsm;
 
7534
  friend class ::WinDeclSpecs;
 
7535
  friend class ::WinMemberExplSpec;
 
7536
  friend class ::WinTypeKeywords;
 
7537
  friend class ::WinFriend;
7713
7538
  friend class ::ExtAC;
7714
7539
  friend class ::ExtACBuilderCoupling;
7715
7540
  friend class ::ExtACSyntaxCoupling;
7716
7541
  friend class ::ExtACTree;
7717
7542
  friend class ::ExtACKeywords;
7718
 
  friend class ::WinAsm;
7719
 
  friend class ::WinDeclSpecs;
7720
 
  friend class ::WinMemberExplSpec;
7721
 
  friend class ::WinTypeKeywords;
 
7543
  friend class ::ExtGnu;
7722
7544
  friend class ::PragmaOnceUnitState;
7723
7545
  friend class ::PragmaOnce;
7724
 
  friend class ::CCExprResolve;
7725
 
  friend class ::CExprResolve;
 
7546
  friend class ::CMatchSyntax;
7726
7547
 
7727
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7548
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7728
7549
 
7729
7550
public:
 
7551
  /** Constructor. */
7730
7552
  CT_ExprList () { AddProperties (SEPARATORS); }
 
7553
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7731
7554
  static const char *NodeId ();
 
7555
  /** Get the name of the node. Can be compared with NodeId(). */
7732
7556
  const char *NodeName () const { return NodeId (); }
7733
7557
 
 
7558
  /** Get the type of the last expression in the expression list.
 
7559
   *  \return The type or NULL. */
7734
7560
  CTypeInfo *Type () const { return type; }
 
7561
  /** Get the value of the last expression in the expression list.
 
7562
   *  \return The value of NULL. */
7735
7563
  CExprValue *Value () const { return value; }
 
7564
  /** Get the semantic value of the node. */
7736
7565
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
7566
  /** Get the semantic object of the node. */
7737
7567
  CSemObject *SemObject () const { return (CSemObject*)this; }
7738
7568
};
7739
7569
 
 
7570
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
7571
 *  Tree node representing a list of declarators. */
7740
7572
 
7741
 
#line 7742 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7573
#line 7574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
7742
7574
} // closed Puma
 
7575
class CCExprResolve;
 
7576
class CExprResolve;
7743
7577
class WinIfExists;
7744
7578
class WinImportHandler;
7745
7579
class WinMacros;
7746
 
class CMatchSyntax;
7747
 
class ExtGnu;
 
7580
class WinAsm;
 
7581
class WinDeclSpecs;
 
7582
class WinMemberExplSpec;
 
7583
class WinTypeKeywords;
 
7584
class WinFriend;
7748
7585
class ExtAC;
7749
7586
class ExtACBuilderCoupling;
7750
7587
class ExtACSyntaxCoupling;
7751
7588
class ExtACTree;
7752
7589
class ExtACKeywords;
7753
 
class WinAsm;
7754
 
class WinDeclSpecs;
7755
 
class WinMemberExplSpec;
7756
 
class WinTypeKeywords;
 
7590
class ExtGnu;
7757
7591
class PragmaOnceUnitState;
7758
7592
class PragmaOnce;
7759
 
class CCExprResolve;
7760
 
class CExprResolve;
 
7593
class CMatchSyntax;
7761
7594
namespace Puma {
7762
7595
 
7763
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7596
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7764
7597
class CT_DeclaratorList : public CT_List {
7765
 
#line 7766 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7598
#line 7599 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7599
  friend class ::CCExprResolve;
 
7600
  friend class ::CExprResolve;
7766
7601
  friend class ::WinIfExists;
7767
7602
  friend class ::WinImportHandler;
7768
7603
  friend class ::WinMacros;
7769
 
  friend class ::CMatchSyntax;
7770
 
  friend class ::ExtGnu;
 
7604
  friend class ::WinAsm;
 
7605
  friend class ::WinDeclSpecs;
 
7606
  friend class ::WinMemberExplSpec;
 
7607
  friend class ::WinTypeKeywords;
 
7608
  friend class ::WinFriend;
7771
7609
  friend class ::ExtAC;
7772
7610
  friend class ::ExtACBuilderCoupling;
7773
7611
  friend class ::ExtACSyntaxCoupling;
7774
7612
  friend class ::ExtACTree;
7775
7613
  friend class ::ExtACKeywords;
7776
 
  friend class ::WinAsm;
7777
 
  friend class ::WinDeclSpecs;
7778
 
  friend class ::WinMemberExplSpec;
7779
 
  friend class ::WinTypeKeywords;
 
7614
  friend class ::ExtGnu;
7780
7615
  friend class ::PragmaOnceUnitState;
7781
7616
  friend class ::PragmaOnce;
7782
 
  friend class ::CCExprResolve;
7783
 
  friend class ::CExprResolve;
 
7617
  friend class ::CMatchSyntax;
7784
7618
 
7785
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7619
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7786
7620
 
7787
7621
public:
 
7622
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7788
7623
  static const char *NodeId ();
 
7624
  /** Get the name of the node. Can be compared with NodeId(). */
7789
7625
  const char *NodeName () const { return NodeId (); }
7790
7626
};
7791
7627
 
 
7628
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
7629
 *  Tree node representing a list of enumerator constants. */
7792
7630
 
7793
 
#line 7794 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7631
#line 7632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
7794
7632
} // closed Puma
 
7633
class CCExprResolve;
 
7634
class CExprResolve;
7795
7635
class WinIfExists;
7796
7636
class WinImportHandler;
7797
7637
class WinMacros;
7798
 
class CMatchSyntax;
7799
 
class ExtGnu;
 
7638
class WinAsm;
 
7639
class WinDeclSpecs;
 
7640
class WinMemberExplSpec;
 
7641
class WinTypeKeywords;
 
7642
class WinFriend;
7800
7643
class ExtAC;
7801
7644
class ExtACBuilderCoupling;
7802
7645
class ExtACSyntaxCoupling;
7803
7646
class ExtACTree;
7804
7647
class ExtACKeywords;
7805
 
class WinAsm;
7806
 
class WinDeclSpecs;
7807
 
class WinMemberExplSpec;
7808
 
class WinTypeKeywords;
 
7648
class ExtGnu;
7809
7649
class PragmaOnceUnitState;
7810
7650
class PragmaOnce;
7811
 
class CCExprResolve;
7812
 
class CExprResolve;
 
7651
class CMatchSyntax;
7813
7652
namespace Puma {
7814
7653
 
7815
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7654
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7816
7655
class CT_EnumeratorList : public CT_List {
7817
 
#line 7818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7656
#line 7657 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7657
  friend class ::CCExprResolve;
 
7658
  friend class ::CExprResolve;
7818
7659
  friend class ::WinIfExists;
7819
7660
  friend class ::WinImportHandler;
7820
7661
  friend class ::WinMacros;
7821
 
  friend class ::CMatchSyntax;
7822
 
  friend class ::ExtGnu;
 
7662
  friend class ::WinAsm;
 
7663
  friend class ::WinDeclSpecs;
 
7664
  friend class ::WinMemberExplSpec;
 
7665
  friend class ::WinTypeKeywords;
 
7666
  friend class ::WinFriend;
7823
7667
  friend class ::ExtAC;
7824
7668
  friend class ::ExtACBuilderCoupling;
7825
7669
  friend class ::ExtACSyntaxCoupling;
7826
7670
  friend class ::ExtACTree;
7827
7671
  friend class ::ExtACKeywords;
7828
 
  friend class ::WinAsm;
7829
 
  friend class ::WinDeclSpecs;
7830
 
  friend class ::WinMemberExplSpec;
7831
 
  friend class ::WinTypeKeywords;
 
7672
  friend class ::ExtGnu;
7832
7673
  friend class ::PragmaOnceUnitState;
7833
7674
  friend class ::PragmaOnce;
7834
 
  friend class ::CCExprResolve;
7835
 
  friend class ::CExprResolve;
 
7675
  friend class ::CMatchSyntax;
7836
7676
 
7837
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7677
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7838
7678
 
7839
7679
public:
 
7680
  /** Constructor. */
7840
7681
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
7682
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7841
7683
  static const char *NodeId ();
 
7684
  /** Get the name of the node. Can be compared with NodeId(). */
7842
7685
  const char *NodeName () const { return NodeId (); }
7843
7686
};
7844
7687
   
 
7688
/** \class CT_DeclList CTree.h Puma/CTree.h
 
7689
 *  Tree node representing a list of declarations. */
7845
7690
 
7846
 
#line 7847 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7691
#line 7692 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
7847
7692
} // closed Puma
 
7693
class CCExprResolve;
 
7694
class CExprResolve;
7848
7695
class WinIfExists;
7849
7696
class WinImportHandler;
7850
7697
class WinMacros;
7851
 
class CMatchSyntax;
7852
 
class ExtGnu;
 
7698
class WinAsm;
 
7699
class WinDeclSpecs;
 
7700
class WinMemberExplSpec;
 
7701
class WinTypeKeywords;
 
7702
class WinFriend;
7853
7703
class ExtAC;
7854
7704
class ExtACBuilderCoupling;
7855
7705
class ExtACSyntaxCoupling;
7856
7706
class ExtACTree;
7857
7707
class ExtACKeywords;
7858
 
class WinAsm;
7859
 
class WinDeclSpecs;
7860
 
class WinMemberExplSpec;
7861
 
class WinTypeKeywords;
 
7708
class ExtGnu;
7862
7709
class PragmaOnceUnitState;
7863
7710
class PragmaOnce;
7864
 
class CCExprResolve;
7865
 
class CExprResolve;
 
7711
class CMatchSyntax;
7866
7712
namespace Puma {
7867
7713
 
7868
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7714
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7869
7715
class CT_DeclList : public CT_List {
7870
 
#line 7871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7716
#line 7717 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7717
  friend class ::CCExprResolve;
 
7718
  friend class ::CExprResolve;
7871
7719
  friend class ::WinIfExists;
7872
7720
  friend class ::WinImportHandler;
7873
7721
  friend class ::WinMacros;
7874
 
  friend class ::CMatchSyntax;
7875
 
  friend class ::ExtGnu;
 
7722
  friend class ::WinAsm;
 
7723
  friend class ::WinDeclSpecs;
 
7724
  friend class ::WinMemberExplSpec;
 
7725
  friend class ::WinTypeKeywords;
 
7726
  friend class ::WinFriend;
7876
7727
  friend class ::ExtAC;
7877
7728
  friend class ::ExtACBuilderCoupling;
7878
7729
  friend class ::ExtACSyntaxCoupling;
7879
7730
  friend class ::ExtACTree;
7880
7731
  friend class ::ExtACKeywords;
7881
 
  friend class ::WinAsm;
7882
 
  friend class ::WinDeclSpecs;
7883
 
  friend class ::WinMemberExplSpec;
7884
 
  friend class ::WinTypeKeywords;
 
7732
  friend class ::ExtGnu;
7885
7733
  friend class ::PragmaOnceUnitState;
7886
7734
  friend class ::PragmaOnce;
7887
 
  friend class ::CCExprResolve;
7888
 
  friend class ::CExprResolve;
 
7735
  friend class ::CMatchSyntax;
7889
7736
 
7890
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7737
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7891
7738
 
7892
7739
public:
 
7740
  /** Constructor. 
 
7741
   *  \param size The initial size of the list.
 
7742
   *  \param incr The initial increment count of the list. */
7893
7743
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
7744
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7894
7745
  static const char *NodeId ();
 
7746
  /** Get the name of the node. Can be compared with NodeId(). */
7895
7747
  const char *NodeName () const { return NodeId (); }
 
7748
  /** Set the linkage specifiers to each declaration in the list.
 
7749
   *  \param l The linkage specifiers node. */
7896
7750
  void Linkage (CT_LinkageSpec *l);
7897
7751
};
7898
7752
 
 
7753
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
7754
 *  Tree node representing a sequence of declaration specifiers. */
7899
7755
 
7900
 
#line 7901 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7756
#line 7757 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
7901
7757
} // closed Puma
 
7758
class CCExprResolve;
 
7759
class CExprResolve;
7902
7760
class WinIfExists;
7903
7761
class WinImportHandler;
7904
7762
class WinMacros;
7905
 
class CMatchSyntax;
7906
 
class ExtGnu;
 
7763
class WinAsm;
 
7764
class WinDeclSpecs;
 
7765
class WinMemberExplSpec;
 
7766
class WinTypeKeywords;
 
7767
class WinFriend;
7907
7768
class ExtAC;
7908
7769
class ExtACBuilderCoupling;
7909
7770
class ExtACSyntaxCoupling;
7910
7771
class ExtACTree;
7911
7772
class ExtACKeywords;
7912
 
class WinAsm;
7913
 
class WinDeclSpecs;
7914
 
class WinMemberExplSpec;
7915
 
class WinTypeKeywords;
 
7773
class ExtGnu;
7916
7774
class PragmaOnceUnitState;
7917
7775
class PragmaOnce;
7918
 
class CCExprResolve;
7919
 
class CExprResolve;
 
7776
class CMatchSyntax;
7920
7777
namespace Puma {
7921
7778
 
7922
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7779
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7923
7780
class CT_DeclSpecSeq : public CT_List {
7924
 
#line 7925 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7781
#line 7782 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7782
  friend class ::CCExprResolve;
 
7783
  friend class ::CExprResolve;
7925
7784
  friend class ::WinIfExists;
7926
7785
  friend class ::WinImportHandler;
7927
7786
  friend class ::WinMacros;
7928
 
  friend class ::CMatchSyntax;
7929
 
  friend class ::ExtGnu;
 
7787
  friend class ::WinAsm;
 
7788
  friend class ::WinDeclSpecs;
 
7789
  friend class ::WinMemberExplSpec;
 
7790
  friend class ::WinTypeKeywords;
 
7791
  friend class ::WinFriend;
7930
7792
  friend class ::ExtAC;
7931
7793
  friend class ::ExtACBuilderCoupling;
7932
7794
  friend class ::ExtACSyntaxCoupling;
7933
7795
  friend class ::ExtACTree;
7934
7796
  friend class ::ExtACKeywords;
7935
 
  friend class ::WinAsm;
7936
 
  friend class ::WinDeclSpecs;
7937
 
  friend class ::WinMemberExplSpec;
7938
 
  friend class ::WinTypeKeywords;
 
7797
  friend class ::ExtGnu;
7939
7798
  friend class ::PragmaOnceUnitState;
7940
7799
  friend class ::PragmaOnce;
7941
 
  friend class ::CCExprResolve;
7942
 
  friend class ::CExprResolve;
 
7800
  friend class ::CMatchSyntax;
7943
7801
 
7944
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7802
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7945
7803
 
7946
7804
public:
 
7805
  /** Get the identifier for this node type. Can be compared with NodeName(). */
7947
7806
  static const char *NodeId ();
 
7807
  /** Get the name of the node. Can be compared with NodeId(). */
7948
7808
  const char *NodeName () const { return NodeId (); }
7949
7809
};
7950
7810
 
 
7811
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
7812
 *  Tree node representing a compound statement. */
7951
7813
 
7952
 
#line 7953 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7814
#line 7815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
7953
7815
} // closed Puma
 
7816
class CCExprResolve;
 
7817
class CExprResolve;
7954
7818
class WinIfExists;
7955
7819
class WinImportHandler;
7956
7820
class WinMacros;
7957
 
class CMatchSyntax;
7958
 
class ExtGnu;
 
7821
class WinAsm;
 
7822
class WinDeclSpecs;
 
7823
class WinMemberExplSpec;
 
7824
class WinTypeKeywords;
 
7825
class WinFriend;
7959
7826
class ExtAC;
7960
7827
class ExtACBuilderCoupling;
7961
7828
class ExtACSyntaxCoupling;
7962
7829
class ExtACTree;
7963
7830
class ExtACKeywords;
7964
 
class WinAsm;
7965
 
class WinDeclSpecs;
7966
 
class WinMemberExplSpec;
7967
 
class WinTypeKeywords;
 
7831
class ExtGnu;
7968
7832
class PragmaOnceUnitState;
7969
7833
class PragmaOnce;
7970
 
class CCExprResolve;
7971
 
class CExprResolve;
 
7834
class CMatchSyntax;
7972
7835
namespace Puma {
7973
7836
 
7974
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7837
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7975
7838
class CT_CmpdStmt : public CT_List, public CSemScope {
7976
 
#line 7977 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7839
#line 7840 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7840
  friend class ::CCExprResolve;
 
7841
  friend class ::CExprResolve;
7977
7842
  friend class ::WinIfExists;
7978
7843
  friend class ::WinImportHandler;
7979
7844
  friend class ::WinMacros;
7980
 
  friend class ::CMatchSyntax;
7981
 
  friend class ::ExtGnu;
 
7845
  friend class ::WinAsm;
 
7846
  friend class ::WinDeclSpecs;
 
7847
  friend class ::WinMemberExplSpec;
 
7848
  friend class ::WinTypeKeywords;
 
7849
  friend class ::WinFriend;
7982
7850
  friend class ::ExtAC;
7983
7851
  friend class ::ExtACBuilderCoupling;
7984
7852
  friend class ::ExtACSyntaxCoupling;
7985
7853
  friend class ::ExtACTree;
7986
7854
  friend class ::ExtACKeywords;
7987
 
  friend class ::WinAsm;
7988
 
  friend class ::WinDeclSpecs;
7989
 
  friend class ::WinMemberExplSpec;
7990
 
  friend class ::WinTypeKeywords;
 
7855
  friend class ::ExtGnu;
7991
7856
  friend class ::PragmaOnceUnitState;
7992
7857
  friend class ::PragmaOnce;
7993
 
  friend class ::CCExprResolve;
7994
 
  friend class ::CExprResolve;
 
7858
  friend class ::CMatchSyntax;
7995
7859
 
7996
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7860
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
7997
7861
 
7998
7862
public:
 
7863
  /* Constructor. */
7999
7864
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
7865
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8000
7866
  static const char *NodeId ();
 
7867
  /** Get the name of the node. Can be compared with NodeId(). */
8001
7868
  const char *NodeName () const { return NodeId (); }
 
7869
  /** Get the local scope of the compound statement. */
 
7870
  CSemScope *SemScope () const { return (CSemScope*)this; }
8002
7871
};
8003
7872
 
 
7873
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
7874
 *  Tree node representing an exception handler sequence. */
8004
7875
 
8005
 
#line 8006 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7876
#line 7877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
8006
7877
} // closed Puma
 
7878
class CCExprResolve;
 
7879
class CExprResolve;
8007
7880
class WinIfExists;
8008
7881
class WinImportHandler;
8009
7882
class WinMacros;
8010
 
class CMatchSyntax;
8011
 
class ExtGnu;
 
7883
class WinAsm;
 
7884
class WinDeclSpecs;
 
7885
class WinMemberExplSpec;
 
7886
class WinTypeKeywords;
 
7887
class WinFriend;
8012
7888
class ExtAC;
8013
7889
class ExtACBuilderCoupling;
8014
7890
class ExtACSyntaxCoupling;
8015
7891
class ExtACTree;
8016
7892
class ExtACKeywords;
8017
 
class WinAsm;
8018
 
class WinDeclSpecs;
8019
 
class WinMemberExplSpec;
8020
 
class WinTypeKeywords;
 
7893
class ExtGnu;
8021
7894
class PragmaOnceUnitState;
8022
7895
class PragmaOnce;
8023
 
class CCExprResolve;
8024
 
class CExprResolve;
 
7896
class CMatchSyntax;
8025
7897
namespace Puma {
8026
7898
 
8027
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7899
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8028
7900
class CT_HandlerSeq : public CT_List {
8029
 
#line 8030 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7901
#line 7902 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7902
  friend class ::CCExprResolve;
 
7903
  friend class ::CExprResolve;
8030
7904
  friend class ::WinIfExists;
8031
7905
  friend class ::WinImportHandler;
8032
7906
  friend class ::WinMacros;
8033
 
  friend class ::CMatchSyntax;
8034
 
  friend class ::ExtGnu;
 
7907
  friend class ::WinAsm;
 
7908
  friend class ::WinDeclSpecs;
 
7909
  friend class ::WinMemberExplSpec;
 
7910
  friend class ::WinTypeKeywords;
 
7911
  friend class ::WinFriend;
8035
7912
  friend class ::ExtAC;
8036
7913
  friend class ::ExtACBuilderCoupling;
8037
7914
  friend class ::ExtACSyntaxCoupling;
8038
7915
  friend class ::ExtACTree;
8039
7916
  friend class ::ExtACKeywords;
8040
 
  friend class ::WinAsm;
8041
 
  friend class ::WinDeclSpecs;
8042
 
  friend class ::WinMemberExplSpec;
8043
 
  friend class ::WinTypeKeywords;
 
7917
  friend class ::ExtGnu;
8044
7918
  friend class ::PragmaOnceUnitState;
8045
7919
  friend class ::PragmaOnce;
8046
 
  friend class ::CCExprResolve;
8047
 
  friend class ::CExprResolve;
 
7920
  friend class ::CMatchSyntax;
8048
7921
 
8049
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7922
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8050
7923
 
8051
7924
public:
 
7925
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8052
7926
  static const char *NodeId ();
 
7927
  /** Get the name of the node. Can be compared with NodeId(). */
8053
7928
  const char *NodeName () const { return NodeId (); }
8054
7929
};
8055
7930
 
 
7931
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
7932
 *  Tree node representing a template parameter list. */
8056
7933
 
8057
 
#line 8058 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7934
#line 7935 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
8058
7935
} // closed Puma
 
7936
class CCExprResolve;
 
7937
class CExprResolve;
8059
7938
class WinIfExists;
8060
7939
class WinImportHandler;
8061
7940
class WinMacros;
8062
 
class CMatchSyntax;
8063
 
class ExtGnu;
 
7941
class WinAsm;
 
7942
class WinDeclSpecs;
 
7943
class WinMemberExplSpec;
 
7944
class WinTypeKeywords;
 
7945
class WinFriend;
8064
7946
class ExtAC;
8065
7947
class ExtACBuilderCoupling;
8066
7948
class ExtACSyntaxCoupling;
8067
7949
class ExtACTree;
8068
7950
class ExtACKeywords;
8069
 
class WinAsm;
8070
 
class WinDeclSpecs;
8071
 
class WinMemberExplSpec;
8072
 
class WinTypeKeywords;
 
7951
class ExtGnu;
8073
7952
class PragmaOnceUnitState;
8074
7953
class PragmaOnce;
8075
 
class CCExprResolve;
8076
 
class CExprResolve;
 
7954
class CMatchSyntax;
8077
7955
namespace Puma {
8078
7956
 
8079
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7957
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8080
7958
class CT_TemplateParamList : public CT_List, public CSemScope {
8081
 
#line 8082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7959
#line 7960 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
7960
  friend class ::CCExprResolve;
 
7961
  friend class ::CExprResolve;
8082
7962
  friend class ::WinIfExists;
8083
7963
  friend class ::WinImportHandler;
8084
7964
  friend class ::WinMacros;
8085
 
  friend class ::CMatchSyntax;
8086
 
  friend class ::ExtGnu;
 
7965
  friend class ::WinAsm;
 
7966
  friend class ::WinDeclSpecs;
 
7967
  friend class ::WinMemberExplSpec;
 
7968
  friend class ::WinTypeKeywords;
 
7969
  friend class ::WinFriend;
8087
7970
  friend class ::ExtAC;
8088
7971
  friend class ::ExtACBuilderCoupling;
8089
7972
  friend class ::ExtACSyntaxCoupling;
8090
7973
  friend class ::ExtACTree;
8091
7974
  friend class ::ExtACKeywords;
8092
 
  friend class ::WinAsm;
8093
 
  friend class ::WinDeclSpecs;
8094
 
  friend class ::WinMemberExplSpec;
8095
 
  friend class ::WinTypeKeywords;
 
7975
  friend class ::ExtGnu;
8096
7976
  friend class ::PragmaOnceUnitState;
8097
7977
  friend class ::PragmaOnce;
8098
 
  friend class ::CCExprResolve;
8099
 
  friend class ::CExprResolve;
 
7978
  friend class ::CMatchSyntax;
8100
7979
 
8101
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
7980
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8102
7981
 
8103
7982
public:
8104
7983
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
7984
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8105
7985
  static const char *NodeId ();
 
7986
  /** Get the name of the node. Can be compared with NodeId(). */
8106
7987
  const char *NodeName () const { return NodeId (); }
 
7988
  /** Get the scope of the template parameter list. */
 
7989
  CSemScope *SemScope () const { return (CSemScope*)this; }
8107
7990
};
8108
7991
 
 
7992
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
7993
 *  Tree node representing a template argument list. */
8109
7994
 
8110
 
#line 8111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
7995
#line 7996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
8111
7996
} // closed Puma
 
7997
class CCExprResolve;
 
7998
class CExprResolve;
8112
7999
class WinIfExists;
8113
8000
class WinImportHandler;
8114
8001
class WinMacros;
8115
 
class CMatchSyntax;
8116
 
class ExtGnu;
 
8002
class WinAsm;
 
8003
class WinDeclSpecs;
 
8004
class WinMemberExplSpec;
 
8005
class WinTypeKeywords;
 
8006
class WinFriend;
8117
8007
class ExtAC;
8118
8008
class ExtACBuilderCoupling;
8119
8009
class ExtACSyntaxCoupling;
8120
8010
class ExtACTree;
8121
8011
class ExtACKeywords;
8122
 
class WinAsm;
8123
 
class WinDeclSpecs;
8124
 
class WinMemberExplSpec;
8125
 
class WinTypeKeywords;
 
8012
class ExtGnu;
8126
8013
class PragmaOnceUnitState;
8127
8014
class PragmaOnce;
8128
 
class CCExprResolve;
8129
 
class CExprResolve;
 
8015
class CMatchSyntax;
8130
8016
namespace Puma {
8131
8017
 
8132
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8018
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8133
8019
class CT_TemplateArgList : public CT_List {
8134
 
#line 8135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
8020
#line 8021 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8021
  friend class ::CCExprResolve;
 
8022
  friend class ::CExprResolve;
8135
8023
  friend class ::WinIfExists;
8136
8024
  friend class ::WinImportHandler;
8137
8025
  friend class ::WinMacros;
8138
 
  friend class ::CMatchSyntax;
8139
 
  friend class ::ExtGnu;
 
8026
  friend class ::WinAsm;
 
8027
  friend class ::WinDeclSpecs;
 
8028
  friend class ::WinMemberExplSpec;
 
8029
  friend class ::WinTypeKeywords;
 
8030
  friend class ::WinFriend;
8140
8031
  friend class ::ExtAC;
8141
8032
  friend class ::ExtACBuilderCoupling;
8142
8033
  friend class ::ExtACSyntaxCoupling;
8143
8034
  friend class ::ExtACTree;
8144
8035
  friend class ::ExtACKeywords;
8145
 
  friend class ::WinAsm;
8146
 
  friend class ::WinDeclSpecs;
8147
 
  friend class ::WinMemberExplSpec;
8148
 
  friend class ::WinTypeKeywords;
 
8036
  friend class ::ExtGnu;
8149
8037
  friend class ::PragmaOnceUnitState;
8150
8038
  friend class ::PragmaOnce;
8151
 
  friend class ::CCExprResolve;
8152
 
  friend class ::CExprResolve;
 
8039
  friend class ::CMatchSyntax;
8153
8040
 
8154
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8041
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8155
8042
 
8156
8043
public:
 
8044
  /** Constructor. */
8157
8045
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
8046
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8158
8047
  static const char *NodeId ();
 
8048
  /** Get the name of the node. Can be compared with NodeId(). */
8159
8049
  const char *NodeName () const { return NodeId (); }
8160
8050
};
8161
8051
 
8165
8055
/*                                                                           */
8166
8056
/*****************************************************************************/
8167
8057
 
 
8058
/** \class CT_Expression CTree.h Puma/CTree.h
 
8059
 *  Base class for all expression tree nodes. */
8168
8060
 
8169
 
#line 8170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
8061
#line 8062 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
8170
8062
} // closed Puma
 
8063
class CCExprResolve;
 
8064
class CExprResolve;
8171
8065
class WinIfExists;
8172
8066
class WinImportHandler;
8173
8067
class WinMacros;
8174
 
class CMatchSyntax;
8175
 
class ExtGnu;
 
8068
class WinAsm;
 
8069
class WinDeclSpecs;
 
8070
class WinMemberExplSpec;
 
8071
class WinTypeKeywords;
 
8072
class WinFriend;
8176
8073
class ExtAC;
8177
8074
class ExtACBuilderCoupling;
8178
8075
class ExtACSyntaxCoupling;
8179
8076
class ExtACTree;
8180
8077
class ExtACKeywords;
8181
 
class WinAsm;
8182
 
class WinDeclSpecs;
8183
 
class WinMemberExplSpec;
8184
 
class WinTypeKeywords;
 
8078
class ExtGnu;
8185
8079
class PragmaOnceUnitState;
8186
8080
class PragmaOnce;
8187
 
class CCExprResolve;
8188
 
class CExprResolve;
8189
 
namespace Puma {
8190
 
 
8191
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8081
class CMatchSyntax;
 
8082
namespace Puma {
 
8083
 
 
8084
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8085
 
 
8086
#line 8087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8087
} // closed Puma
 
8088
 
 
8089
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8090
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8091
#include "CCExprResolveH.ah"
 
8092
#endif
 
8093
namespace Puma {
 
8094
 
 
8095
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8096
 
 
8097
#line 8098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8098
} // closed Puma
 
8099
 
 
8100
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8101
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8102
#include "CExprResolveH.ah"
 
8103
#endif
 
8104
namespace Puma {
 
8105
 
 
8106
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8192
8107
class CT_Expression : public CTree, public CSemValue {
8193
 
#line 8194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
8108
#line 8109 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8109
  friend class ::CCExprResolve;
 
8110
  friend class ::CExprResolve;
8194
8111
  friend class ::WinIfExists;
8195
8112
  friend class ::WinImportHandler;
8196
8113
  friend class ::WinMacros;
8197
 
  friend class ::CMatchSyntax;
8198
 
  friend class ::ExtGnu;
 
8114
  friend class ::WinAsm;
 
8115
  friend class ::WinDeclSpecs;
 
8116
  friend class ::WinMemberExplSpec;
 
8117
  friend class ::WinTypeKeywords;
 
8118
  friend class ::WinFriend;
8199
8119
  friend class ::ExtAC;
8200
8120
  friend class ::ExtACBuilderCoupling;
8201
8121
  friend class ::ExtACSyntaxCoupling;
8202
8122
  friend class ::ExtACTree;
8203
8123
  friend class ::ExtACKeywords;
8204
 
  friend class ::WinAsm;
8205
 
  friend class ::WinDeclSpecs;
8206
 
  friend class ::WinMemberExplSpec;
8207
 
  friend class ::WinTypeKeywords;
 
8124
  friend class ::ExtGnu;
8208
8125
  friend class ::PragmaOnceUnitState;
8209
8126
  friend class ::PragmaOnce;
8210
 
  friend class ::CCExprResolve;
8211
 
  friend class ::CExprResolve;
 
8127
  friend class ::CMatchSyntax;
8212
8128
 
8213
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8129
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8214
8130
 
8215
8131
protected:
 
8132
  /** Constructor. */
8216
8133
  CT_Expression () {}
8217
8134
 
8218
8135
public:
 
8136
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8219
8137
  static const char *NodeId ();
 
8138
  /** Get the name of the node. Can be compared with NodeId(). */
8220
8139
  const char *NodeName () const { return NodeId (); }
 
8140
  /** Get the type of the expression.
 
8141
   *  \return The type information object or NULL. */
8221
8142
  CTypeInfo *Type () const { return type; }
 
8143
  /** Get the value of the expression.
 
8144
   *  \return The value object or NULL. */
8222
8145
  CExprValue *Value () const { return value; }
 
8146
  /** Get the semantic value information of the expression.
 
8147
   *  \return The value object or NULL. */
8223
8148
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
8149
  /** Get this. */
 
8150
  virtual CT_Expression *IsExpression () { return this; }
8224
8151
   private:
8225
8152
  typedef CT_Expression CCExprResolveExpr;
8226
8153
 
8227
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8154
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8228
8155
 public :
8229
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8156
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8230
8157
  typedef CT_Expression CExprResolveExpr;
8231
8158
 
8232
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8233
 
 public :
8234
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8235
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8236
 
};
8237
 
 
8238
 
 
8239
 
#line 8240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
8240
 
} // closed Puma
8241
 
class WinIfExists;
8242
 
class WinImportHandler;
8243
 
class WinMacros;
8244
 
class CMatchSyntax;
8245
 
class ExtGnu;
8246
 
class ExtAC;
8247
 
class ExtACBuilderCoupling;
8248
 
class ExtACSyntaxCoupling;
8249
 
class ExtACTree;
8250
 
class ExtACKeywords;
8251
 
class WinAsm;
8252
 
class WinDeclSpecs;
8253
 
class WinMemberExplSpec;
8254
 
class WinTypeKeywords;
8255
 
class PragmaOnceUnitState;
8256
 
class PragmaOnce;
8257
 
class CCExprResolve;
8258
 
class CExprResolve;
8259
 
namespace Puma {
8260
 
 
8261
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8159
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8160
 public :
 
8161
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8162
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8163
};
 
8164
 
 
8165
/** \class CT_Call CTree.h Puma/CTree.h
 
8166
 *  Tree node representing explicit or implicit function calls 
 
8167
 *  including built-in or user-defined functions and overloaded
 
8168
 *  operators. */
 
8169
 
 
8170
#line 8171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8171
} // closed Puma
 
8172
class CCExprResolve;
 
8173
class CExprResolve;
 
8174
class WinIfExists;
 
8175
class WinImportHandler;
 
8176
class WinMacros;
 
8177
class WinAsm;
 
8178
class WinDeclSpecs;
 
8179
class WinMemberExplSpec;
 
8180
class WinTypeKeywords;
 
8181
class WinFriend;
 
8182
class ExtAC;
 
8183
class ExtACBuilderCoupling;
 
8184
class ExtACSyntaxCoupling;
 
8185
class ExtACTree;
 
8186
class ExtACKeywords;
 
8187
class ExtGnu;
 
8188
class PragmaOnceUnitState;
 
8189
class PragmaOnce;
 
8190
class CMatchSyntax;
 
8191
namespace Puma {
 
8192
 
 
8193
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8194
 
 
8195
#line 8196 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8196
} // closed Puma
 
8197
 
 
8198
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8199
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8200
#include "CCExprResolveH.ah"
 
8201
#endif
 
8202
namespace Puma {
 
8203
 
 
8204
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8205
 
 
8206
#line 8207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8207
} // closed Puma
 
8208
 
 
8209
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8210
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8211
#include "CExprResolveH.ah"
 
8212
#endif
 
8213
namespace Puma {
 
8214
 
 
8215
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8216
class CT_Call : public CT_Expression, public CSemObject {
 
8217
#line 8218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8218
  friend class ::CCExprResolve;
 
8219
  friend class ::CExprResolve;
 
8220
  friend class ::WinIfExists;
 
8221
  friend class ::WinImportHandler;
 
8222
  friend class ::WinMacros;
 
8223
  friend class ::WinAsm;
 
8224
  friend class ::WinDeclSpecs;
 
8225
  friend class ::WinMemberExplSpec;
 
8226
  friend class ::WinTypeKeywords;
 
8227
  friend class ::WinFriend;
 
8228
  friend class ::ExtAC;
 
8229
  friend class ::ExtACBuilderCoupling;
 
8230
  friend class ::ExtACSyntaxCoupling;
 
8231
  friend class ::ExtACTree;
 
8232
  friend class ::ExtACKeywords;
 
8233
  friend class ::ExtGnu;
 
8234
  friend class ::PragmaOnceUnitState;
 
8235
  friend class ::PragmaOnce;
 
8236
  friend class ::CMatchSyntax;
 
8237
 
 
8238
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8239
 
 
8240
protected:
 
8241
  /** Constructor. */
 
8242
  CT_Call () {}
 
8243
  
 
8244
public:
 
8245
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8246
  static const char *NodeId ();
 
8247
  /** Get the name of the node. Can be compared with NodeId(). */
 
8248
  const char *NodeName () const { return NodeId (); }
 
8249
  /** Get the semantic information of the call.
 
8250
   *  \return The semantic information or NULL. */
 
8251
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
8252
  /** Get this. */
 
8253
  CT_Call *IsCall () { return this; }
 
8254
   private:
 
8255
  typedef CT_Call CCExprResolveExpr;
 
8256
 
 
8257
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8258
 public :
 
8259
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8260
  typedef CT_Call CExprResolveExpr;
 
8261
 
 
8262
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8263
 public :
 
8264
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8265
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8266
};
 
8267
 
 
8268
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
8269
 *  Tree node representing implicit function calls detected by
 
8270
 *  the semantic analysis. */
 
8271
 
 
8272
#line 8273 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8273
} // closed Puma
 
8274
class CCExprResolve;
 
8275
class CExprResolve;
 
8276
class WinIfExists;
 
8277
class WinImportHandler;
 
8278
class WinMacros;
 
8279
class WinAsm;
 
8280
class WinDeclSpecs;
 
8281
class WinMemberExplSpec;
 
8282
class WinTypeKeywords;
 
8283
class WinFriend;
 
8284
class ExtAC;
 
8285
class ExtACBuilderCoupling;
 
8286
class ExtACSyntaxCoupling;
 
8287
class ExtACTree;
 
8288
class ExtACKeywords;
 
8289
class ExtGnu;
 
8290
class PragmaOnceUnitState;
 
8291
class PragmaOnce;
 
8292
class CMatchSyntax;
 
8293
namespace Puma {
 
8294
 
 
8295
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8296
 
 
8297
#line 8298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8298
} // closed Puma
 
8299
 
 
8300
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8301
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8302
#include "CCExprResolveH.ah"
 
8303
#endif
 
8304
namespace Puma {
 
8305
 
 
8306
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8307
 
 
8308
#line 8309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8309
} // closed Puma
 
8310
 
 
8311
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8312
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8313
#include "CExprResolveH.ah"
 
8314
#endif
 
8315
namespace Puma {
 
8316
 
 
8317
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8318
class CT_ImplicitCall : public CT_Call {
 
8319
#line 8320 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8320
  friend class ::CCExprResolve;
 
8321
  friend class ::CExprResolve;
 
8322
  friend class ::WinIfExists;
 
8323
  friend class ::WinImportHandler;
 
8324
  friend class ::WinMacros;
 
8325
  friend class ::WinAsm;
 
8326
  friend class ::WinDeclSpecs;
 
8327
  friend class ::WinMemberExplSpec;
 
8328
  friend class ::WinTypeKeywords;
 
8329
  friend class ::WinFriend;
 
8330
  friend class ::ExtAC;
 
8331
  friend class ::ExtACBuilderCoupling;
 
8332
  friend class ::ExtACSyntaxCoupling;
 
8333
  friend class ::ExtACTree;
 
8334
  friend class ::ExtACKeywords;
 
8335
  friend class ::ExtGnu;
 
8336
  friend class ::PragmaOnceUnitState;
 
8337
  friend class ::PragmaOnce;
 
8338
  friend class ::CMatchSyntax;
 
8339
 
 
8340
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8341
 
 
8342
  CTree *_arg;
 
8343
 
 
8344
public:
 
8345
  /** Constructor.
 
8346
   *  \param arg The call argument. */
 
8347
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
8348
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
8349
  static const char *NodeId ();
 
8350
  /** Get the name of the node. Can be compared with NodeId(). */
 
8351
  const char *NodeName () const { return NodeId (); }
 
8352
  /** Get the number of sons. */
 
8353
  int Sons () const { return 1; }
 
8354
  /** Get the n-th son.
 
8355
   *  \param n The index of the son.
 
8356
   *  \return The n-th son or NULL. */
 
8357
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
8358
  /** Replace a son.
 
8359
   *  \param old_son The son to replace.
 
8360
   *  \param new_son The new son. */
 
8361
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
8362
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
8363
   private:
 
8364
  typedef CT_ImplicitCall CCExprResolveExpr;
 
8365
 
 
8366
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8367
 public :
 
8368
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
8369
  typedef CT_ImplicitCall CExprResolveExpr;
 
8370
 
 
8371
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8372
 public :
 
8373
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8374
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8375
};
 
8376
 
 
8377
/** \class CT_String CTree.h Puma/CTree.h
 
8378
 *  Tree node representing a string literal. */
 
8379
 
 
8380
#line 8381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8381
} // closed Puma
 
8382
class CCExprResolve;
 
8383
class CExprResolve;
 
8384
class WinIfExists;
 
8385
class WinImportHandler;
 
8386
class WinMacros;
 
8387
class WinAsm;
 
8388
class WinDeclSpecs;
 
8389
class WinMemberExplSpec;
 
8390
class WinTypeKeywords;
 
8391
class WinFriend;
 
8392
class ExtAC;
 
8393
class ExtACBuilderCoupling;
 
8394
class ExtACSyntaxCoupling;
 
8395
class ExtACTree;
 
8396
class ExtACKeywords;
 
8397
class ExtGnu;
 
8398
class PragmaOnceUnitState;
 
8399
class PragmaOnce;
 
8400
class CMatchSyntax;
 
8401
namespace Puma {
 
8402
 
 
8403
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8404
 
 
8405
#line 8406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8406
} // closed Puma
 
8407
 
 
8408
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8409
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8410
#include "CCExprResolveH.ah"
 
8411
#endif
 
8412
namespace Puma {
 
8413
 
 
8414
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8415
 
 
8416
#line 8417 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8417
} // closed Puma
 
8418
 
 
8419
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8420
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8421
#include "CExprResolveH.ah"
 
8422
#endif
 
8423
namespace Puma {
 
8424
 
 
8425
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8262
8426
class CT_String : public CT_List, public CSemValue {
8263
 
#line 8264 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
8427
#line 8428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8428
  friend class ::CCExprResolve;
 
8429
  friend class ::CExprResolve;
8264
8430
  friend class ::WinIfExists;
8265
8431
  friend class ::WinImportHandler;
8266
8432
  friend class ::WinMacros;
8267
 
  friend class ::CMatchSyntax;
8268
 
  friend class ::ExtGnu;
 
8433
  friend class ::WinAsm;
 
8434
  friend class ::WinDeclSpecs;
 
8435
  friend class ::WinMemberExplSpec;
 
8436
  friend class ::WinTypeKeywords;
 
8437
  friend class ::WinFriend;
8269
8438
  friend class ::ExtAC;
8270
8439
  friend class ::ExtACBuilderCoupling;
8271
8440
  friend class ::ExtACSyntaxCoupling;
8272
8441
  friend class ::ExtACTree;
8273
8442
  friend class ::ExtACKeywords;
8274
 
  friend class ::WinAsm;
8275
 
  friend class ::WinDeclSpecs;
8276
 
  friend class ::WinMemberExplSpec;
8277
 
  friend class ::WinTypeKeywords;
 
8443
  friend class ::ExtGnu;
8278
8444
  friend class ::PragmaOnceUnitState;
8279
8445
  friend class ::PragmaOnce;
8280
 
  friend class ::CCExprResolve;
8281
 
  friend class ::CExprResolve;
 
8446
  friend class ::CMatchSyntax;
8282
8447
 
8283
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8448
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8284
8449
 
8285
8450
public:
 
8451
  /** Constructor. 
 
8452
   *  \param size The number of sub-strings. */
8286
8453
  CT_String (int size) : CT_List (size, 1) {}
 
8454
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8287
8455
  static const char *NodeId ();
 
8456
  /** Get the name of the node. Can be compared with NodeId(). */
8288
8457
  const char *NodeName () const { return NodeId (); }
8289
8458
 
 
8459
  /** Get the type of the string. 
 
8460
   *  \return The type or NULL. */
8290
8461
  CTypeInfo *Type () const { return type; }
 
8462
  /** Get the string value.
 
8463
   *  \return The value or NULL. */
8291
8464
  CExprValue *Value () const { return value; }
 
8465
  /** Get the semantic value info object.
 
8466
   *  \return The semantic value object or NULL. */
8292
8467
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
8468
  /** Get this. */
 
8469
  virtual CT_String *IsString () { return this; }
8293
8470
   private:
8294
8471
  typedef CT_String CCExprResolveExpr;
8295
8472
 
8296
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8473
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8297
8474
 public :
8298
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8475
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8299
8476
  typedef CT_String CExprResolveExpr;
8300
8477
 
8301
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8478
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8302
8479
 public :
8303
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8304
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8480
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8481
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8305
8482
};
8306
8483
 
 
8484
/** \class CT_WideString CTree.h Puma/CTree.h
 
8485
 *  Tree node representing a wide string literal. */
8307
8486
 
8308
 
#line 8309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
8487
#line 8488 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
8309
8488
} // closed Puma
 
8489
class CCExprResolve;
 
8490
class CExprResolve;
8310
8491
class WinIfExists;
8311
8492
class WinImportHandler;
8312
8493
class WinMacros;
8313
 
class CMatchSyntax;
8314
 
class ExtGnu;
 
8494
class WinAsm;
 
8495
class WinDeclSpecs;
 
8496
class WinMemberExplSpec;
 
8497
class WinTypeKeywords;
 
8498
class WinFriend;
8315
8499
class ExtAC;
8316
8500
class ExtACBuilderCoupling;
8317
8501
class ExtACSyntaxCoupling;
8318
8502
class ExtACTree;
8319
8503
class ExtACKeywords;
8320
 
class WinAsm;
8321
 
class WinDeclSpecs;
8322
 
class WinMemberExplSpec;
8323
 
class WinTypeKeywords;
 
8504
class ExtGnu;
8324
8505
class PragmaOnceUnitState;
8325
8506
class PragmaOnce;
8326
 
class CCExprResolve;
8327
 
class CExprResolve;
8328
 
namespace Puma {
8329
 
 
8330
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8507
class CMatchSyntax;
 
8508
namespace Puma {
 
8509
 
 
8510
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8511
 
 
8512
#line 8513 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8513
} // closed Puma
 
8514
 
 
8515
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8516
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8517
#include "CCExprResolveH.ah"
 
8518
#endif
 
8519
namespace Puma {
 
8520
 
 
8521
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8522
 
 
8523
#line 8524 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8524
} // closed Puma
 
8525
 
 
8526
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8527
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8528
#include "CExprResolveH.ah"
 
8529
#endif
 
8530
namespace Puma {
 
8531
 
 
8532
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8331
8533
class CT_WideString : public CT_String {
8332
 
#line 8333 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
8534
#line 8535 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8535
  friend class ::CCExprResolve;
 
8536
  friend class ::CExprResolve;
8333
8537
  friend class ::WinIfExists;
8334
8538
  friend class ::WinImportHandler;
8335
8539
  friend class ::WinMacros;
8336
 
  friend class ::CMatchSyntax;
8337
 
  friend class ::ExtGnu;
 
8540
  friend class ::WinAsm;
 
8541
  friend class ::WinDeclSpecs;
 
8542
  friend class ::WinMemberExplSpec;
 
8543
  friend class ::WinTypeKeywords;
 
8544
  friend class ::WinFriend;
8338
8545
  friend class ::ExtAC;
8339
8546
  friend class ::ExtACBuilderCoupling;
8340
8547
  friend class ::ExtACSyntaxCoupling;
8341
8548
  friend class ::ExtACTree;
8342
8549
  friend class ::ExtACKeywords;
8343
 
  friend class ::WinAsm;
8344
 
  friend class ::WinDeclSpecs;
8345
 
  friend class ::WinMemberExplSpec;
8346
 
  friend class ::WinTypeKeywords;
 
8550
  friend class ::ExtGnu;
8347
8551
  friend class ::PragmaOnceUnitState;
8348
8552
  friend class ::PragmaOnce;
8349
 
  friend class ::CCExprResolve;
8350
 
  friend class ::CExprResolve;
 
8553
  friend class ::CMatchSyntax;
8351
8554
 
8352
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8555
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8353
8556
 
8354
8557
public:
 
8558
  /** Constructor.
 
8559
   *  \param size The number of sub-strings. */
8355
8560
  CT_WideString (int size) : CT_String (size) {}
 
8561
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8356
8562
  static const char *NodeId ();
 
8563
  /** Get the name of the node. Can be compared with NodeId(). */
8357
8564
  const char *NodeName () const { return NodeId (); }
8358
8565
   private:
8359
8566
  typedef CT_WideString CCExprResolveExpr;
8360
8567
 
8361
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8568
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8362
8569
 public :
8363
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8570
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8364
8571
  typedef CT_WideString CExprResolveExpr;
8365
8572
 
8366
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8573
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8367
8574
 public :
8368
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8369
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8575
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8576
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8370
8577
};
8371
8578
 
 
8579
/** \class CT_Integer CTree.h Puma/CTree.h
 
8580
 *  Tree node representing an integer constant. */
8372
8581
 
8373
 
#line 8374 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
8582
#line 8583 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
8374
8583
} // closed Puma
 
8584
class CCExprResolve;
 
8585
class CExprResolve;
8375
8586
class WinIfExists;
8376
8587
class WinImportHandler;
8377
8588
class WinMacros;
8378
 
class CMatchSyntax;
8379
 
class ExtGnu;
 
8589
class WinAsm;
 
8590
class WinDeclSpecs;
 
8591
class WinMemberExplSpec;
 
8592
class WinTypeKeywords;
 
8593
class WinFriend;
8380
8594
class ExtAC;
8381
8595
class ExtACBuilderCoupling;
8382
8596
class ExtACSyntaxCoupling;
8383
8597
class ExtACTree;
8384
8598
class ExtACKeywords;
8385
 
class WinAsm;
8386
 
class WinDeclSpecs;
8387
 
class WinMemberExplSpec;
8388
 
class WinTypeKeywords;
 
8599
class ExtGnu;
8389
8600
class PragmaOnceUnitState;
8390
8601
class PragmaOnce;
8391
 
class CCExprResolve;
8392
 
class CExprResolve;
8393
 
namespace Puma {
8394
 
 
8395
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8602
class CMatchSyntax;
 
8603
namespace Puma {
 
8604
 
 
8605
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8606
 
 
8607
#line 8608 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8608
} // closed Puma
 
8609
 
 
8610
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8611
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8612
#include "CCExprResolveH.ah"
 
8613
#endif
 
8614
namespace Puma {
 
8615
 
 
8616
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8617
 
 
8618
#line 8619 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8619
} // closed Puma
 
8620
 
 
8621
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8622
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8623
#include "CExprResolveH.ah"
 
8624
#endif
 
8625
namespace Puma {
 
8626
 
 
8627
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8396
8628
class CT_Integer : public CT_Expression {
8397
 
#line 8398 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
8629
#line 8630 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8630
  friend class ::CCExprResolve;
 
8631
  friend class ::CExprResolve;
8398
8632
  friend class ::WinIfExists;
8399
8633
  friend class ::WinImportHandler;
8400
8634
  friend class ::WinMacros;
8401
 
  friend class ::CMatchSyntax;
8402
 
  friend class ::ExtGnu;
 
8635
  friend class ::WinAsm;
 
8636
  friend class ::WinDeclSpecs;
 
8637
  friend class ::WinMemberExplSpec;
 
8638
  friend class ::WinTypeKeywords;
 
8639
  friend class ::WinFriend;
8403
8640
  friend class ::ExtAC;
8404
8641
  friend class ::ExtACBuilderCoupling;
8405
8642
  friend class ::ExtACSyntaxCoupling;
8406
8643
  friend class ::ExtACTree;
8407
8644
  friend class ::ExtACKeywords;
8408
 
  friend class ::WinAsm;
8409
 
  friend class ::WinDeclSpecs;
8410
 
  friend class ::WinMemberExplSpec;
8411
 
  friend class ::WinTypeKeywords;
 
8645
  friend class ::ExtGnu;
8412
8646
  friend class ::PragmaOnceUnitState;
8413
8647
  friend class ::PragmaOnce;
8414
 
  friend class ::CCExprResolve;
8415
 
  friend class ::CExprResolve;
 
8648
  friend class ::CMatchSyntax;
8416
8649
 
8417
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8650
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8418
8651
 
8419
8652
  CTree *_value;  // CT_Token
8420
8653
 
8421
8654
public:
8422
 
  CT_Integer (CTree *t) : _value (t) {}
 
8655
  /** Constructor.
 
8656
   *  \param token The token containing the integer value. */
 
8657
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
8658
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8423
8659
  static const char *NodeId ();
 
8660
  /** Get the name of the node. Can be compared with NodeId(). */
8424
8661
  const char *NodeName () const { return NodeId (); }
 
8662
  /** Get the number of sons. */
8425
8663
  int Sons () const { return _value ? 1 : 0; }
 
8664
  /** Get the n-th son.
 
8665
   *  \param n The index of the son.
 
8666
   *  \return The n-th son or NULL. */
8426
8667
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
8668
  /** Replace a son.
 
8669
   *  \param old_son The son to replace.
 
8670
   *  \param new_son The new son. */
8427
8671
  void ReplaceSon (CTree *old_son, CTree *new_son) 
8428
 
   { if (old_son == _value) _value = new_son; }
 
8672
   { CTree::ReplaceSon (_value, old_son, new_son); }
8429
8673
   private:
8430
8674
  typedef CT_Integer CCExprResolveExpr;
8431
8675
 
8432
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8676
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8433
8677
 public :
8434
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8678
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8435
8679
  typedef CT_Integer CExprResolveExpr;
8436
8680
 
8437
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8681
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8438
8682
 public :
8439
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8440
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8683
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8684
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8441
8685
};
8442
8686
 
 
8687
/** \class CT_Character CTree.h Puma/CTree.h
 
8688
 *  Tree node representing a single character constant. */
8443
8689
 
8444
 
#line 8445 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
8690
#line 8691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
8445
8691
} // closed Puma
 
8692
class CCExprResolve;
 
8693
class CExprResolve;
8446
8694
class WinIfExists;
8447
8695
class WinImportHandler;
8448
8696
class WinMacros;
8449
 
class CMatchSyntax;
8450
 
class ExtGnu;
 
8697
class WinAsm;
 
8698
class WinDeclSpecs;
 
8699
class WinMemberExplSpec;
 
8700
class WinTypeKeywords;
 
8701
class WinFriend;
8451
8702
class ExtAC;
8452
8703
class ExtACBuilderCoupling;
8453
8704
class ExtACSyntaxCoupling;
8454
8705
class ExtACTree;
8455
8706
class ExtACKeywords;
8456
 
class WinAsm;
8457
 
class WinDeclSpecs;
8458
 
class WinMemberExplSpec;
8459
 
class WinTypeKeywords;
 
8707
class ExtGnu;
8460
8708
class PragmaOnceUnitState;
8461
8709
class PragmaOnce;
8462
 
class CCExprResolve;
8463
 
class CExprResolve;
8464
 
namespace Puma {
8465
 
 
8466
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8710
class CMatchSyntax;
 
8711
namespace Puma {
 
8712
 
 
8713
#line 709 "/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/Parser.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 709 "/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/Parser.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 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8467
8736
class CT_Character : public CT_Expression {
8468
 
#line 8469 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
8737
#line 8738 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8738
  friend class ::CCExprResolve;
 
8739
  friend class ::CExprResolve;
8469
8740
  friend class ::WinIfExists;
8470
8741
  friend class ::WinImportHandler;
8471
8742
  friend class ::WinMacros;
8472
 
  friend class ::CMatchSyntax;
8473
 
  friend class ::ExtGnu;
 
8743
  friend class ::WinAsm;
 
8744
  friend class ::WinDeclSpecs;
 
8745
  friend class ::WinMemberExplSpec;
 
8746
  friend class ::WinTypeKeywords;
 
8747
  friend class ::WinFriend;
8474
8748
  friend class ::ExtAC;
8475
8749
  friend class ::ExtACBuilderCoupling;
8476
8750
  friend class ::ExtACSyntaxCoupling;
8477
8751
  friend class ::ExtACTree;
8478
8752
  friend class ::ExtACKeywords;
8479
 
  friend class ::WinAsm;
8480
 
  friend class ::WinDeclSpecs;
8481
 
  friend class ::WinMemberExplSpec;
8482
 
  friend class ::WinTypeKeywords;
 
8753
  friend class ::ExtGnu;
8483
8754
  friend class ::PragmaOnceUnitState;
8484
8755
  friend class ::PragmaOnce;
8485
 
  friend class ::CCExprResolve;
8486
 
  friend class ::CExprResolve;
 
8756
  friend class ::CMatchSyntax;
8487
8757
 
8488
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8758
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8489
8759
 
8490
8760
  CTree *_value;  // CT_Token
8491
8761
 
8492
8762
public:
8493
 
  CT_Character (CTree *t) : _value (t) {}
 
8763
  /** Constructor.
 
8764
   *  \param token The token containing the character value. */
 
8765
  CT_Character (CTree *token) { AddSon (_value, token); }
 
8766
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8494
8767
  static const char *NodeId ();
 
8768
  /** Get the name of the node. Can be compared with NodeId(). */
8495
8769
  const char *NodeName () const { return NodeId (); }
 
8770
  /** Get the number of sons. */
8496
8771
  int Sons () const { return 1; }
 
8772
  /** Get the n-th son.
 
8773
   *  \param n The index of the son.
 
8774
   *  \return The n-th son or NULL. */
8497
8775
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
8776
  /** Replace a son.
 
8777
   *  \param old_son The son to replace.
 
8778
   *  \param new_son The new son. */
8498
8779
  void ReplaceSon (CTree *old_son, CTree *new_son) 
8499
 
   { if (old_son == _value) _value = new_son; }
 
8780
   { CTree::ReplaceSon (_value, old_son, new_son); }
8500
8781
   private:
8501
8782
  typedef CT_Character CCExprResolveExpr;
8502
8783
 
8503
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8784
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8504
8785
 public :
8505
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8786
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8506
8787
  typedef CT_Character CExprResolveExpr;
8507
8788
 
8508
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8789
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8509
8790
 public :
8510
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8511
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8791
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8792
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8512
8793
};
8513
8794
 
 
8795
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
8796
 *  Tree node representing a wide character constant. */
8514
8797
 
8515
 
#line 8516 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
8798
#line 8799 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
8516
8799
} // closed Puma
 
8800
class CCExprResolve;
 
8801
class CExprResolve;
8517
8802
class WinIfExists;
8518
8803
class WinImportHandler;
8519
8804
class WinMacros;
8520
 
class CMatchSyntax;
8521
 
class ExtGnu;
 
8805
class WinAsm;
 
8806
class WinDeclSpecs;
 
8807
class WinMemberExplSpec;
 
8808
class WinTypeKeywords;
 
8809
class WinFriend;
8522
8810
class ExtAC;
8523
8811
class ExtACBuilderCoupling;
8524
8812
class ExtACSyntaxCoupling;
8525
8813
class ExtACTree;
8526
8814
class ExtACKeywords;
8527
 
class WinAsm;
8528
 
class WinDeclSpecs;
8529
 
class WinMemberExplSpec;
8530
 
class WinTypeKeywords;
 
8815
class ExtGnu;
8531
8816
class PragmaOnceUnitState;
8532
8817
class PragmaOnce;
8533
 
class CCExprResolve;
8534
 
class CExprResolve;
8535
 
namespace Puma {
8536
 
 
8537
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8818
class CMatchSyntax;
 
8819
namespace Puma {
 
8820
 
 
8821
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8822
 
 
8823
#line 8824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8824
} // closed Puma
 
8825
 
 
8826
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8827
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8828
#include "CCExprResolveH.ah"
 
8829
#endif
 
8830
namespace Puma {
 
8831
 
 
8832
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8833
 
 
8834
#line 8835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8835
} // closed Puma
 
8836
 
 
8837
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8838
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8839
#include "CExprResolveH.ah"
 
8840
#endif
 
8841
namespace Puma {
 
8842
 
 
8843
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8538
8844
class CT_WideCharacter : public CT_Character {
8539
 
#line 8540 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
8845
#line 8846 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8846
  friend class ::CCExprResolve;
 
8847
  friend class ::CExprResolve;
8540
8848
  friend class ::WinIfExists;
8541
8849
  friend class ::WinImportHandler;
8542
8850
  friend class ::WinMacros;
8543
 
  friend class ::CMatchSyntax;
8544
 
  friend class ::ExtGnu;
 
8851
  friend class ::WinAsm;
 
8852
  friend class ::WinDeclSpecs;
 
8853
  friend class ::WinMemberExplSpec;
 
8854
  friend class ::WinTypeKeywords;
 
8855
  friend class ::WinFriend;
8545
8856
  friend class ::ExtAC;
8546
8857
  friend class ::ExtACBuilderCoupling;
8547
8858
  friend class ::ExtACSyntaxCoupling;
8548
8859
  friend class ::ExtACTree;
8549
8860
  friend class ::ExtACKeywords;
8550
 
  friend class ::WinAsm;
8551
 
  friend class ::WinDeclSpecs;
8552
 
  friend class ::WinMemberExplSpec;
8553
 
  friend class ::WinTypeKeywords;
 
8861
  friend class ::ExtGnu;
8554
8862
  friend class ::PragmaOnceUnitState;
8555
8863
  friend class ::PragmaOnce;
8556
 
  friend class ::CCExprResolve;
8557
 
  friend class ::CExprResolve;
8558
 
 
8559
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
8560
 
 
8561
 
  CTree *_value;  // CT_Token
 
8864
  friend class ::CMatchSyntax;
 
8865
 
 
8866
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8562
8867
 
8563
8868
public:
8564
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
8869
  /** Constructor.
 
8870
   *  \param token The token containing the wide character value. */
 
8871
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
8872
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8565
8873
  static const char *NodeId ();
 
8874
  /** Get the name of the node. Can be compared with NodeId(). */
8566
8875
  const char *NodeName () const { return NodeId (); }
8567
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
8568
 
   { if (old_son == _value) _value = new_son; }
8569
8876
   private:
8570
8877
  typedef CT_WideCharacter CCExprResolveExpr;
8571
8878
 
8572
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8879
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8573
8880
 public :
8574
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8881
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8575
8882
  typedef CT_WideCharacter CExprResolveExpr;
8576
8883
 
8577
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8884
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8578
8885
 public :
8579
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8580
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8886
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8887
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8581
8888
};
8582
8889
 
 
8890
/** \class CT_Float CTree.h Puma/CTree.h
 
8891
 *  Tree node representing a floating point constant. */
8583
8892
 
8584
 
#line 8585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
8893
#line 8894 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
8585
8894
} // closed Puma
 
8895
class CCExprResolve;
 
8896
class CExprResolve;
8586
8897
class WinIfExists;
8587
8898
class WinImportHandler;
8588
8899
class WinMacros;
8589
 
class CMatchSyntax;
8590
 
class ExtGnu;
 
8900
class WinAsm;
 
8901
class WinDeclSpecs;
 
8902
class WinMemberExplSpec;
 
8903
class WinTypeKeywords;
 
8904
class WinFriend;
8591
8905
class ExtAC;
8592
8906
class ExtACBuilderCoupling;
8593
8907
class ExtACSyntaxCoupling;
8594
8908
class ExtACTree;
8595
8909
class ExtACKeywords;
8596
 
class WinAsm;
8597
 
class WinDeclSpecs;
8598
 
class WinMemberExplSpec;
8599
 
class WinTypeKeywords;
 
8910
class ExtGnu;
8600
8911
class PragmaOnceUnitState;
8601
8912
class PragmaOnce;
8602
 
class CCExprResolve;
8603
 
class CExprResolve;
8604
 
namespace Puma {
8605
 
 
8606
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8913
class CMatchSyntax;
 
8914
namespace Puma {
 
8915
 
 
8916
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8917
 
 
8918
#line 8919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8919
} // closed Puma
 
8920
 
 
8921
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8922
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
8923
#include "CCExprResolveH.ah"
 
8924
#endif
 
8925
namespace Puma {
 
8926
 
 
8927
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8928
 
 
8929
#line 8930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8930
} // closed Puma
 
8931
 
 
8932
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8933
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
8934
#include "CExprResolveH.ah"
 
8935
#endif
 
8936
namespace Puma {
 
8937
 
 
8938
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8607
8939
class CT_Float : public CT_Expression {
8608
 
#line 8609 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
8940
#line 8941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
8941
  friend class ::CCExprResolve;
 
8942
  friend class ::CExprResolve;
8609
8943
  friend class ::WinIfExists;
8610
8944
  friend class ::WinImportHandler;
8611
8945
  friend class ::WinMacros;
8612
 
  friend class ::CMatchSyntax;
8613
 
  friend class ::ExtGnu;
 
8946
  friend class ::WinAsm;
 
8947
  friend class ::WinDeclSpecs;
 
8948
  friend class ::WinMemberExplSpec;
 
8949
  friend class ::WinTypeKeywords;
 
8950
  friend class ::WinFriend;
8614
8951
  friend class ::ExtAC;
8615
8952
  friend class ::ExtACBuilderCoupling;
8616
8953
  friend class ::ExtACSyntaxCoupling;
8617
8954
  friend class ::ExtACTree;
8618
8955
  friend class ::ExtACKeywords;
8619
 
  friend class ::WinAsm;
8620
 
  friend class ::WinDeclSpecs;
8621
 
  friend class ::WinMemberExplSpec;
8622
 
  friend class ::WinTypeKeywords;
 
8956
  friend class ::ExtGnu;
8623
8957
  friend class ::PragmaOnceUnitState;
8624
8958
  friend class ::PragmaOnce;
8625
 
  friend class ::CCExprResolve;
8626
 
  friend class ::CExprResolve;
 
8959
  friend class ::CMatchSyntax;
8627
8960
 
8628
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8961
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8629
8962
 
8630
8963
  CTree *_value;  // CT_Token
8631
8964
 
8632
8965
public:
8633
 
  CT_Float (CTree *t) : _value (t) {}
 
8966
  /** Constructor.
 
8967
   *  \param token The token containing the floating point value. */
 
8968
  CT_Float (CTree *token) { AddSon (_value, token); }
 
8969
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8634
8970
  static const char *NodeId ();
 
8971
  /** Get the name of the node. Can be compared with NodeId(). */
8635
8972
  const char *NodeName () const { return NodeId (); }
 
8973
  /** Get the number of sons. */
8636
8974
  int Sons () const { return 1; }
 
8975
  /** Get the n-th son.
 
8976
   *  \param n The index of the son.
 
8977
   *  \return The n-th son or NULL. */
8637
8978
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
8979
  /** Replace a son.
 
8980
   *  \param old_son The son to replace.
 
8981
   *  \param new_son The new son. */
8638
8982
  void ReplaceSon (CTree *old_son, CTree *new_son) 
8639
 
   { if (old_son == _value) _value = new_son; }
 
8983
   { CTree::ReplaceSon (_value, old_son, new_son); }
8640
8984
   private:
8641
8985
  typedef CT_Float CCExprResolveExpr;
8642
8986
 
8643
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
8987
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8644
8988
 public :
8645
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
8989
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8646
8990
  typedef CT_Float CExprResolveExpr;
8647
8991
 
8648
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
8992
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8649
8993
 public :
8650
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8651
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
8994
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
8995
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8652
8996
};
8653
8997
 
 
8998
/** \class CT_Bool CTree.h Puma/CTree.h
 
8999
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
8654
9000
 
8655
 
#line 8656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9001
#line 9002 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
8656
9002
} // closed Puma
 
9003
class CCExprResolve;
 
9004
class CExprResolve;
8657
9005
class WinIfExists;
8658
9006
class WinImportHandler;
8659
9007
class WinMacros;
8660
 
class CMatchSyntax;
8661
 
class ExtGnu;
 
9008
class WinAsm;
 
9009
class WinDeclSpecs;
 
9010
class WinMemberExplSpec;
 
9011
class WinTypeKeywords;
 
9012
class WinFriend;
8662
9013
class ExtAC;
8663
9014
class ExtACBuilderCoupling;
8664
9015
class ExtACSyntaxCoupling;
8665
9016
class ExtACTree;
8666
9017
class ExtACKeywords;
8667
 
class WinAsm;
8668
 
class WinDeclSpecs;
8669
 
class WinMemberExplSpec;
8670
 
class WinTypeKeywords;
 
9018
class ExtGnu;
8671
9019
class PragmaOnceUnitState;
8672
9020
class PragmaOnce;
8673
 
class CCExprResolve;
8674
 
class CExprResolve;
8675
 
namespace Puma {
8676
 
 
8677
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9021
class CMatchSyntax;
 
9022
namespace Puma {
 
9023
 
 
9024
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9025
 
 
9026
#line 9027 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9027
} // closed Puma
 
9028
 
 
9029
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9030
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9031
#include "CCExprResolveH.ah"
 
9032
#endif
 
9033
namespace Puma {
 
9034
 
 
9035
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9036
 
 
9037
#line 9038 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9038
} // closed Puma
 
9039
 
 
9040
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9041
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9042
#include "CExprResolveH.ah"
 
9043
#endif
 
9044
namespace Puma {
 
9045
 
 
9046
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8678
9047
class CT_Bool : public CT_Expression {
8679
 
#line 8680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9048
#line 9049 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9049
  friend class ::CCExprResolve;
 
9050
  friend class ::CExprResolve;
8680
9051
  friend class ::WinIfExists;
8681
9052
  friend class ::WinImportHandler;
8682
9053
  friend class ::WinMacros;
8683
 
  friend class ::CMatchSyntax;
8684
 
  friend class ::ExtGnu;
 
9054
  friend class ::WinAsm;
 
9055
  friend class ::WinDeclSpecs;
 
9056
  friend class ::WinMemberExplSpec;
 
9057
  friend class ::WinTypeKeywords;
 
9058
  friend class ::WinFriend;
8685
9059
  friend class ::ExtAC;
8686
9060
  friend class ::ExtACBuilderCoupling;
8687
9061
  friend class ::ExtACSyntaxCoupling;
8688
9062
  friend class ::ExtACTree;
8689
9063
  friend class ::ExtACKeywords;
8690
 
  friend class ::WinAsm;
8691
 
  friend class ::WinDeclSpecs;
8692
 
  friend class ::WinMemberExplSpec;
8693
 
  friend class ::WinTypeKeywords;
 
9064
  friend class ::ExtGnu;
8694
9065
  friend class ::PragmaOnceUnitState;
8695
9066
  friend class ::PragmaOnce;
8696
 
  friend class ::CCExprResolve;
8697
 
  friend class ::CExprResolve;
 
9067
  friend class ::CMatchSyntax;
8698
9068
 
8699
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9069
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8700
9070
 
8701
9071
  CTree *_value;  // CT_Token
8702
9072
 
8703
9073
public:
8704
 
  CT_Bool (CTree *t) : _value (t) {}
 
9074
  /** Constructor.
 
9075
   *  \param token The token containing the boolean value. */
 
9076
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
9077
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8705
9078
  static const char *NodeId ();
 
9079
  /** Get the name of the node. Can be compared with NodeId(). */
8706
9080
  const char *NodeName () const { return NodeId (); }
 
9081
  /** Get the number of sons. */
8707
9082
  int Sons () const { return 1; }
 
9083
  /** Get the n-th son.
 
9084
   *  \param n The index of the son.
 
9085
   *  \return The n-th son or NULL. */
8708
9086
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
9087
  /** Replace a son.
 
9088
   *  \param old_son The son to replace.
 
9089
   *  \param new_son The new son. */
8709
9090
  void ReplaceSon (CTree *old_son, CTree *new_son) 
8710
 
   { if (old_son == _value) _value = new_son; }
 
9091
   { CTree::ReplaceSon (_value, old_son, new_son); }
8711
9092
   private:
8712
9093
  typedef CT_Bool CCExprResolveExpr;
8713
9094
 
8714
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9095
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8715
9096
 public :
8716
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9097
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8717
9098
  typedef CT_Bool CExprResolveExpr;
8718
9099
 
8719
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9100
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8720
9101
 public :
8721
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8722
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9102
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9103
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8723
9104
};
8724
9105
 
 
9106
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
9107
 *  Tree node representing a braced expression, e.g. (a+b). */
8725
9108
 
8726
 
#line 8727 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9109
#line 9110 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
8727
9110
} // closed Puma
 
9111
class CCExprResolve;
 
9112
class CExprResolve;
8728
9113
class WinIfExists;
8729
9114
class WinImportHandler;
8730
9115
class WinMacros;
8731
 
class CMatchSyntax;
8732
 
class ExtGnu;
 
9116
class WinAsm;
 
9117
class WinDeclSpecs;
 
9118
class WinMemberExplSpec;
 
9119
class WinTypeKeywords;
 
9120
class WinFriend;
8733
9121
class ExtAC;
8734
9122
class ExtACBuilderCoupling;
8735
9123
class ExtACSyntaxCoupling;
8736
9124
class ExtACTree;
8737
9125
class ExtACKeywords;
8738
 
class WinAsm;
8739
 
class WinDeclSpecs;
8740
 
class WinMemberExplSpec;
8741
 
class WinTypeKeywords;
 
9126
class ExtGnu;
8742
9127
class PragmaOnceUnitState;
8743
9128
class PragmaOnce;
8744
 
class CCExprResolve;
8745
 
class CExprResolve;
8746
 
namespace Puma {
8747
 
 
8748
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9129
class CMatchSyntax;
 
9130
namespace Puma {
 
9131
 
 
9132
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9133
 
 
9134
#line 9135 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9135
} // closed Puma
 
9136
 
 
9137
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9138
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9139
#include "CCExprResolveH.ah"
 
9140
#endif
 
9141
namespace Puma {
 
9142
 
 
9143
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9144
 
 
9145
#line 9146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9146
} // closed Puma
 
9147
 
 
9148
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9149
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9150
#include "CExprResolveH.ah"
 
9151
#endif
 
9152
namespace Puma {
 
9153
 
 
9154
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8749
9155
class CT_BracedExpr : public CT_Expression {
8750
 
#line 8751 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9156
#line 9157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9157
  friend class ::CCExprResolve;
 
9158
  friend class ::CExprResolve;
8751
9159
  friend class ::WinIfExists;
8752
9160
  friend class ::WinImportHandler;
8753
9161
  friend class ::WinMacros;
8754
 
  friend class ::CMatchSyntax;
8755
 
  friend class ::ExtGnu;
 
9162
  friend class ::WinAsm;
 
9163
  friend class ::WinDeclSpecs;
 
9164
  friend class ::WinMemberExplSpec;
 
9165
  friend class ::WinTypeKeywords;
 
9166
  friend class ::WinFriend;
8756
9167
  friend class ::ExtAC;
8757
9168
  friend class ::ExtACBuilderCoupling;
8758
9169
  friend class ::ExtACSyntaxCoupling;
8759
9170
  friend class ::ExtACTree;
8760
9171
  friend class ::ExtACKeywords;
8761
 
  friend class ::WinAsm;
8762
 
  friend class ::WinDeclSpecs;
8763
 
  friend class ::WinMemberExplSpec;
8764
 
  friend class ::WinTypeKeywords;
 
9172
  friend class ::ExtGnu;
8765
9173
  friend class ::PragmaOnceUnitState;
8766
9174
  friend class ::PragmaOnce;
8767
 
  friend class ::CCExprResolve;
8768
 
  friend class ::CExprResolve;
 
9175
  friend class ::CMatchSyntax;
8769
9176
 
8770
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9177
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8771
9178
 
8772
9179
  CTree *sons[3]; // open, expr, close
8773
9180
 
8774
9181
public:
 
9182
  /** Constructor.
 
9183
   *  \param o The opening brace.
 
9184
   *  \param e The enclosed expression.
 
9185
   *  \param c The closing brace. */
8775
9186
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
8776
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
9187
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
8777
9188
  }
 
9189
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8778
9190
  static const char *NodeId ();
 
9191
  /** Get the name of the node. Can be compared with NodeId(). */
8779
9192
  const char *NodeName () const { return NodeId (); }
 
9193
  /** Get the number of sons. */
8780
9194
  int Sons () const { return 3; }
 
9195
  /** Get the n-th son.
 
9196
   *  \param n The index of the son.
 
9197
   *  \return The n-th son or NULL. */
8781
9198
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
9199
  /** Get the enclosed expression. */
8782
9200
  CTree *Expr () const { return sons[1]; }
 
9201
  /** Get the type of the enclosed expression. */
8783
9202
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
9203
  /** Get the value of the enclosed expression. */
8784
9204
  CExprValue *Value () const { return Expr ()->Value (); }
 
9205
  /** Get the semantic value object. */
8785
9206
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
9207
  /** Replace a son.
 
9208
   *  \param old_son The son to replace.
 
9209
   *  \param new_son The new son. */
8786
9210
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
8787
9211
    CTree::ReplaceSon (sons, 3, old_son, new_son);
8788
9212
  }
8789
9213
   private:
8790
9214
  typedef CT_BracedExpr CCExprResolveExpr;
8791
9215
 
8792
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9216
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8793
9217
 public :
8794
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9218
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8795
9219
  typedef CT_BracedExpr CExprResolveExpr;
8796
9220
 
8797
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9221
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8798
9222
 public :
8799
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8800
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9223
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9224
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8801
9225
};
8802
9226
 
 
9227
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
9228
 *  Base class for all tree nodes representing a name. */
8803
9229
 
8804
 
#line 8805 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9230
#line 9231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
8805
9231
} // closed Puma
 
9232
class CCExprResolve;
 
9233
class CExprResolve;
8806
9234
class WinIfExists;
8807
9235
class WinImportHandler;
8808
9236
class WinMacros;
8809
 
class CMatchSyntax;
8810
 
class ExtGnu;
 
9237
class WinAsm;
 
9238
class WinDeclSpecs;
 
9239
class WinMemberExplSpec;
 
9240
class WinTypeKeywords;
 
9241
class WinFriend;
8811
9242
class ExtAC;
8812
9243
class ExtACBuilderCoupling;
8813
9244
class ExtACSyntaxCoupling;
8814
9245
class ExtACTree;
8815
9246
class ExtACKeywords;
8816
 
class WinAsm;
8817
 
class WinDeclSpecs;
8818
 
class WinMemberExplSpec;
8819
 
class WinTypeKeywords;
 
9247
class ExtGnu;
8820
9248
class PragmaOnceUnitState;
8821
9249
class PragmaOnce;
8822
 
class CCExprResolve;
8823
 
class CExprResolve;
8824
 
namespace Puma {
8825
 
 
8826
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9250
class CMatchSyntax;
 
9251
namespace Puma {
 
9252
 
 
9253
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9254
 
 
9255
#line 9256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9256
} // closed Puma
 
9257
 
 
9258
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9259
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9260
#include "CCExprResolveH.ah"
 
9261
#endif
 
9262
namespace Puma {
 
9263
 
 
9264
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9265
 
 
9266
#line 9267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9267
} // closed Puma
 
9268
 
 
9269
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9270
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9271
#include "CExprResolveH.ah"
 
9272
#endif
 
9273
namespace Puma {
 
9274
 
 
9275
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8827
9276
class CT_SimpleName : public CT_List, public Printable, 
8828
9277
                      public CSemValue, public CSemObject {
8829
 
#line 8830 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9278
#line 9279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9279
  friend class ::CCExprResolve;
 
9280
  friend class ::CExprResolve;
8830
9281
  friend class ::WinIfExists;
8831
9282
  friend class ::WinImportHandler;
8832
9283
  friend class ::WinMacros;
8833
 
  friend class ::CMatchSyntax;
8834
 
  friend class ::ExtGnu;
 
9284
  friend class ::WinAsm;
 
9285
  friend class ::WinDeclSpecs;
 
9286
  friend class ::WinMemberExplSpec;
 
9287
  friend class ::WinTypeKeywords;
 
9288
  friend class ::WinFriend;
8835
9289
  friend class ::ExtAC;
8836
9290
  friend class ::ExtACBuilderCoupling;
8837
9291
  friend class ::ExtACSyntaxCoupling;
8838
9292
  friend class ::ExtACTree;
8839
9293
  friend class ::ExtACKeywords;
8840
 
  friend class ::WinAsm;
8841
 
  friend class ::WinDeclSpecs;
8842
 
  friend class ::WinMemberExplSpec;
8843
 
  friend class ::WinTypeKeywords;
 
9294
  friend class ::ExtGnu;
8844
9295
  friend class ::PragmaOnceUnitState;
8845
9296
  friend class ::PragmaOnce;
8846
 
  friend class ::CCExprResolve;
8847
 
  friend class ::CExprResolve;
 
9297
  friend class ::CMatchSyntax;
8848
9298
 
8849
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9299
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8850
9300
 
8851
9301
protected:
 
9302
  /** Constructor.
 
9303
   *  \param size The number of sub-names (for qualified names). */
8852
9304
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
9305
  /** Constructor.
 
9306
   *  \param size The number of sub-names (for qualified names). 
 
9307
   *  \param properties Additional name list properties (for root qualified names). */
8853
9308
  CT_SimpleName (int size, int properties) : 
8854
9309
    CT_List (size, 2, properties) {}
8855
9310
  
8856
9311
public:
 
9312
  /** Constructor.
 
9313
   *  \param n The sub-tree containing the name. */
8857
9314
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
9315
  /** Get the identifier for this node type. Can be compared with NodeName(). */
8858
9316
  static const char *NodeId ();
 
9317
  /** Get the name of the node. Can be compared with NodeId(). */
8859
9318
  const char *NodeName () const { return NodeId (); }
 
9319
  /** Get the string containing the name. */
8860
9320
  virtual const char *Text () const 
8861
9321
   { return Son (Sons ()-1)->token ()->text (); }
 
9322
  /** Print the name on the given stream. 
 
9323
   *  \param os The output stream. */
8862
9324
  virtual void print (ostream &os) const { os << Text (); }
 
9325
  /** Get this. */
8863
9326
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
9327
  /** Get the type of the entity represented by the name. */
8864
9328
  CTypeInfo *Type () const { return type; }
 
9329
  /** Get the value of the entity represented by the name. */ 
8865
9330
  CExprValue *Value () const { return value; }
 
9331
  /** Get the sematic value information object. */
8866
9332
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
9333
  /** Get the sematic information object. */
8867
9334
  CSemObject *SemObject () const { return (CSemObject*)this; }
8868
 
  // special new / delete with reusing memory
8869
 
  void *operator new (size_t);
8870
 
  void  operator delete (void *);
8871
 
  // classification function
 
9335
  /** Get this. */
8872
9336
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
9337
 
 
9338
public:
 
9339
  /** Own new operator reusing memory. */
 
9340
  void *operator new (size_t);
 
9341
  /** Own delete operator. */
 
9342
  void operator delete (void *);
8873
9343
   private:
8874
9344
  typedef CT_SimpleName CCExprResolveExpr;
8875
9345
 
8876
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9346
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8877
9347
 public :
8878
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9348
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8879
9349
  typedef CT_SimpleName CExprResolveExpr;
8880
9350
 
8881
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9351
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8882
9352
 public :
8883
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8884
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9353
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9354
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8885
9355
};
8886
9356
 
 
9357
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
9358
 *  Base class for tree nodes representing a special name, like destructor names. */
8887
9359
 
8888
 
#line 8889 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9360
#line 9361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
8889
9361
} // closed Puma
 
9362
class CCExprResolve;
 
9363
class CExprResolve;
8890
9364
class WinIfExists;
8891
9365
class WinImportHandler;
8892
9366
class WinMacros;
8893
 
class CMatchSyntax;
8894
 
class ExtGnu;
 
9367
class WinAsm;
 
9368
class WinDeclSpecs;
 
9369
class WinMemberExplSpec;
 
9370
class WinTypeKeywords;
 
9371
class WinFriend;
8895
9372
class ExtAC;
8896
9373
class ExtACBuilderCoupling;
8897
9374
class ExtACSyntaxCoupling;
8898
9375
class ExtACTree;
8899
9376
class ExtACKeywords;
8900
 
class WinAsm;
8901
 
class WinDeclSpecs;
8902
 
class WinMemberExplSpec;
8903
 
class WinTypeKeywords;
 
9377
class ExtGnu;
8904
9378
class PragmaOnceUnitState;
8905
9379
class PragmaOnce;
8906
 
class CCExprResolve;
8907
 
class CExprResolve;
8908
 
namespace Puma {
8909
 
 
8910
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9380
class CMatchSyntax;
 
9381
namespace Puma {
 
9382
 
 
9383
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9384
 
 
9385
#line 9386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9386
} // closed Puma
 
9387
 
 
9388
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9389
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9390
#include "CCExprResolveH.ah"
 
9391
#endif
 
9392
namespace Puma {
 
9393
 
 
9394
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9395
 
 
9396
#line 9397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9397
} // closed Puma
 
9398
 
 
9399
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9400
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9401
#include "CExprResolveH.ah"
 
9402
#endif
 
9403
namespace Puma {
 
9404
 
 
9405
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8911
9406
class CT_SpecialName : public CT_SimpleName {
8912
 
#line 8913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9407
#line 9408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9408
  friend class ::CCExprResolve;
 
9409
  friend class ::CExprResolve;
8913
9410
  friend class ::WinIfExists;
8914
9411
  friend class ::WinImportHandler;
8915
9412
  friend class ::WinMacros;
8916
 
  friend class ::CMatchSyntax;
8917
 
  friend class ::ExtGnu;
 
9413
  friend class ::WinAsm;
 
9414
  friend class ::WinDeclSpecs;
 
9415
  friend class ::WinMemberExplSpec;
 
9416
  friend class ::WinTypeKeywords;
 
9417
  friend class ::WinFriend;
8918
9418
  friend class ::ExtAC;
8919
9419
  friend class ::ExtACBuilderCoupling;
8920
9420
  friend class ::ExtACSyntaxCoupling;
8921
9421
  friend class ::ExtACTree;
8922
9422
  friend class ::ExtACKeywords;
8923
 
  friend class ::WinAsm;
8924
 
  friend class ::WinDeclSpecs;
8925
 
  friend class ::WinMemberExplSpec;
8926
 
  friend class ::WinTypeKeywords;
 
9423
  friend class ::ExtGnu;
8927
9424
  friend class ::PragmaOnceUnitState;
8928
9425
  friend class ::PragmaOnce;
8929
 
  friend class ::CCExprResolve;
8930
 
  friend class ::CExprResolve;
 
9426
  friend class ::CMatchSyntax;
8931
9427
 
8932
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9428
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8933
9429
 
8934
9430
  char *_name;
8935
9431
  
8936
9432
protected:
 
9433
  /** Constructor.
 
9434
   *  \param size The number of sub-names (for qualified names). */
8937
9435
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
8938
9436
  
8939
9437
public:
 
9438
  /** Destructor. Deletes the name string. */
8940
9439
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
9440
  /** Get the string containing the name. */
8941
9441
  const char *Text () const { return _name; }
 
9442
  /** Set the name. The name is copied.
 
9443
   *  \param n The name. */
8942
9444
  void Name (const char *n) { 
8943
9445
    if (n) { 
8944
9446
      _name = new char[strlen(n) + 1];
8945
9447
      strcpy (_name,n);
8946
9448
    }
8947
9449
  }
8948
 
  // special new / delete with reusing memory
 
9450
 
 
9451
public:
 
9452
  /** Own new operator reusing memory. */
8949
9453
  void *operator new (size_t);
8950
 
  void  operator delete (void *);
 
9454
  /** Own delete operator. */
 
9455
  void operator delete (void *);
8951
9456
   private:
8952
9457
  typedef CT_SpecialName CCExprResolveExpr;
8953
9458
 
8954
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9459
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
8955
9460
 public :
8956
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9461
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
8957
9462
  typedef CT_SpecialName CExprResolveExpr;
8958
9463
 
8959
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9464
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
8960
9465
 public :
8961
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
8962
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9466
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9467
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8963
9468
};
8964
9469
 
 
9470
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
9471
 *  Tree node representing a private name. Private names 
 
9472
 *  are generated names for abstract declarators etc. */
8965
9473
 
8966
 
#line 8967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9474
#line 9475 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
8967
9475
} // closed Puma
 
9476
class CCExprResolve;
 
9477
class CExprResolve;
8968
9478
class WinIfExists;
8969
9479
class WinImportHandler;
8970
9480
class WinMacros;
8971
 
class CMatchSyntax;
8972
 
class ExtGnu;
 
9481
class WinAsm;
 
9482
class WinDeclSpecs;
 
9483
class WinMemberExplSpec;
 
9484
class WinTypeKeywords;
 
9485
class WinFriend;
8973
9486
class ExtAC;
8974
9487
class ExtACBuilderCoupling;
8975
9488
class ExtACSyntaxCoupling;
8976
9489
class ExtACTree;
8977
9490
class ExtACKeywords;
8978
 
class WinAsm;
8979
 
class WinDeclSpecs;
8980
 
class WinMemberExplSpec;
8981
 
class WinTypeKeywords;
 
9491
class ExtGnu;
8982
9492
class PragmaOnceUnitState;
8983
9493
class PragmaOnce;
8984
 
class CCExprResolve;
8985
 
class CExprResolve;
8986
 
namespace Puma {
8987
 
 
8988
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9494
class CMatchSyntax;
 
9495
namespace Puma {
 
9496
 
 
9497
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9498
 
 
9499
#line 9500 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9500
} // closed Puma
 
9501
 
 
9502
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9503
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9504
#include "CCExprResolveH.ah"
 
9505
#endif
 
9506
namespace Puma {
 
9507
 
 
9508
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9509
 
 
9510
#line 9511 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9511
} // closed Puma
 
9512
 
 
9513
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9514
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9515
#include "CExprResolveH.ah"
 
9516
#endif
 
9517
namespace Puma {
 
9518
 
 
9519
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
8989
9520
class CT_PrivateName : public CT_SpecialName {
8990
 
#line 8991 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9521
#line 9522 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9522
  friend class ::CCExprResolve;
 
9523
  friend class ::CExprResolve;
8991
9524
  friend class ::WinIfExists;
8992
9525
  friend class ::WinImportHandler;
8993
9526
  friend class ::WinMacros;
8994
 
  friend class ::CMatchSyntax;
8995
 
  friend class ::ExtGnu;
 
9527
  friend class ::WinAsm;
 
9528
  friend class ::WinDeclSpecs;
 
9529
  friend class ::WinMemberExplSpec;
 
9530
  friend class ::WinTypeKeywords;
 
9531
  friend class ::WinFriend;
8996
9532
  friend class ::ExtAC;
8997
9533
  friend class ::ExtACBuilderCoupling;
8998
9534
  friend class ::ExtACSyntaxCoupling;
8999
9535
  friend class ::ExtACTree;
9000
9536
  friend class ::ExtACKeywords;
9001
 
  friend class ::WinAsm;
9002
 
  friend class ::WinDeclSpecs;
9003
 
  friend class ::WinMemberExplSpec;
9004
 
  friend class ::WinTypeKeywords;
 
9537
  friend class ::ExtGnu;
9005
9538
  friend class ::PragmaOnceUnitState;
9006
9539
  friend class ::PragmaOnce;
9007
 
  friend class ::CCExprResolve;
9008
 
  friend class ::CExprResolve;
 
9540
  friend class ::CMatchSyntax;
9009
9541
 
9010
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9542
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9011
9543
 
9012
9544
public:
 
9545
  /** Constructor.
 
9546
   *  \param n The private (generated) name. */
9013
9547
  CT_PrivateName (const char *n) { Name (n); }
 
9548
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9014
9549
  static const char *NodeId ();
 
9550
  /** Get the name of the node. Can be compared with NodeId(). */
9015
9551
  const char *NodeName () const { return NodeId (); }
 
9552
  /** Get the number of sons. */
9016
9553
  int Sons () const { return 0; }
 
9554
  /** Get the n-th son.
 
9555
   *  \param n The index of the son.
 
9556
   *  \return The n-th son or NULL. */
9017
9557
  CTree *Son (int n) const { return (CTree*)0; }
9018
 
  // special new / delete with reusing memory
 
9558
 
 
9559
public:
 
9560
  /** Own new operator reusing memory. */
9019
9561
  void *operator new (size_t);
9020
 
  void  operator delete (void *);
 
9562
  /** Own delete operator. */
 
9563
  void operator delete (void *);
9021
9564
   private:
9022
9565
  typedef CT_PrivateName CCExprResolveExpr;
9023
9566
 
9024
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9567
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9025
9568
 public :
9026
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9569
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9027
9570
  typedef CT_PrivateName CExprResolveExpr;
9028
9571
 
9029
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9572
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9030
9573
 public :
9031
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9032
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9574
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9575
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9033
9576
};
9034
9577
 
 
9578
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
9579
 *  Tree node representing a destructor name. */
9035
9580
 
9036
 
#line 9037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9581
#line 9582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
9037
9582
} // closed Puma
 
9583
class CCExprResolve;
 
9584
class CExprResolve;
9038
9585
class WinIfExists;
9039
9586
class WinImportHandler;
9040
9587
class WinMacros;
9041
 
class CMatchSyntax;
9042
 
class ExtGnu;
 
9588
class WinAsm;
 
9589
class WinDeclSpecs;
 
9590
class WinMemberExplSpec;
 
9591
class WinTypeKeywords;
 
9592
class WinFriend;
9043
9593
class ExtAC;
9044
9594
class ExtACBuilderCoupling;
9045
9595
class ExtACSyntaxCoupling;
9046
9596
class ExtACTree;
9047
9597
class ExtACKeywords;
9048
 
class WinAsm;
9049
 
class WinDeclSpecs;
9050
 
class WinMemberExplSpec;
9051
 
class WinTypeKeywords;
 
9598
class ExtGnu;
9052
9599
class PragmaOnceUnitState;
9053
9600
class PragmaOnce;
9054
 
class CCExprResolve;
9055
 
class CExprResolve;
9056
 
namespace Puma {
9057
 
 
9058
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9601
class CMatchSyntax;
 
9602
namespace Puma {
 
9603
 
 
9604
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9605
 
 
9606
#line 9607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9607
} // closed Puma
 
9608
 
 
9609
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9610
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9611
#include "CCExprResolveH.ah"
 
9612
#endif
 
9613
namespace Puma {
 
9614
 
 
9615
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9616
 
 
9617
#line 9618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9618
} // closed Puma
 
9619
 
 
9620
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9621
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9622
#include "CExprResolveH.ah"
 
9623
#endif
 
9624
namespace Puma {
 
9625
 
 
9626
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9059
9627
class CT_DestructorName : public CT_SpecialName {
9060
 
#line 9061 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9628
#line 9629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9629
  friend class ::CCExprResolve;
 
9630
  friend class ::CExprResolve;
9061
9631
  friend class ::WinIfExists;
9062
9632
  friend class ::WinImportHandler;
9063
9633
  friend class ::WinMacros;
9064
 
  friend class ::CMatchSyntax;
9065
 
  friend class ::ExtGnu;
 
9634
  friend class ::WinAsm;
 
9635
  friend class ::WinDeclSpecs;
 
9636
  friend class ::WinMemberExplSpec;
 
9637
  friend class ::WinTypeKeywords;
 
9638
  friend class ::WinFriend;
9066
9639
  friend class ::ExtAC;
9067
9640
  friend class ::ExtACBuilderCoupling;
9068
9641
  friend class ::ExtACSyntaxCoupling;
9069
9642
  friend class ::ExtACTree;
9070
9643
  friend class ::ExtACKeywords;
9071
 
  friend class ::WinAsm;
9072
 
  friend class ::WinDeclSpecs;
9073
 
  friend class ::WinMemberExplSpec;
9074
 
  friend class ::WinTypeKeywords;
 
9644
  friend class ::ExtGnu;
9075
9645
  friend class ::PragmaOnceUnitState;
9076
9646
  friend class ::PragmaOnce;
9077
 
  friend class ::CCExprResolve;
9078
 
  friend class ::CExprResolve;
 
9647
  friend class ::CMatchSyntax;
9079
9648
 
9080
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9649
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9081
9650
 
9082
9651
public:
9083
 
  CT_DestructorName (CTree *, CTree *);
 
9652
  /** Constructor.
 
9653
   *  \param t The tilde operator.
 
9654
   *  \param n The class name. */
 
9655
  CT_DestructorName (CTree *t, CTree *n);
 
9656
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9084
9657
  static const char *NodeId ();
 
9658
  /** Get the name of the node. Can be compared with NodeId(). */
9085
9659
  const char *NodeName () const { return NodeId (); }
9086
 
  // special new / delete with reusing memory
 
9660
 
 
9661
public:
 
9662
  /** Own new operator reusing memory. */
9087
9663
  void *operator new (size_t);
9088
 
  void  operator delete (void *);
 
9664
  /** Own delete operator. */
 
9665
  void operator delete (void *);
9089
9666
   private:
9090
9667
  typedef CT_DestructorName CCExprResolveExpr;
9091
9668
 
9092
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9669
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9093
9670
 public :
9094
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9671
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9095
9672
  typedef CT_DestructorName CExprResolveExpr;
9096
9673
 
9097
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9674
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9098
9675
 public :
9099
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9100
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9676
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9677
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9101
9678
};
9102
9679
 
 
9680
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
9681
 *  Tree node representing a template name. */
9103
9682
 
9104
 
#line 9105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9683
#line 9684 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
9105
9684
} // closed Puma
 
9685
class CCExprResolve;
 
9686
class CExprResolve;
9106
9687
class WinIfExists;
9107
9688
class WinImportHandler;
9108
9689
class WinMacros;
9109
 
class CMatchSyntax;
9110
 
class ExtGnu;
 
9690
class WinAsm;
 
9691
class WinDeclSpecs;
 
9692
class WinMemberExplSpec;
 
9693
class WinTypeKeywords;
 
9694
class WinFriend;
9111
9695
class ExtAC;
9112
9696
class ExtACBuilderCoupling;
9113
9697
class ExtACSyntaxCoupling;
9114
9698
class ExtACTree;
9115
9699
class ExtACKeywords;
9116
 
class WinAsm;
9117
 
class WinDeclSpecs;
9118
 
class WinMemberExplSpec;
9119
 
class WinTypeKeywords;
 
9700
class ExtGnu;
9120
9701
class PragmaOnceUnitState;
9121
9702
class PragmaOnce;
9122
 
class CCExprResolve;
9123
 
class CExprResolve;
9124
 
namespace Puma {
9125
 
 
9126
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9703
class CMatchSyntax;
 
9704
namespace Puma {
 
9705
 
 
9706
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9707
 
 
9708
#line 9709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9709
} // closed Puma
 
9710
 
 
9711
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9712
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9713
#include "CCExprResolveH.ah"
 
9714
#endif
 
9715
namespace Puma {
 
9716
 
 
9717
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9718
 
 
9719
#line 9720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9720
} // closed Puma
 
9721
 
 
9722
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9723
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9724
#include "CExprResolveH.ah"
 
9725
#endif
 
9726
namespace Puma {
 
9727
 
 
9728
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9127
9729
class CT_TemplateName : public CT_SpecialName {
9128
 
#line 9129 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9730
#line 9731 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9731
  friend class ::CCExprResolve;
 
9732
  friend class ::CExprResolve;
9129
9733
  friend class ::WinIfExists;
9130
9734
  friend class ::WinImportHandler;
9131
9735
  friend class ::WinMacros;
9132
 
  friend class ::CMatchSyntax;
9133
 
  friend class ::ExtGnu;
 
9736
  friend class ::WinAsm;
 
9737
  friend class ::WinDeclSpecs;
 
9738
  friend class ::WinMemberExplSpec;
 
9739
  friend class ::WinTypeKeywords;
 
9740
  friend class ::WinFriend;
9134
9741
  friend class ::ExtAC;
9135
9742
  friend class ::ExtACBuilderCoupling;
9136
9743
  friend class ::ExtACSyntaxCoupling;
9137
9744
  friend class ::ExtACTree;
9138
9745
  friend class ::ExtACKeywords;
9139
 
  friend class ::WinAsm;
9140
 
  friend class ::WinDeclSpecs;
9141
 
  friend class ::WinMemberExplSpec;
9142
 
  friend class ::WinTypeKeywords;
 
9746
  friend class ::ExtGnu;
9143
9747
  friend class ::PragmaOnceUnitState;
9144
9748
  friend class ::PragmaOnce;
9145
 
  friend class ::CCExprResolve;
9146
 
  friend class ::CExprResolve;
 
9749
  friend class ::CMatchSyntax;
9147
9750
 
9148
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9751
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9149
9752
 
9150
9753
public:
 
9754
  /** Constructor.
 
9755
   *  \param n The template class or function name.
 
9756
   *  \param a The template argument list. */
9151
9757
  CT_TemplateName (CTree *n, CTree *a) 
9152
9758
   { AddSon (n); AddSon (a); }
 
9759
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9153
9760
  static const char *NodeId ();
 
9761
  /** Get the name of the node. Can be compared with NodeId(). */
9154
9762
  const char *NodeName () const { return NodeId (); }
 
9763
  /** Get the template argument list. */
9155
9764
  CT_TemplateArgList *Arguments () const 
9156
9765
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
9766
  /** Get the template class or function name. */
9157
9767
  CT_SimpleName *TemplateName () const 
9158
9768
   { return (CT_SimpleName*)Son (Sons ()-2); }
9159
9769
  // may change in the future
9160
9770
  const char *Text () const { return TemplateName ()->Text (); }
9161
 
  // special new / delete with reusing memory
 
9771
 
 
9772
public:
 
9773
  /** Own new operator reusing memory. */
9162
9774
  void *operator new (size_t);
9163
 
  void  operator delete (void *);
 
9775
  /** Own delete operator. */
 
9776
  void operator delete (void *);
9164
9777
   private:
9165
9778
  typedef CT_TemplateName CCExprResolveExpr;
9166
9779
 
9167
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9780
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9168
9781
 public :
9169
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9782
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9170
9783
  typedef CT_TemplateName CExprResolveExpr;
9171
9784
 
9172
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9785
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9173
9786
 public :
9174
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9175
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9787
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9788
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9176
9789
};
9177
9790
 
 
9791
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
9792
 *  Tree node representing the name of an overloaded operator. */
9178
9793
 
9179
 
#line 9180 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9794
#line 9795 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
9180
9795
} // closed Puma
 
9796
class CCExprResolve;
 
9797
class CExprResolve;
9181
9798
class WinIfExists;
9182
9799
class WinImportHandler;
9183
9800
class WinMacros;
9184
 
class CMatchSyntax;
9185
 
class ExtGnu;
 
9801
class WinAsm;
 
9802
class WinDeclSpecs;
 
9803
class WinMemberExplSpec;
 
9804
class WinTypeKeywords;
 
9805
class WinFriend;
9186
9806
class ExtAC;
9187
9807
class ExtACBuilderCoupling;
9188
9808
class ExtACSyntaxCoupling;
9189
9809
class ExtACTree;
9190
9810
class ExtACKeywords;
9191
 
class WinAsm;
9192
 
class WinDeclSpecs;
9193
 
class WinMemberExplSpec;
9194
 
class WinTypeKeywords;
 
9811
class ExtGnu;
9195
9812
class PragmaOnceUnitState;
9196
9813
class PragmaOnce;
9197
 
class CCExprResolve;
9198
 
class CExprResolve;
9199
 
namespace Puma {
9200
 
 
9201
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9814
class CMatchSyntax;
 
9815
namespace Puma {
 
9816
 
 
9817
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9818
 
 
9819
#line 9820 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9820
} // closed Puma
 
9821
 
 
9822
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9823
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9824
#include "CCExprResolveH.ah"
 
9825
#endif
 
9826
namespace Puma {
 
9827
 
 
9828
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9829
 
 
9830
#line 9831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9831
} // closed Puma
 
9832
 
 
9833
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9834
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9835
#include "CExprResolveH.ah"
 
9836
#endif
 
9837
namespace Puma {
 
9838
 
 
9839
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9202
9840
class CT_OperatorName : public CT_SpecialName {
9203
 
#line 9204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9841
#line 9842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9842
  friend class ::CCExprResolve;
 
9843
  friend class ::CExprResolve;
9204
9844
  friend class ::WinIfExists;
9205
9845
  friend class ::WinImportHandler;
9206
9846
  friend class ::WinMacros;
9207
 
  friend class ::CMatchSyntax;
9208
 
  friend class ::ExtGnu;
 
9847
  friend class ::WinAsm;
 
9848
  friend class ::WinDeclSpecs;
 
9849
  friend class ::WinMemberExplSpec;
 
9850
  friend class ::WinTypeKeywords;
 
9851
  friend class ::WinFriend;
9209
9852
  friend class ::ExtAC;
9210
9853
  friend class ::ExtACBuilderCoupling;
9211
9854
  friend class ::ExtACSyntaxCoupling;
9212
9855
  friend class ::ExtACTree;
9213
9856
  friend class ::ExtACKeywords;
9214
 
  friend class ::WinAsm;
9215
 
  friend class ::WinDeclSpecs;
9216
 
  friend class ::WinMemberExplSpec;
9217
 
  friend class ::WinTypeKeywords;
 
9857
  friend class ::ExtGnu;
9218
9858
  friend class ::PragmaOnceUnitState;
9219
9859
  friend class ::PragmaOnce;
9220
 
  friend class ::CCExprResolve;
9221
 
  friend class ::CExprResolve;
 
9860
  friend class ::CMatchSyntax;
9222
9861
 
9223
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9862
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9224
9863
 
9225
9864
  int _oper;
9226
9865
 
9227
9866
public:
9228
 
  enum { // complex operators
9229
 
    FCT_CALL = -100,
9230
 
    SUBSCRIPT,
9231
 
    NEW_ARRAY,
9232
 
    DEL_ARRAY
 
9867
  /** Complex operator types. */
 
9868
  enum { 
 
9869
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
9870
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
9871
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
9872
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
9233
9873
  };
9234
9874
 
9235
9875
public:
9236
 
  CT_OperatorName (CTree *);
9237
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
9876
  /** Constructor.
 
9877
   *  \param op The token containing the operator. */
 
9878
  CT_OperatorName (CTree *op);
 
9879
  /** Constructor.
 
9880
   *  \param f The operator function keyword 'operator'.
 
9881
   *  \param op The token containing the operator. 
 
9882
   *  \param o The token of '[' or '('.
 
9883
   *  \param c The token of ']' or ')'. */
 
9884
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
9885
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9238
9886
  static const char *NodeId ();
 
9887
  /** Get the name of the node. Can be compared with NodeId(). */
9239
9888
  const char *NodeName () const { return NodeId (); }
 
9889
  /** Get the operator type (either the token type or one of 
 
9890
   *  the complex operator types). */
9240
9891
  int Operator () const { return _oper; }
9241
 
  // special new / delete with reusing memory
 
9892
 
 
9893
public:
 
9894
  /** Own new operator reusing memory. */
9242
9895
  void *operator new (size_t);
9243
 
  void  operator delete (void *);
 
9896
  /** Own delete operator. */
 
9897
  void operator delete (void *);
9244
9898
   private:
9245
9899
  typedef CT_OperatorName CCExprResolveExpr;
9246
9900
 
9247
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
9901
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9248
9902
 public :
9249
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
9903
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9250
9904
  typedef CT_OperatorName CExprResolveExpr;
9251
9905
 
9252
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
9906
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9253
9907
 public :
9254
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9255
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9908
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
9909
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9256
9910
};
9257
9911
 
 
9912
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
9913
 *  Tree node representing the name of a conversion function. */
9258
9914
 
9259
 
#line 9260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9915
#line 9916 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
9260
9916
} // closed Puma
 
9917
class CCExprResolve;
 
9918
class CExprResolve;
9261
9919
class WinIfExists;
9262
9920
class WinImportHandler;
9263
9921
class WinMacros;
9264
 
class CMatchSyntax;
9265
 
class ExtGnu;
 
9922
class WinAsm;
 
9923
class WinDeclSpecs;
 
9924
class WinMemberExplSpec;
 
9925
class WinTypeKeywords;
 
9926
class WinFriend;
9266
9927
class ExtAC;
9267
9928
class ExtACBuilderCoupling;
9268
9929
class ExtACSyntaxCoupling;
9269
9930
class ExtACTree;
9270
9931
class ExtACKeywords;
9271
 
class WinAsm;
9272
 
class WinDeclSpecs;
9273
 
class WinMemberExplSpec;
9274
 
class WinTypeKeywords;
 
9932
class ExtGnu;
9275
9933
class PragmaOnceUnitState;
9276
9934
class PragmaOnce;
9277
 
class CCExprResolve;
9278
 
class CExprResolve;
9279
 
namespace Puma {
9280
 
 
9281
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9935
class CMatchSyntax;
 
9936
namespace Puma {
 
9937
 
 
9938
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9939
 
 
9940
#line 9941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9941
} // closed Puma
 
9942
 
 
9943
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9944
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
9945
#include "CCExprResolveH.ah"
 
9946
#endif
 
9947
namespace Puma {
 
9948
 
 
9949
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9950
 
 
9951
#line 9952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9952
} // closed Puma
 
9953
 
 
9954
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9955
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
9956
#include "CExprResolveH.ah"
 
9957
#endif
 
9958
namespace Puma {
 
9959
 
 
9960
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9282
9961
class CT_ConversionName : public CT_SpecialName {
9283
 
#line 9284 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
9962
#line 9963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
9963
  friend class ::CCExprResolve;
 
9964
  friend class ::CExprResolve;
9284
9965
  friend class ::WinIfExists;
9285
9966
  friend class ::WinImportHandler;
9286
9967
  friend class ::WinMacros;
9287
 
  friend class ::CMatchSyntax;
9288
 
  friend class ::ExtGnu;
 
9968
  friend class ::WinAsm;
 
9969
  friend class ::WinDeclSpecs;
 
9970
  friend class ::WinMemberExplSpec;
 
9971
  friend class ::WinTypeKeywords;
 
9972
  friend class ::WinFriend;
9289
9973
  friend class ::ExtAC;
9290
9974
  friend class ::ExtACBuilderCoupling;
9291
9975
  friend class ::ExtACSyntaxCoupling;
9292
9976
  friend class ::ExtACTree;
9293
9977
  friend class ::ExtACKeywords;
9294
 
  friend class ::WinAsm;
9295
 
  friend class ::WinDeclSpecs;
9296
 
  friend class ::WinMemberExplSpec;
9297
 
  friend class ::WinTypeKeywords;
 
9978
  friend class ::ExtGnu;
9298
9979
  friend class ::PragmaOnceUnitState;
9299
9980
  friend class ::PragmaOnce;
9300
 
  friend class ::CCExprResolve;
9301
 
  friend class ::CExprResolve;
 
9981
  friend class ::CMatchSyntax;
9302
9982
 
9303
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
9983
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9304
9984
 
9305
9985
public:
9306
 
  CT_ConversionName (CTree *, CTree *);
 
9986
  /** Constructor.
 
9987
   *  \param f The operator function keyword 'operator'.
 
9988
   *  \param t The sub-tree containing the conversion type. */
 
9989
  CT_ConversionName (CTree *f, CTree *t);
 
9990
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9307
9991
  static const char *NodeId ();
 
9992
  /** Get the name of the node. Can be compared with NodeId(). */
9308
9993
  const char *NodeName () const { return NodeId (); }
 
9994
  /** Get the conversion type. */
9309
9995
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
9310
 
  // special new / delete with reusing memory
 
9996
 
 
9997
public:
 
9998
  /** Own new operator reusing memory. */
9311
9999
  void *operator new (size_t);
9312
 
  void  operator delete (void *);
 
10000
  /** Own delete operator. */
 
10001
  void operator delete (void *);
9313
10002
   private:
9314
10003
  typedef CT_ConversionName CCExprResolveExpr;
9315
10004
 
9316
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10005
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9317
10006
 public :
9318
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10007
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9319
10008
  typedef CT_ConversionName CExprResolveExpr;
9320
10009
 
9321
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10010
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9322
10011
 public :
9323
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9324
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10012
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10013
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9325
10014
};
9326
10015
 
 
10016
/** \class CT_QualName CTree.h Puma/CTree.h
 
10017
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
9327
10018
 
9328
 
#line 9329 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10019
#line 10020 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
9329
10020
} // closed Puma
 
10021
class CCExprResolve;
 
10022
class CExprResolve;
9330
10023
class WinIfExists;
9331
10024
class WinImportHandler;
9332
10025
class WinMacros;
9333
 
class CMatchSyntax;
9334
 
class ExtGnu;
 
10026
class WinAsm;
 
10027
class WinDeclSpecs;
 
10028
class WinMemberExplSpec;
 
10029
class WinTypeKeywords;
 
10030
class WinFriend;
9335
10031
class ExtAC;
9336
10032
class ExtACBuilderCoupling;
9337
10033
class ExtACSyntaxCoupling;
9338
10034
class ExtACTree;
9339
10035
class ExtACKeywords;
9340
 
class WinAsm;
9341
 
class WinDeclSpecs;
9342
 
class WinMemberExplSpec;
9343
 
class WinTypeKeywords;
 
10036
class ExtGnu;
9344
10037
class PragmaOnceUnitState;
9345
10038
class PragmaOnce;
9346
 
class CCExprResolve;
9347
 
class CExprResolve;
9348
 
namespace Puma {
9349
 
 
9350
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10039
class CMatchSyntax;
 
10040
namespace Puma {
 
10041
 
 
10042
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10043
 
 
10044
#line 10045 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10045
} // closed Puma
 
10046
 
 
10047
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10048
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10049
#include "CCExprResolveH.ah"
 
10050
#endif
 
10051
namespace Puma {
 
10052
 
 
10053
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10054
 
 
10055
#line 10056 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10056
} // closed Puma
 
10057
 
 
10058
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10059
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10060
#include "CExprResolveH.ah"
 
10061
#endif
 
10062
namespace Puma {
 
10063
 
 
10064
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9351
10065
class CT_QualName : public CT_SimpleName {
9352
 
#line 9353 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10066
#line 10067 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10067
  friend class ::CCExprResolve;
 
10068
  friend class ::CExprResolve;
9353
10069
  friend class ::WinIfExists;
9354
10070
  friend class ::WinImportHandler;
9355
10071
  friend class ::WinMacros;
9356
 
  friend class ::CMatchSyntax;
9357
 
  friend class ::ExtGnu;
 
10072
  friend class ::WinAsm;
 
10073
  friend class ::WinDeclSpecs;
 
10074
  friend class ::WinMemberExplSpec;
 
10075
  friend class ::WinTypeKeywords;
 
10076
  friend class ::WinFriend;
9358
10077
  friend class ::ExtAC;
9359
10078
  friend class ::ExtACBuilderCoupling;
9360
10079
  friend class ::ExtACSyntaxCoupling;
9361
10080
  friend class ::ExtACTree;
9362
10081
  friend class ::ExtACKeywords;
9363
 
  friend class ::WinAsm;
9364
 
  friend class ::WinDeclSpecs;
9365
 
  friend class ::WinMemberExplSpec;
9366
 
  friend class ::WinTypeKeywords;
 
10082
  friend class ::ExtGnu;
9367
10083
  friend class ::PragmaOnceUnitState;
9368
10084
  friend class ::PragmaOnce;
9369
 
  friend class ::CCExprResolve;
9370
 
  friend class ::CExprResolve;
 
10085
  friend class ::CMatchSyntax;
9371
10086
 
9372
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10087
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9373
10088
 
9374
10089
public:
 
10090
  /** Constructor.
 
10091
   *  \param size The initial number sub-names plus separators. */
9375
10092
  CT_QualName (int size = 3) : 
9376
10093
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
10094
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9377
10095
  static const char *NodeId ();
 
10096
  /** Get the name of the node. Can be compared with NodeId(). */
9378
10097
  const char *NodeName () const { return NodeId (); }
9379
 
  void print (ostream &) const;
 
10098
  /** Print the qualified name on the given stream. 
 
10099
   *  \param os The output stream. */
 
10100
  void print (ostream &os) const;
 
10101
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
9380
10102
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
10103
  /** Get the string containing the last name of the qualified name. */
9381
10104
  const char *Text () const { return Name ()->Text (); }
 
10105
  /** Get the type of the last name. */
9382
10106
  CTypeInfo *Type () const { return Name ()->Type (); }
 
10107
  /** Get the value of the last name. */
9383
10108
  CExprValue *Value () const { return Name ()->Value (); }
 
10109
  /** Get the semantic value object of the last name. */
9384
10110
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
10111
  /** Get the semantic information object of the last name. */
9385
10112
  CSemObject *SemObject () const { return Name ()->SemObject (); }
9386
 
  // special new / delete with reusing memory
 
10113
 
 
10114
public:
 
10115
  /** Own new operator reusing memory. */
9387
10116
  void *operator new (size_t);
9388
 
  void  operator delete (void *);
 
10117
  /** Own delete operator. */
 
10118
  void operator delete (void *);
9389
10119
   private:
9390
10120
  typedef CT_QualName CCExprResolveExpr;
9391
10121
 
9392
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10122
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9393
10123
 public :
9394
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10124
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9395
10125
  typedef CT_QualName CExprResolveExpr;
9396
10126
 
9397
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10127
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9398
10128
 public :
9399
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9400
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10129
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10130
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9401
10131
};
9402
10132
 
 
10133
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
10134
 *  Tree node representing a qualified name with introducing name separator,
 
10135
 *  e.g. ::X::Y::Z. */
9403
10136
 
9404
 
#line 9405 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10137
#line 10138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
9405
10138
} // closed Puma
 
10139
class CCExprResolve;
 
10140
class CExprResolve;
9406
10141
class WinIfExists;
9407
10142
class WinImportHandler;
9408
10143
class WinMacros;
9409
 
class CMatchSyntax;
9410
 
class ExtGnu;
 
10144
class WinAsm;
 
10145
class WinDeclSpecs;
 
10146
class WinMemberExplSpec;
 
10147
class WinTypeKeywords;
 
10148
class WinFriend;
9411
10149
class ExtAC;
9412
10150
class ExtACBuilderCoupling;
9413
10151
class ExtACSyntaxCoupling;
9414
10152
class ExtACTree;
9415
10153
class ExtACKeywords;
9416
 
class WinAsm;
9417
 
class WinDeclSpecs;
9418
 
class WinMemberExplSpec;
9419
 
class WinTypeKeywords;
 
10154
class ExtGnu;
9420
10155
class PragmaOnceUnitState;
9421
10156
class PragmaOnce;
9422
 
class CCExprResolve;
9423
 
class CExprResolve;
9424
 
namespace Puma {
9425
 
 
9426
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10157
class CMatchSyntax;
 
10158
namespace Puma {
 
10159
 
 
10160
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10161
 
 
10162
#line 10163 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10163
} // closed Puma
 
10164
 
 
10165
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10166
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10167
#include "CCExprResolveH.ah"
 
10168
#endif
 
10169
namespace Puma {
 
10170
 
 
10171
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10172
 
 
10173
#line 10174 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10174
} // closed Puma
 
10175
 
 
10176
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10177
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10178
#include "CExprResolveH.ah"
 
10179
#endif
 
10180
namespace Puma {
 
10181
 
 
10182
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9427
10183
class CT_RootQualName : public CT_QualName {
9428
 
#line 9429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10184
#line 10185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10185
  friend class ::CCExprResolve;
 
10186
  friend class ::CExprResolve;
9429
10187
  friend class ::WinIfExists;
9430
10188
  friend class ::WinImportHandler;
9431
10189
  friend class ::WinMacros;
9432
 
  friend class ::CMatchSyntax;
9433
 
  friend class ::ExtGnu;
 
10190
  friend class ::WinAsm;
 
10191
  friend class ::WinDeclSpecs;
 
10192
  friend class ::WinMemberExplSpec;
 
10193
  friend class ::WinTypeKeywords;
 
10194
  friend class ::WinFriend;
9434
10195
  friend class ::ExtAC;
9435
10196
  friend class ::ExtACBuilderCoupling;
9436
10197
  friend class ::ExtACSyntaxCoupling;
9437
10198
  friend class ::ExtACTree;
9438
10199
  friend class ::ExtACKeywords;
9439
 
  friend class ::WinAsm;
9440
 
  friend class ::WinDeclSpecs;
9441
 
  friend class ::WinMemberExplSpec;
9442
 
  friend class ::WinTypeKeywords;
 
10200
  friend class ::ExtGnu;
9443
10201
  friend class ::PragmaOnceUnitState;
9444
10202
  friend class ::PragmaOnce;
9445
 
  friend class ::CCExprResolve;
9446
 
  friend class ::CExprResolve;
 
10203
  friend class ::CMatchSyntax;
9447
10204
 
9448
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10205
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9449
10206
 
9450
10207
public:
 
10208
  /** Constructor.
 
10209
   *  \param size Initial number of sub-name plus separator. */
9451
10210
  CT_RootQualName (int size = 2) : 
9452
10211
    CT_QualName (size) { AddProperties (INTRO); }
 
10212
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9453
10213
  static const char *NodeId ();
 
10214
  /** Get the name of the node. Can be compared with NodeId(). */
9454
10215
  const char *NodeName () const { return NodeId (); }
9455
 
  // special new / delete with reusing memory
 
10216
 
 
10217
public:
 
10218
  /** Own new operator reusing memory. */
9456
10219
  void *operator new (size_t);
9457
 
  void  operator delete (void *);
 
10220
  /** Own delete operator. */
 
10221
  void operator delete (void *);
9458
10222
   private:
9459
10223
  typedef CT_RootQualName CCExprResolveExpr;
9460
10224
 
9461
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10225
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9462
10226
 public :
9463
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10227
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9464
10228
  typedef CT_RootQualName CExprResolveExpr;
9465
10229
 
9466
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10230
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9467
10231
 public :
9468
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9469
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10232
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10233
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9470
10234
};
9471
10235
 
 
10236
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
10237
 *  Tree node representing a binary expression, e.g. a+b. */
9472
10238
 
9473
 
#line 9474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10239
#line 10240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
9474
10240
} // closed Puma
 
10241
class CCExprResolve;
 
10242
class CExprResolve;
9475
10243
class WinIfExists;
9476
10244
class WinImportHandler;
9477
10245
class WinMacros;
9478
 
class CMatchSyntax;
9479
 
class ExtGnu;
 
10246
class WinAsm;
 
10247
class WinDeclSpecs;
 
10248
class WinMemberExplSpec;
 
10249
class WinTypeKeywords;
 
10250
class WinFriend;
9480
10251
class ExtAC;
9481
10252
class ExtACBuilderCoupling;
9482
10253
class ExtACSyntaxCoupling;
9483
10254
class ExtACTree;
9484
10255
class ExtACKeywords;
9485
 
class WinAsm;
9486
 
class WinDeclSpecs;
9487
 
class WinMemberExplSpec;
9488
 
class WinTypeKeywords;
 
10256
class ExtGnu;
9489
10257
class PragmaOnceUnitState;
9490
10258
class PragmaOnce;
9491
 
class CCExprResolve;
9492
 
class CExprResolve;
9493
 
namespace Puma {
9494
 
 
9495
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9496
 
class CT_BinaryExpr : public CT_Expression {
9497
 
#line 9498 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10259
class CMatchSyntax;
 
10260
namespace Puma {
 
10261
 
 
10262
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10263
 
 
10264
#line 10265 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10265
} // closed Puma
 
10266
 
 
10267
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10268
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10269
#include "CCExprResolveH.ah"
 
10270
#endif
 
10271
namespace Puma {
 
10272
 
 
10273
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10274
 
 
10275
#line 10276 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10276
} // closed Puma
 
10277
 
 
10278
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10279
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10280
#include "CExprResolveH.ah"
 
10281
#endif
 
10282
namespace Puma {
 
10283
 
 
10284
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10285
class CT_BinaryExpr : public CT_Call {
 
10286
#line 10287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10287
  friend class ::CCExprResolve;
 
10288
  friend class ::CExprResolve;
9498
10289
  friend class ::WinIfExists;
9499
10290
  friend class ::WinImportHandler;
9500
10291
  friend class ::WinMacros;
9501
 
  friend class ::CMatchSyntax;
9502
 
  friend class ::ExtGnu;
 
10292
  friend class ::WinAsm;
 
10293
  friend class ::WinDeclSpecs;
 
10294
  friend class ::WinMemberExplSpec;
 
10295
  friend class ::WinTypeKeywords;
 
10296
  friend class ::WinFriend;
9503
10297
  friend class ::ExtAC;
9504
10298
  friend class ::ExtACBuilderCoupling;
9505
10299
  friend class ::ExtACSyntaxCoupling;
9506
10300
  friend class ::ExtACTree;
9507
10301
  friend class ::ExtACKeywords;
9508
 
  friend class ::WinAsm;
9509
 
  friend class ::WinDeclSpecs;
9510
 
  friend class ::WinMemberExplSpec;
9511
 
  friend class ::WinTypeKeywords;
 
10302
  friend class ::ExtGnu;
9512
10303
  friend class ::PragmaOnceUnitState;
9513
10304
  friend class ::PragmaOnce;
9514
 
  friend class ::CCExprResolve;
9515
 
  friend class ::CExprResolve;
 
10305
  friend class ::CMatchSyntax;
9516
10306
 
9517
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10307
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9518
10308
 
9519
10309
  CTree *sons[3]; // expr, oper, expr
9520
10310
 
9521
10311
public:
 
10312
  /** Constructor. 
 
10313
   *  \param l Left hand side of the expression. 
 
10314
   *  \param o The operator token. 
 
10315
   *  \param r Right hand side of the expression. */
9522
10316
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
9523
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
10317
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
9524
10318
  }
 
10319
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9525
10320
  static const char *NodeId ();
 
10321
  /** Get the name of the node. Can be compared with NodeId(). */
9526
10322
  const char *NodeName () const { return NodeId (); }
 
10323
  /** Get the number of sons. */
9527
10324
  int Sons () const { return 3; }
 
10325
  /** Get the n-th son.
 
10326
   *  \param n The index of the son.
 
10327
   *  \return The n-th son or NULL. */
9528
10328
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
10329
  /** Replace a son.
 
10330
   *  \param old_son The son to replace.
 
10331
   *  \param new_son The new son. */
9529
10332
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9530
10333
    CTree::ReplaceSon (sons, 3, old_son, new_son);
9531
10334
  }
9532
10335
   private:
9533
10336
  typedef CT_BinaryExpr CCExprResolveExpr;
9534
10337
 
9535
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10338
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9536
10339
 public :
9537
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10340
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9538
10341
  typedef CT_BinaryExpr CExprResolveExpr;
9539
10342
 
9540
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10343
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9541
10344
 public :
9542
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9543
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10345
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10346
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9544
10347
};
9545
10348
 
 
10349
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
10350
 *  Tree node representing a member pointer expression, e.g. a->b. */
9546
10351
 
9547
 
#line 9548 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10352
#line 10353 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
9548
10353
} // closed Puma
 
10354
class CCExprResolve;
 
10355
class CExprResolve;
9549
10356
class WinIfExists;
9550
10357
class WinImportHandler;
9551
10358
class WinMacros;
9552
 
class CMatchSyntax;
9553
 
class ExtGnu;
 
10359
class WinAsm;
 
10360
class WinDeclSpecs;
 
10361
class WinMemberExplSpec;
 
10362
class WinTypeKeywords;
 
10363
class WinFriend;
9554
10364
class ExtAC;
9555
10365
class ExtACBuilderCoupling;
9556
10366
class ExtACSyntaxCoupling;
9557
10367
class ExtACTree;
9558
10368
class ExtACKeywords;
9559
 
class WinAsm;
9560
 
class WinDeclSpecs;
9561
 
class WinMemberExplSpec;
9562
 
class WinTypeKeywords;
 
10369
class ExtGnu;
9563
10370
class PragmaOnceUnitState;
9564
10371
class PragmaOnce;
9565
 
class CCExprResolve;
9566
 
class CExprResolve;
9567
 
namespace Puma {
9568
 
 
9569
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9570
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
9571
 
#line 9572 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10372
class CMatchSyntax;
 
10373
namespace Puma {
 
10374
 
 
10375
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10376
 
 
10377
#line 10378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10378
} // closed Puma
 
10379
 
 
10380
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10381
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10382
#include "CCExprResolveH.ah"
 
10383
#endif
 
10384
namespace Puma {
 
10385
 
 
10386
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10387
 
 
10388
#line 10389 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10389
} // closed Puma
 
10390
 
 
10391
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10392
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10393
#include "CExprResolveH.ah"
 
10394
#endif
 
10395
namespace Puma {
 
10396
 
 
10397
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10398
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
10399
#line 10400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10400
  friend class ::CCExprResolve;
 
10401
  friend class ::CExprResolve;
9572
10402
  friend class ::WinIfExists;
9573
10403
  friend class ::WinImportHandler;
9574
10404
  friend class ::WinMacros;
9575
 
  friend class ::CMatchSyntax;
9576
 
  friend class ::ExtGnu;
 
10405
  friend class ::WinAsm;
 
10406
  friend class ::WinDeclSpecs;
 
10407
  friend class ::WinMemberExplSpec;
 
10408
  friend class ::WinTypeKeywords;
 
10409
  friend class ::WinFriend;
9577
10410
  friend class ::ExtAC;
9578
10411
  friend class ::ExtACBuilderCoupling;
9579
10412
  friend class ::ExtACSyntaxCoupling;
9580
10413
  friend class ::ExtACTree;
9581
10414
  friend class ::ExtACKeywords;
9582
 
  friend class ::WinAsm;
9583
 
  friend class ::WinDeclSpecs;
9584
 
  friend class ::WinMemberExplSpec;
9585
 
  friend class ::WinTypeKeywords;
 
10415
  friend class ::ExtGnu;
9586
10416
  friend class ::PragmaOnceUnitState;
9587
10417
  friend class ::PragmaOnce;
9588
 
  friend class ::CCExprResolve;
9589
 
  friend class ::CExprResolve;
9590
 
 
9591
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9592
 
 
 
10418
  friend class ::CMatchSyntax;
 
10419
 
 
10420
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10421
 
 
10422
  CTree *sons[3]; // expr, oper, expr
 
10423
  
9593
10424
public:
9594
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
9595
 
    CT_BinaryExpr (e, o, i) {}
 
10425
  /** Constructor.
 
10426
   *  \param e Expression on which to call the member.
 
10427
   *  \param o The arrow operator token.
 
10428
   *  \param i The member name. */
 
10429
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
10430
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
10431
  }
 
10432
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9596
10433
  static const char *NodeId ();
 
10434
  /** Get the name of the node. Can be compared with NodeId(). */
9597
10435
  const char *NodeName () const { return NodeId (); }
9598
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
10436
  /** Get the number of sons. */
 
10437
  int Sons () const { return 3; }
 
10438
  /** Get the n-th son.
 
10439
   *  \param n The index of the son.
 
10440
   *  \return The n-th son or NULL. */
 
10441
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
10442
  /** Replace a son.
 
10443
   *  \param old_son The son to replace.
 
10444
   *  \param new_son The new son. */
 
10445
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
10446
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
10447
  }
9599
10448
   private:
9600
10449
  typedef CT_MembPtrExpr CCExprResolveExpr;
9601
10450
 
9602
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10451
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9603
10452
 public :
9604
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10453
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9605
10454
  typedef CT_MembPtrExpr CExprResolveExpr;
9606
10455
 
9607
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10456
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9608
10457
 public :
9609
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9610
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10458
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10459
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9611
10460
};
9612
10461
 
 
10462
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
10463
 *  Tree node representing a member reference expression, e.g. a.b. */
9613
10464
 
9614
 
#line 9615 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10465
#line 10466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
9615
10466
} // closed Puma
 
10467
class CCExprResolve;
 
10468
class CExprResolve;
9616
10469
class WinIfExists;
9617
10470
class WinImportHandler;
9618
10471
class WinMacros;
9619
 
class CMatchSyntax;
9620
 
class ExtGnu;
 
10472
class WinAsm;
 
10473
class WinDeclSpecs;
 
10474
class WinMemberExplSpec;
 
10475
class WinTypeKeywords;
 
10476
class WinFriend;
9621
10477
class ExtAC;
9622
10478
class ExtACBuilderCoupling;
9623
10479
class ExtACSyntaxCoupling;
9624
10480
class ExtACTree;
9625
10481
class ExtACKeywords;
9626
 
class WinAsm;
9627
 
class WinDeclSpecs;
9628
 
class WinMemberExplSpec;
9629
 
class WinTypeKeywords;
 
10482
class ExtGnu;
9630
10483
class PragmaOnceUnitState;
9631
10484
class PragmaOnce;
9632
 
class CCExprResolve;
9633
 
class CExprResolve;
9634
 
namespace Puma {
9635
 
 
9636
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10485
class CMatchSyntax;
 
10486
namespace Puma {
 
10487
 
 
10488
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10489
 
 
10490
#line 10491 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10491
} // closed Puma
 
10492
 
 
10493
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10494
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10495
#include "CCExprResolveH.ah"
 
10496
#endif
 
10497
namespace Puma {
 
10498
 
 
10499
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10500
 
 
10501
#line 10502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10502
} // closed Puma
 
10503
 
 
10504
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10505
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10506
#include "CExprResolveH.ah"
 
10507
#endif
 
10508
namespace Puma {
 
10509
 
 
10510
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9637
10511
class CT_MembRefExpr : public CT_MembPtrExpr {
9638
 
#line 9639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10512
#line 10513 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10513
  friend class ::CCExprResolve;
 
10514
  friend class ::CExprResolve;
9639
10515
  friend class ::WinIfExists;
9640
10516
  friend class ::WinImportHandler;
9641
10517
  friend class ::WinMacros;
9642
 
  friend class ::CMatchSyntax;
9643
 
  friend class ::ExtGnu;
 
10518
  friend class ::WinAsm;
 
10519
  friend class ::WinDeclSpecs;
 
10520
  friend class ::WinMemberExplSpec;
 
10521
  friend class ::WinTypeKeywords;
 
10522
  friend class ::WinFriend;
9644
10523
  friend class ::ExtAC;
9645
10524
  friend class ::ExtACBuilderCoupling;
9646
10525
  friend class ::ExtACSyntaxCoupling;
9647
10526
  friend class ::ExtACTree;
9648
10527
  friend class ::ExtACKeywords;
9649
 
  friend class ::WinAsm;
9650
 
  friend class ::WinDeclSpecs;
9651
 
  friend class ::WinMemberExplSpec;
9652
 
  friend class ::WinTypeKeywords;
 
10528
  friend class ::ExtGnu;
9653
10529
  friend class ::PragmaOnceUnitState;
9654
10530
  friend class ::PragmaOnce;
9655
 
  friend class ::CCExprResolve;
9656
 
  friend class ::CExprResolve;
 
10531
  friend class ::CMatchSyntax;
9657
10532
 
9658
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10533
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9659
10534
 
9660
10535
public:
 
10536
  /** Constructor.
 
10537
   *  \param e Expression on which to call the member.
 
10538
   *  \param o The dot operator.
 
10539
   *  \param i The member name. */
9661
10540
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
9662
10541
    CT_MembPtrExpr (e, o, i) {}
 
10542
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9663
10543
  static const char *NodeId ();
 
10544
  /** Get the name of the node. Can be compared with NodeId(). */
9664
10545
  const char *NodeName () const { return NodeId (); }
9665
10546
   private:
9666
10547
  typedef CT_MembRefExpr CCExprResolveExpr;
9667
10548
 
9668
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10549
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9669
10550
 public :
9670
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10551
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9671
10552
  typedef CT_MembRefExpr CExprResolveExpr;
9672
10553
 
9673
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10554
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9674
10555
 public :
9675
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9676
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10556
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10557
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9677
10558
};
9678
10559
 
 
10560
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
10561
 *  Base class for tree nodes representing unary expressions. */
9679
10562
 
9680
 
#line 9681 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10563
#line 10564 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
9681
10564
} // closed Puma
 
10565
class CCExprResolve;
 
10566
class CExprResolve;
9682
10567
class WinIfExists;
9683
10568
class WinImportHandler;
9684
10569
class WinMacros;
9685
 
class CMatchSyntax;
9686
 
class ExtGnu;
 
10570
class WinAsm;
 
10571
class WinDeclSpecs;
 
10572
class WinMemberExplSpec;
 
10573
class WinTypeKeywords;
 
10574
class WinFriend;
9687
10575
class ExtAC;
9688
10576
class ExtACBuilderCoupling;
9689
10577
class ExtACSyntaxCoupling;
9690
10578
class ExtACTree;
9691
10579
class ExtACKeywords;
9692
 
class WinAsm;
9693
 
class WinDeclSpecs;
9694
 
class WinMemberExplSpec;
9695
 
class WinTypeKeywords;
 
10580
class ExtGnu;
9696
10581
class PragmaOnceUnitState;
9697
10582
class PragmaOnce;
9698
 
class CCExprResolve;
9699
 
class CExprResolve;
9700
 
namespace Puma {
9701
 
 
9702
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
9703
 
class CT_UnaryExpr : public CT_Expression {
9704
 
#line 9705 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10583
class CMatchSyntax;
 
10584
namespace Puma {
 
10585
 
 
10586
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10587
 
 
10588
#line 10589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10589
} // closed Puma
 
10590
 
 
10591
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10592
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10593
#include "CCExprResolveH.ah"
 
10594
#endif
 
10595
namespace Puma {
 
10596
 
 
10597
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10598
 
 
10599
#line 10600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10600
} // closed Puma
 
10601
 
 
10602
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10603
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10604
#include "CExprResolveH.ah"
 
10605
#endif
 
10606
namespace Puma {
 
10607
 
 
10608
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10609
class CT_UnaryExpr : public CT_Call {
 
10610
#line 10611 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10611
  friend class ::CCExprResolve;
 
10612
  friend class ::CExprResolve;
9705
10613
  friend class ::WinIfExists;
9706
10614
  friend class ::WinImportHandler;
9707
10615
  friend class ::WinMacros;
9708
 
  friend class ::CMatchSyntax;
9709
 
  friend class ::ExtGnu;
 
10616
  friend class ::WinAsm;
 
10617
  friend class ::WinDeclSpecs;
 
10618
  friend class ::WinMemberExplSpec;
 
10619
  friend class ::WinTypeKeywords;
 
10620
  friend class ::WinFriend;
9710
10621
  friend class ::ExtAC;
9711
10622
  friend class ::ExtACBuilderCoupling;
9712
10623
  friend class ::ExtACSyntaxCoupling;
9713
10624
  friend class ::ExtACTree;
9714
10625
  friend class ::ExtACKeywords;
9715
 
  friend class ::WinAsm;
9716
 
  friend class ::WinDeclSpecs;
9717
 
  friend class ::WinMemberExplSpec;
9718
 
  friend class ::WinTypeKeywords;
 
10626
  friend class ::ExtGnu;
9719
10627
  friend class ::PragmaOnceUnitState;
9720
10628
  friend class ::PragmaOnce;
9721
 
  friend class ::CCExprResolve;
9722
 
  friend class ::CExprResolve;
 
10629
  friend class ::CMatchSyntax;
9723
10630
 
9724
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10631
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9725
10632
 
9726
10633
  CTree *sons[2]; // oper, expr
9727
10634
 
9728
10635
public:
9729
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
10636
  /** Constructor.
 
10637
   *  \param o The unary operator.
 
10638
   *  \param e The expression on which the operator is invoked. */
 
10639
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
10640
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9730
10641
  static const char *NodeId ();
 
10642
  /** Get the name of the node. Can be compared with NodeId(). */
9731
10643
  const char *NodeName () const { return NodeId (); }
 
10644
  /** Get the number of sons. */
9732
10645
  int Sons () const { return 2; }
 
10646
  /** Get the n-th son.
 
10647
   *  \param n The index of the son.
 
10648
   *  \return The n-th son or NULL. */
9733
10649
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
10650
  /** Replace a son.
 
10651
   *  \param old_son The son to replace.
 
10652
   *  \param new_son The new son. */
9734
10653
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
9735
10654
    CTree::ReplaceSon (sons, 2, old_son, new_son);
9736
10655
  }
 
10656
  /** Get the expression node. */
9737
10657
  CTree *Expr () const { return sons[1]; }
9738
10658
   private:
9739
10659
  typedef CT_UnaryExpr CCExprResolveExpr;
9740
10660
 
9741
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10661
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9742
10662
 public :
9743
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10663
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9744
10664
  typedef CT_UnaryExpr CExprResolveExpr;
9745
10665
 
9746
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10666
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9747
10667
 public :
9748
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9749
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10668
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10669
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9750
10670
};
9751
10671
 
 
10672
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
10673
 *  Tree node representing a postfix expression, e.g. a++. */
9752
10674
 
9753
 
#line 9754 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10675
#line 10676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
9754
10676
} // closed Puma
 
10677
class CCExprResolve;
 
10678
class CExprResolve;
9755
10679
class WinIfExists;
9756
10680
class WinImportHandler;
9757
10681
class WinMacros;
9758
 
class CMatchSyntax;
9759
 
class ExtGnu;
 
10682
class WinAsm;
 
10683
class WinDeclSpecs;
 
10684
class WinMemberExplSpec;
 
10685
class WinTypeKeywords;
 
10686
class WinFriend;
9760
10687
class ExtAC;
9761
10688
class ExtACBuilderCoupling;
9762
10689
class ExtACSyntaxCoupling;
9763
10690
class ExtACTree;
9764
10691
class ExtACKeywords;
9765
 
class WinAsm;
9766
 
class WinDeclSpecs;
9767
 
class WinMemberExplSpec;
9768
 
class WinTypeKeywords;
 
10692
class ExtGnu;
9769
10693
class PragmaOnceUnitState;
9770
10694
class PragmaOnce;
9771
 
class CCExprResolve;
9772
 
class CExprResolve;
9773
 
namespace Puma {
9774
 
 
9775
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10695
class CMatchSyntax;
 
10696
namespace Puma {
 
10697
 
 
10698
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10699
 
 
10700
#line 10701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10701
} // closed Puma
 
10702
 
 
10703
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10704
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10705
#include "CCExprResolveH.ah"
 
10706
#endif
 
10707
namespace Puma {
 
10708
 
 
10709
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10710
 
 
10711
#line 10712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10712
} // closed Puma
 
10713
 
 
10714
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10715
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10716
#include "CExprResolveH.ah"
 
10717
#endif
 
10718
namespace Puma {
 
10719
 
 
10720
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9776
10721
class CT_PostfixExpr : public CT_UnaryExpr {
9777
 
#line 9778 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10722
#line 10723 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10723
  friend class ::CCExprResolve;
 
10724
  friend class ::CExprResolve;
9778
10725
  friend class ::WinIfExists;
9779
10726
  friend class ::WinImportHandler;
9780
10727
  friend class ::WinMacros;
9781
 
  friend class ::CMatchSyntax;
9782
 
  friend class ::ExtGnu;
 
10728
  friend class ::WinAsm;
 
10729
  friend class ::WinDeclSpecs;
 
10730
  friend class ::WinMemberExplSpec;
 
10731
  friend class ::WinTypeKeywords;
 
10732
  friend class ::WinFriend;
9783
10733
  friend class ::ExtAC;
9784
10734
  friend class ::ExtACBuilderCoupling;
9785
10735
  friend class ::ExtACSyntaxCoupling;
9786
10736
  friend class ::ExtACTree;
9787
10737
  friend class ::ExtACKeywords;
9788
 
  friend class ::WinAsm;
9789
 
  friend class ::WinDeclSpecs;
9790
 
  friend class ::WinMemberExplSpec;
9791
 
  friend class ::WinTypeKeywords;
 
10738
  friend class ::ExtGnu;
9792
10739
  friend class ::PragmaOnceUnitState;
9793
10740
  friend class ::PragmaOnce;
9794
 
  friend class ::CCExprResolve;
9795
 
  friend class ::CExprResolve;
 
10741
  friend class ::CMatchSyntax;
9796
10742
 
9797
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10743
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9798
10744
 
9799
10745
public:
 
10746
  /** Constructor.
 
10747
   *  \param e The expression on which to invoke the operator. 
 
10748
   *  \param o The postfix operator. */
9800
10749
  CT_PostfixExpr (CTree *e, CTree *o) :
9801
10750
    CT_UnaryExpr (e, o) {}
 
10751
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9802
10752
  static const char *NodeId ();
 
10753
  /** Get the name of the node. Can be compared with NodeId(). */
9803
10754
  const char *NodeName () const { return NodeId (); }
9804
10755
   private:
9805
10756
  typedef CT_PostfixExpr CCExprResolveExpr;
9806
10757
 
9807
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10758
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9808
10759
 public :
9809
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10760
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9810
10761
  typedef CT_PostfixExpr CExprResolveExpr;
9811
10762
 
9812
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10763
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9813
10764
 public :
9814
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9815
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10765
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10766
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9816
10767
};
9817
10768
 
 
10769
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
10770
 *  Tree node representing an address expression, e.g. &a. */
9818
10771
 
9819
 
#line 9820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10772
#line 10773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
9820
10773
} // closed Puma
 
10774
class CCExprResolve;
 
10775
class CExprResolve;
9821
10776
class WinIfExists;
9822
10777
class WinImportHandler;
9823
10778
class WinMacros;
9824
 
class CMatchSyntax;
9825
 
class ExtGnu;
 
10779
class WinAsm;
 
10780
class WinDeclSpecs;
 
10781
class WinMemberExplSpec;
 
10782
class WinTypeKeywords;
 
10783
class WinFriend;
9826
10784
class ExtAC;
9827
10785
class ExtACBuilderCoupling;
9828
10786
class ExtACSyntaxCoupling;
9829
10787
class ExtACTree;
9830
10788
class ExtACKeywords;
9831
 
class WinAsm;
9832
 
class WinDeclSpecs;
9833
 
class WinMemberExplSpec;
9834
 
class WinTypeKeywords;
 
10789
class ExtGnu;
9835
10790
class PragmaOnceUnitState;
9836
10791
class PragmaOnce;
9837
 
class CCExprResolve;
9838
 
class CExprResolve;
9839
 
namespace Puma {
9840
 
 
9841
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10792
class CMatchSyntax;
 
10793
namespace Puma {
 
10794
 
 
10795
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10796
 
 
10797
#line 10798 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10798
} // closed Puma
 
10799
 
 
10800
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10801
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10802
#include "CCExprResolveH.ah"
 
10803
#endif
 
10804
namespace Puma {
 
10805
 
 
10806
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10807
 
 
10808
#line 10809 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10809
} // closed Puma
 
10810
 
 
10811
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10812
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10813
#include "CExprResolveH.ah"
 
10814
#endif
 
10815
namespace Puma {
 
10816
 
 
10817
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9842
10818
class CT_AddrExpr : public CT_UnaryExpr {
9843
 
#line 9844 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10819
#line 10820 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10820
  friend class ::CCExprResolve;
 
10821
  friend class ::CExprResolve;
9844
10822
  friend class ::WinIfExists;
9845
10823
  friend class ::WinImportHandler;
9846
10824
  friend class ::WinMacros;
9847
 
  friend class ::CMatchSyntax;
9848
 
  friend class ::ExtGnu;
 
10825
  friend class ::WinAsm;
 
10826
  friend class ::WinDeclSpecs;
 
10827
  friend class ::WinMemberExplSpec;
 
10828
  friend class ::WinTypeKeywords;
 
10829
  friend class ::WinFriend;
9849
10830
  friend class ::ExtAC;
9850
10831
  friend class ::ExtACBuilderCoupling;
9851
10832
  friend class ::ExtACSyntaxCoupling;
9852
10833
  friend class ::ExtACTree;
9853
10834
  friend class ::ExtACKeywords;
9854
 
  friend class ::WinAsm;
9855
 
  friend class ::WinDeclSpecs;
9856
 
  friend class ::WinMemberExplSpec;
9857
 
  friend class ::WinTypeKeywords;
 
10835
  friend class ::ExtGnu;
9858
10836
  friend class ::PragmaOnceUnitState;
9859
10837
  friend class ::PragmaOnce;
9860
 
  friend class ::CCExprResolve;
9861
 
  friend class ::CExprResolve;
 
10838
  friend class ::CMatchSyntax;
9862
10839
 
9863
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10840
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9864
10841
 
9865
10842
public:
 
10843
  /** Constructor.
 
10844
   *  \param o The address operator, i.e. '&'.
 
10845
   *  \param e The expression from which to take the address. */
9866
10846
  CT_AddrExpr (CTree *o, CTree *e) :
9867
10847
    CT_UnaryExpr (o, e) {}
 
10848
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9868
10849
  static const char *NodeId ();
 
10850
  /** Get the name of the node. Can be compared with NodeId(). */
9869
10851
  const char *NodeName () const { return NodeId (); }
9870
10852
   private:
9871
10853
  typedef CT_AddrExpr CCExprResolveExpr;
9872
10854
 
9873
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10855
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9874
10856
 public :
9875
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10857
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9876
10858
  typedef CT_AddrExpr CExprResolveExpr;
9877
10859
 
9878
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10860
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9879
10861
 public :
9880
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9881
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10862
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10863
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9882
10864
};
9883
10865
 
 
10866
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
10867
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
9884
10868
 
9885
 
#line 9886 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10869
#line 10870 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
9886
10870
} // closed Puma
 
10871
class CCExprResolve;
 
10872
class CExprResolve;
9887
10873
class WinIfExists;
9888
10874
class WinImportHandler;
9889
10875
class WinMacros;
9890
 
class CMatchSyntax;
9891
 
class ExtGnu;
 
10876
class WinAsm;
 
10877
class WinDeclSpecs;
 
10878
class WinMemberExplSpec;
 
10879
class WinTypeKeywords;
 
10880
class WinFriend;
9892
10881
class ExtAC;
9893
10882
class ExtACBuilderCoupling;
9894
10883
class ExtACSyntaxCoupling;
9895
10884
class ExtACTree;
9896
10885
class ExtACKeywords;
9897
 
class WinAsm;
9898
 
class WinDeclSpecs;
9899
 
class WinMemberExplSpec;
9900
 
class WinTypeKeywords;
 
10886
class ExtGnu;
9901
10887
class PragmaOnceUnitState;
9902
10888
class PragmaOnce;
9903
 
class CCExprResolve;
9904
 
class CExprResolve;
9905
 
namespace Puma {
9906
 
 
9907
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10889
class CMatchSyntax;
 
10890
namespace Puma {
 
10891
 
 
10892
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10893
 
 
10894
#line 10895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10895
} // closed Puma
 
10896
 
 
10897
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10898
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10899
#include "CCExprResolveH.ah"
 
10900
#endif
 
10901
namespace Puma {
 
10902
 
 
10903
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10904
 
 
10905
#line 10906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10906
} // closed Puma
 
10907
 
 
10908
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10909
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
10910
#include "CExprResolveH.ah"
 
10911
#endif
 
10912
namespace Puma {
 
10913
 
 
10914
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9908
10915
class CT_DerefExpr : public CT_UnaryExpr {
9909
 
#line 9910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10916
#line 10917 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10917
  friend class ::CCExprResolve;
 
10918
  friend class ::CExprResolve;
9910
10919
  friend class ::WinIfExists;
9911
10920
  friend class ::WinImportHandler;
9912
10921
  friend class ::WinMacros;
9913
 
  friend class ::CMatchSyntax;
9914
 
  friend class ::ExtGnu;
 
10922
  friend class ::WinAsm;
 
10923
  friend class ::WinDeclSpecs;
 
10924
  friend class ::WinMemberExplSpec;
 
10925
  friend class ::WinTypeKeywords;
 
10926
  friend class ::WinFriend;
9915
10927
  friend class ::ExtAC;
9916
10928
  friend class ::ExtACBuilderCoupling;
9917
10929
  friend class ::ExtACSyntaxCoupling;
9918
10930
  friend class ::ExtACTree;
9919
10931
  friend class ::ExtACKeywords;
9920
 
  friend class ::WinAsm;
9921
 
  friend class ::WinDeclSpecs;
9922
 
  friend class ::WinMemberExplSpec;
9923
 
  friend class ::WinTypeKeywords;
 
10932
  friend class ::ExtGnu;
9924
10933
  friend class ::PragmaOnceUnitState;
9925
10934
  friend class ::PragmaOnce;
9926
 
  friend class ::CCExprResolve;
9927
 
  friend class ::CExprResolve;
 
10935
  friend class ::CMatchSyntax;
9928
10936
 
9929
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10937
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9930
10938
 
9931
10939
public:
 
10940
  /** Constructor.
 
10941
   *  \param o The dereferencing operator, i.e. '*'.
 
10942
   *  \param e The expression to dereference. */
9932
10943
  CT_DerefExpr (CTree *o, CTree *e) :
9933
10944
    CT_UnaryExpr (o, e) {}
 
10945
  /** Get the identifier for this node type. Can be compared with NodeName(). */
9934
10946
  static const char *NodeId ();
 
10947
  /** Get the name of the node. Can be compared with NodeId(). */
9935
10948
  const char *NodeName () const { return NodeId (); }
9936
10949
   private:
9937
10950
  typedef CT_DerefExpr CCExprResolveExpr;
9938
10951
 
9939
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
10952
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
9940
10953
 public :
9941
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
10954
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
9942
10955
  typedef CT_DerefExpr CExprResolveExpr;
9943
10956
 
9944
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
10957
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
9945
10958
 public :
9946
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
9947
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10959
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
10960
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9948
10961
};
9949
10962
 
 
10963
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
10964
 *  Tree node representing a delete expression, e.g. delete a. */
9950
10965
 
9951
 
#line 9952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
10966
#line 10967 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
9952
10967
} // closed Puma
 
10968
class CCExprResolve;
 
10969
class CExprResolve;
9953
10970
class WinIfExists;
9954
10971
class WinImportHandler;
9955
10972
class WinMacros;
9956
 
class CMatchSyntax;
9957
 
class ExtGnu;
 
10973
class WinAsm;
 
10974
class WinDeclSpecs;
 
10975
class WinMemberExplSpec;
 
10976
class WinTypeKeywords;
 
10977
class WinFriend;
9958
10978
class ExtAC;
9959
10979
class ExtACBuilderCoupling;
9960
10980
class ExtACSyntaxCoupling;
9961
10981
class ExtACTree;
9962
10982
class ExtACKeywords;
9963
 
class WinAsm;
9964
 
class WinDeclSpecs;
9965
 
class WinMemberExplSpec;
9966
 
class WinTypeKeywords;
 
10983
class ExtGnu;
9967
10984
class PragmaOnceUnitState;
9968
10985
class PragmaOnce;
9969
 
class CCExprResolve;
9970
 
class CExprResolve;
9971
 
namespace Puma {
9972
 
 
9973
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10986
class CMatchSyntax;
 
10987
namespace Puma {
 
10988
 
 
10989
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
10990
 
 
10991
#line 10992 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
10992
} // closed Puma
 
10993
 
 
10994
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10995
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
10996
#include "CCExprResolveH.ah"
 
10997
#endif
 
10998
namespace Puma {
 
10999
 
 
11000
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11001
 
 
11002
#line 11003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11003
} // closed Puma
 
11004
 
 
11005
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11006
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11007
#include "CExprResolveH.ah"
 
11008
#endif
 
11009
namespace Puma {
 
11010
 
 
11011
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9974
11012
class CT_DeleteExpr : public CT_Expression, public CSemObject {
9975
 
#line 9976 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11013
#line 11014 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11014
  friend class ::CCExprResolve;
 
11015
  friend class ::CExprResolve;
9976
11016
  friend class ::WinIfExists;
9977
11017
  friend class ::WinImportHandler;
9978
11018
  friend class ::WinMacros;
9979
 
  friend class ::CMatchSyntax;
9980
 
  friend class ::ExtGnu;
 
11019
  friend class ::WinAsm;
 
11020
  friend class ::WinDeclSpecs;
 
11021
  friend class ::WinMemberExplSpec;
 
11022
  friend class ::WinTypeKeywords;
 
11023
  friend class ::WinFriend;
9981
11024
  friend class ::ExtAC;
9982
11025
  friend class ::ExtACBuilderCoupling;
9983
11026
  friend class ::ExtACSyntaxCoupling;
9984
11027
  friend class ::ExtACTree;
9985
11028
  friend class ::ExtACKeywords;
9986
 
  friend class ::WinAsm;
9987
 
  friend class ::WinDeclSpecs;
9988
 
  friend class ::WinMemberExplSpec;
9989
 
  friend class ::WinTypeKeywords;
 
11029
  friend class ::ExtGnu;
9990
11030
  friend class ::PragmaOnceUnitState;
9991
11031
  friend class ::PragmaOnce;
9992
 
  friend class ::CCExprResolve;
9993
 
  friend class ::CExprResolve;
 
11032
  friend class ::CMatchSyntax;
9994
11033
 
9995
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11034
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
9996
11035
 
9997
11036
  CTree *sons[2]; // oper, expr
9998
11037
 
9999
11038
public:
10000
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
11039
  /** Constructor.
 
11040
   *  \param op The delete operator.
 
11041
   *  \param e The expression representing the object to delete. */
 
11042
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
11043
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10001
11044
  static const char *NodeId ();
 
11045
  /** Get the name of the node. Can be compared with NodeId(). */
10002
11046
  const char *NodeName () const { return NodeId (); }
 
11047
  /** Get the number of sons. */
10003
11048
  int Sons () const { return 2; }
 
11049
  /** Get the n-th son.
 
11050
   *  \param n The index of the son.
 
11051
   *  \return The n-th son or NULL. */
10004
11052
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
11053
  /** Replace a son.
 
11054
   *  \param old_son The son to replace.
 
11055
   *  \param new_son The new son. */
10005
11056
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10006
11057
    CTree::ReplaceSon (sons, 2, old_son, new_son);
10007
11058
  }
 
11059
  /** Get the expression. */
10008
11060
  CTree *Expr () const { return sons[1]; }
 
11061
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
10009
11062
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
11063
  /** Get the semantic information object. */
10010
11064
  CSemObject *SemObject () const { return (CSemObject*)this; }
10011
11065
   private:
10012
11066
  typedef CT_DeleteExpr CCExprResolveExpr;
10013
11067
 
10014
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11068
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10015
11069
 public :
10016
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11070
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10017
11071
  typedef CT_DeleteExpr CExprResolveExpr;
10018
11072
 
10019
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11073
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10020
11074
 public :
10021
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10022
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11075
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11076
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10023
11077
};
10024
11078
 
 
11079
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
11080
 *  Tree node representing a new expression, e.g. new A(). */
10025
11081
 
10026
 
#line 10027 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11082
#line 11083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
10027
11083
} // closed Puma
 
11084
class CCExprResolve;
 
11085
class CExprResolve;
10028
11086
class WinIfExists;
10029
11087
class WinImportHandler;
10030
11088
class WinMacros;
10031
 
class CMatchSyntax;
10032
 
class ExtGnu;
 
11089
class WinAsm;
 
11090
class WinDeclSpecs;
 
11091
class WinMemberExplSpec;
 
11092
class WinTypeKeywords;
 
11093
class WinFriend;
10033
11094
class ExtAC;
10034
11095
class ExtACBuilderCoupling;
10035
11096
class ExtACSyntaxCoupling;
10036
11097
class ExtACTree;
10037
11098
class ExtACKeywords;
10038
 
class WinAsm;
10039
 
class WinDeclSpecs;
10040
 
class WinMemberExplSpec;
10041
 
class WinTypeKeywords;
 
11099
class ExtGnu;
10042
11100
class PragmaOnceUnitState;
10043
11101
class PragmaOnce;
10044
 
class CCExprResolve;
10045
 
class CExprResolve;
10046
 
namespace Puma {
10047
 
 
10048
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11102
class CMatchSyntax;
 
11103
namespace Puma {
 
11104
 
 
11105
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11106
 
 
11107
#line 11108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11108
} // closed Puma
 
11109
 
 
11110
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11111
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11112
#include "CCExprResolveH.ah"
 
11113
#endif
 
11114
namespace Puma {
 
11115
 
 
11116
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11117
 
 
11118
#line 11119 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11119
} // closed Puma
 
11120
 
 
11121
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11122
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11123
#include "CExprResolveH.ah"
 
11124
#endif
 
11125
namespace Puma {
 
11126
 
 
11127
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10049
11128
class CT_NewExpr : public CT_Expression, public CSemObject {
10050
 
#line 10051 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11129
#line 11130 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11130
  friend class ::CCExprResolve;
 
11131
  friend class ::CExprResolve;
10051
11132
  friend class ::WinIfExists;
10052
11133
  friend class ::WinImportHandler;
10053
11134
  friend class ::WinMacros;
10054
 
  friend class ::CMatchSyntax;
10055
 
  friend class ::ExtGnu;
 
11135
  friend class ::WinAsm;
 
11136
  friend class ::WinDeclSpecs;
 
11137
  friend class ::WinMemberExplSpec;
 
11138
  friend class ::WinTypeKeywords;
 
11139
  friend class ::WinFriend;
10056
11140
  friend class ::ExtAC;
10057
11141
  friend class ::ExtACBuilderCoupling;
10058
11142
  friend class ::ExtACSyntaxCoupling;
10059
11143
  friend class ::ExtACTree;
10060
11144
  friend class ::ExtACKeywords;
10061
 
  friend class ::WinAsm;
10062
 
  friend class ::WinDeclSpecs;
10063
 
  friend class ::WinMemberExplSpec;
10064
 
  friend class ::WinTypeKeywords;
 
11145
  friend class ::ExtGnu;
10065
11146
  friend class ::PragmaOnceUnitState;
10066
11147
  friend class ::PragmaOnce;
10067
 
  friend class ::CCExprResolve;
10068
 
  friend class ::CExprResolve;
 
11148
  friend class ::CMatchSyntax;
10069
11149
 
10070
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11150
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10071
11151
 
10072
11152
  CTree *sons[6]; // oper, placement, open, type, close, init
10073
11153
 
10074
11154
public:
 
11155
  /** Constructor.
 
11156
   *  \param op The new operator.
 
11157
   *  \param p The optional placement expression.
 
11158
   *  \param o The optional left parenthesis around the type identifier.
 
11159
   *  \param t The type identifier specifying the type of the object to create.
 
11160
   *  \param c The optional right parenthesis around the type identifier.
 
11161
   *  \param i The optional initializer. */
10075
11162
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
10076
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
11163
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
11164
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
10077
11165
  }
 
11166
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10078
11167
  static const char *NodeId ();
 
11168
  /** Get the name of the node. Can be compared with NodeId(). */
10079
11169
  const char *NodeName () const { return NodeId (); }
 
11170
  /** Get the number of sons. */
10080
11171
  int Sons () const { return CTree::Sons (sons, 6); }
 
11172
  /** Get the n-th son.
 
11173
   *  \param n The index of the son.
 
11174
   *  \return The n-th son or NULL. */
10081
11175
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
11176
  /** Replace a son.
 
11177
   *  \param old_son The son to replace.
 
11178
   *  \param new_son The new son. */
10082
11179
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10083
11180
    CTree::ReplaceSon (sons, 6, old_son, new_son);
10084
11181
  }
 
11182
  /** Get the operator name. */
10085
11183
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
11184
  /** Get the placement expression. */
10086
11185
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
11186
  /** Get the initializer. */
10087
11187
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
11188
  /** Get the type of the object to create. */
10088
11189
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
11190
  /** Get the semantic information object. */
10089
11191
  CSemObject *SemObject () const { return (CSemObject*)this; }
10090
11192
   private:
10091
11193
  typedef CT_NewExpr CCExprResolveExpr;
10092
11194
 
10093
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11195
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10094
11196
 public :
10095
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11197
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10096
11198
  typedef CT_NewExpr CExprResolveExpr;
10097
11199
 
10098
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11200
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10099
11201
 public :
10100
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10101
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11202
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11203
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10102
11204
};
10103
11205
 
 
11206
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
11207
 *  Tree node representing an if-then expression, 
 
11208
 *  e.g. a>0?a:b or a?:b. */
10104
11209
 
10105
 
#line 10106 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11210
#line 11211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
10106
11211
} // closed Puma
 
11212
class CCExprResolve;
 
11213
class CExprResolve;
10107
11214
class WinIfExists;
10108
11215
class WinImportHandler;
10109
11216
class WinMacros;
10110
 
class CMatchSyntax;
10111
 
class ExtGnu;
 
11217
class WinAsm;
 
11218
class WinDeclSpecs;
 
11219
class WinMemberExplSpec;
 
11220
class WinTypeKeywords;
 
11221
class WinFriend;
10112
11222
class ExtAC;
10113
11223
class ExtACBuilderCoupling;
10114
11224
class ExtACSyntaxCoupling;
10115
11225
class ExtACTree;
10116
11226
class ExtACKeywords;
10117
 
class WinAsm;
10118
 
class WinDeclSpecs;
10119
 
class WinMemberExplSpec;
10120
 
class WinTypeKeywords;
 
11227
class ExtGnu;
10121
11228
class PragmaOnceUnitState;
10122
11229
class PragmaOnce;
10123
 
class CCExprResolve;
10124
 
class CExprResolve;
10125
 
namespace Puma {
10126
 
 
10127
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11230
class CMatchSyntax;
 
11231
namespace Puma {
 
11232
 
 
11233
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11234
 
 
11235
#line 11236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11236
} // closed Puma
 
11237
 
 
11238
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11239
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11240
#include "CCExprResolveH.ah"
 
11241
#endif
 
11242
namespace Puma {
 
11243
 
 
11244
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11245
 
 
11246
#line 11247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11247
} // closed Puma
 
11248
 
 
11249
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11250
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11251
#include "CExprResolveH.ah"
 
11252
#endif
 
11253
namespace Puma {
 
11254
 
 
11255
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10128
11256
class CT_IfThenExpr : public CT_Expression {
10129
 
#line 10130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11257
#line 11258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11258
  friend class ::CCExprResolve;
 
11259
  friend class ::CExprResolve;
10130
11260
  friend class ::WinIfExists;
10131
11261
  friend class ::WinImportHandler;
10132
11262
  friend class ::WinMacros;
10133
 
  friend class ::CMatchSyntax;
10134
 
  friend class ::ExtGnu;
 
11263
  friend class ::WinAsm;
 
11264
  friend class ::WinDeclSpecs;
 
11265
  friend class ::WinMemberExplSpec;
 
11266
  friend class ::WinTypeKeywords;
 
11267
  friend class ::WinFriend;
10135
11268
  friend class ::ExtAC;
10136
11269
  friend class ::ExtACBuilderCoupling;
10137
11270
  friend class ::ExtACSyntaxCoupling;
10138
11271
  friend class ::ExtACTree;
10139
11272
  friend class ::ExtACKeywords;
10140
 
  friend class ::WinAsm;
10141
 
  friend class ::WinDeclSpecs;
10142
 
  friend class ::WinMemberExplSpec;
10143
 
  friend class ::WinTypeKeywords;
 
11273
  friend class ::ExtGnu;
10144
11274
  friend class ::PragmaOnceUnitState;
10145
11275
  friend class ::PragmaOnce;
10146
 
  friend class ::CCExprResolve;
10147
 
  friend class ::CExprResolve;
 
11276
  friend class ::CMatchSyntax;
10148
11277
 
10149
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11278
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10150
11279
 
10151
11280
  CTree *sons[5]; // cond, oper, left, colon, right
10152
11281
 
10153
11282
public:
 
11283
  /** Constructor.
 
11284
   *  \param c1 The condition expression.
 
11285
   *  \param o The question mark operator. 
 
11286
   *  \param l The expression to the left of the colon.
 
11287
   *  \param c2 The colon operator.
 
11288
   *  \param r The expression to the right of the colon. */ 
10154
11289
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
10155
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
11290
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
11291
    AddSon (sons[3], c2); AddSon (sons[4], r);
10156
11292
  }
 
11293
  /** Constructor.
 
11294
   *  \param c1 The condition expression.
 
11295
   *  \param o The question mark operator. 
 
11296
   *  \param c2 The colon operator.
 
11297
   *  \param r The expression to the right of the colon. */ 
10157
11298
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
10158
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
11299
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
11300
    AddSon (sons[3], c2); AddSon (sons[4], r);
10159
11301
  }
 
11302
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10160
11303
  static const char *NodeId ();
 
11304
  /** Get the name of the node. Can be compared with NodeId(). */
10161
11305
  const char *NodeName () const { return NodeId (); }
 
11306
  /** Get the number of sons. */
10162
11307
  int Sons () const { return CTree::Sons (sons, 5); }
 
11308
  /** Get the n-th son.
 
11309
   *  \param n The index of the son.
 
11310
   *  \return The n-th son or NULL. */
10163
11311
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
11312
  /** Get the condition expression. */
10164
11313
  CTree *Condition () const { return sons[0]; }
 
11314
  /** Get the left expression (condition=true). */
10165
11315
  CTree *LeftOperand () const { return sons[2]; }
 
11316
  /** Get the right expression (condition=false). */
10166
11317
  CTree *RightOperand () const { return sons[4]; }
 
11318
  /** Replace a son.
 
11319
   *  \param old_son The son to replace.
 
11320
   *  \param new_son The new son. */
10167
11321
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10168
11322
    CTree::ReplaceSon (sons, 5, old_son, new_son);
10169
11323
  }
10170
11324
   private:
10171
11325
  typedef CT_IfThenExpr CCExprResolveExpr;
10172
11326
 
10173
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11327
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10174
11328
 public :
10175
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11329
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10176
11330
  typedef CT_IfThenExpr CExprResolveExpr;
10177
11331
 
10178
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11332
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10179
11333
 public :
10180
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10181
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11334
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11335
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10182
11336
};
10183
11337
 
 
11338
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
11339
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
10184
11340
 
10185
 
#line 10186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11341
#line 11342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
10186
11342
} // closed Puma
 
11343
class CCExprResolve;
 
11344
class CExprResolve;
10187
11345
class WinIfExists;
10188
11346
class WinImportHandler;
10189
11347
class WinMacros;
10190
 
class CMatchSyntax;
10191
 
class ExtGnu;
 
11348
class WinAsm;
 
11349
class WinDeclSpecs;
 
11350
class WinMemberExplSpec;
 
11351
class WinTypeKeywords;
 
11352
class WinFriend;
10192
11353
class ExtAC;
10193
11354
class ExtACBuilderCoupling;
10194
11355
class ExtACSyntaxCoupling;
10195
11356
class ExtACTree;
10196
11357
class ExtACKeywords;
10197
 
class WinAsm;
10198
 
class WinDeclSpecs;
10199
 
class WinMemberExplSpec;
10200
 
class WinTypeKeywords;
 
11358
class ExtGnu;
10201
11359
class PragmaOnceUnitState;
10202
11360
class PragmaOnce;
10203
 
class CCExprResolve;
10204
 
class CExprResolve;
10205
 
namespace Puma {
10206
 
 
10207
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11361
class CMatchSyntax;
 
11362
namespace Puma {
 
11363
 
 
11364
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11365
 
 
11366
#line 11367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11367
} // closed Puma
 
11368
 
 
11369
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11370
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11371
#include "CCExprResolveH.ah"
 
11372
#endif
 
11373
namespace Puma {
 
11374
 
 
11375
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11376
 
 
11377
#line 11378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11378
} // closed Puma
 
11379
 
 
11380
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11381
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11382
#include "CExprResolveH.ah"
 
11383
#endif
 
11384
namespace Puma {
 
11385
 
 
11386
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10208
11387
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
10209
 
#line 10210 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11388
#line 11389 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11389
  friend class ::CCExprResolve;
 
11390
  friend class ::CExprResolve;
10210
11391
  friend class ::WinIfExists;
10211
11392
  friend class ::WinImportHandler;
10212
11393
  friend class ::WinMacros;
10213
 
  friend class ::CMatchSyntax;
10214
 
  friend class ::ExtGnu;
 
11394
  friend class ::WinAsm;
 
11395
  friend class ::WinDeclSpecs;
 
11396
  friend class ::WinMemberExplSpec;
 
11397
  friend class ::WinTypeKeywords;
 
11398
  friend class ::WinFriend;
10215
11399
  friend class ::ExtAC;
10216
11400
  friend class ::ExtACBuilderCoupling;
10217
11401
  friend class ::ExtACSyntaxCoupling;
10218
11402
  friend class ::ExtACTree;
10219
11403
  friend class ::ExtACKeywords;
10220
 
  friend class ::WinAsm;
10221
 
  friend class ::WinDeclSpecs;
10222
 
  friend class ::WinMemberExplSpec;
10223
 
  friend class ::WinTypeKeywords;
 
11404
  friend class ::ExtGnu;
10224
11405
  friend class ::PragmaOnceUnitState;
10225
11406
  friend class ::PragmaOnce;
10226
 
  friend class ::CCExprResolve;
10227
 
  friend class ::CExprResolve;
 
11407
  friend class ::CMatchSyntax;
10228
11408
 
10229
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11409
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10230
11410
 
10231
11411
  CTree *sons[4]; // open, type, close, init
10232
11412
 
10233
11413
public:
 
11414
  /** Constructor.
 
11415
   *  \param r Left parenthesis of the type name.
 
11416
   *  \param t The type name.
 
11417
   *  \param cr Right parenthesis of the type name.
 
11418
   *  \param i The initializer list. */
10234
11419
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
10235
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
11420
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
11421
    AddSon (sons[2], cr); AddSon (sons[3], i);
10236
11422
  }
 
11423
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10237
11424
  static const char *NodeId ();
 
11425
  /** Get the name of the node. Can be compared with NodeId(). */
10238
11426
  const char *NodeName () const { return NodeId (); }
 
11427
  /** Get the number of sons. */
10239
11428
  int Sons () const { return 4; }
 
11429
  /** Get the n-th son.
 
11430
   *  \param n The index of the son.
 
11431
   *  \return The n-th son or NULL. */
10240
11432
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
11433
  /** Replace a son.
 
11434
   *  \param old_son The son to replace.
 
11435
   *  \param new_son The new son. */
10241
11436
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10242
11437
    CTree::ReplaceSon (sons, 4, old_son, new_son);
10243
11438
  }
 
11439
  /** Get the type name. */
10244
11440
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
11441
  /** Get the initializer list. */
10245
11442
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
11443
  /** Get the semantic information object. */
10246
11444
  CSemObject *SemObject () const { return (CSemObject*)this; }
10247
11445
   private:
10248
11446
  typedef CT_CmpdLiteral CCExprResolveExpr;
10249
11447
 
10250
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11448
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10251
11449
 public :
10252
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11450
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10253
11451
  typedef CT_CmpdLiteral CExprResolveExpr;
10254
11452
 
10255
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11453
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10256
11454
 public :
10257
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10258
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11455
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11456
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10259
11457
};
10260
11458
 
 
11459
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
11460
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
10261
11461
 
10262
 
#line 10263 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11462
#line 11463 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
10263
11463
} // closed Puma
 
11464
class CCExprResolve;
 
11465
class CExprResolve;
10264
11466
class WinIfExists;
10265
11467
class WinImportHandler;
10266
11468
class WinMacros;
10267
 
class CMatchSyntax;
10268
 
class ExtGnu;
 
11469
class WinAsm;
 
11470
class WinDeclSpecs;
 
11471
class WinMemberExplSpec;
 
11472
class WinTypeKeywords;
 
11473
class WinFriend;
10269
11474
class ExtAC;
10270
11475
class ExtACBuilderCoupling;
10271
11476
class ExtACSyntaxCoupling;
10272
11477
class ExtACTree;
10273
11478
class ExtACKeywords;
10274
 
class WinAsm;
10275
 
class WinDeclSpecs;
10276
 
class WinMemberExplSpec;
10277
 
class WinTypeKeywords;
 
11479
class ExtGnu;
10278
11480
class PragmaOnceUnitState;
10279
11481
class PragmaOnce;
10280
 
class CCExprResolve;
10281
 
class CExprResolve;
10282
 
namespace Puma {
10283
 
 
10284
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11482
class CMatchSyntax;
 
11483
namespace Puma {
 
11484
 
 
11485
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11486
 
 
11487
#line 11488 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11488
} // closed Puma
 
11489
 
 
11490
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11491
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11492
#include "CCExprResolveH.ah"
 
11493
#endif
 
11494
namespace Puma {
 
11495
 
 
11496
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11497
 
 
11498
#line 11499 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11499
} // closed Puma
 
11500
 
 
11501
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11502
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11503
#include "CExprResolveH.ah"
 
11504
#endif
 
11505
namespace Puma {
 
11506
 
 
11507
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10285
11508
class CT_ConstructExpr : public CT_Expression, public CSemObject {
10286
 
#line 10287 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11509
#line 11510 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11510
  friend class ::CCExprResolve;
 
11511
  friend class ::CExprResolve;
10287
11512
  friend class ::WinIfExists;
10288
11513
  friend class ::WinImportHandler;
10289
11514
  friend class ::WinMacros;
10290
 
  friend class ::CMatchSyntax;
10291
 
  friend class ::ExtGnu;
 
11515
  friend class ::WinAsm;
 
11516
  friend class ::WinDeclSpecs;
 
11517
  friend class ::WinMemberExplSpec;
 
11518
  friend class ::WinTypeKeywords;
 
11519
  friend class ::WinFriend;
10292
11520
  friend class ::ExtAC;
10293
11521
  friend class ::ExtACBuilderCoupling;
10294
11522
  friend class ::ExtACSyntaxCoupling;
10295
11523
  friend class ::ExtACTree;
10296
11524
  friend class ::ExtACKeywords;
10297
 
  friend class ::WinAsm;
10298
 
  friend class ::WinDeclSpecs;
10299
 
  friend class ::WinMemberExplSpec;
10300
 
  friend class ::WinTypeKeywords;
 
11525
  friend class ::ExtGnu;
10301
11526
  friend class ::PragmaOnceUnitState;
10302
11527
  friend class ::PragmaOnce;
10303
 
  friend class ::CCExprResolve;
10304
 
  friend class ::CExprResolve;
 
11528
  friend class ::CMatchSyntax;
10305
11529
 
10306
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11530
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10307
11531
 
10308
11532
  CTree *sons[2]; // type, init
10309
11533
 
10310
11534
public:
10311
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
11535
  /** Constructor.
 
11536
   *  \param t The type name.
 
11537
   *  \param i The initializer list. */
 
11538
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
11539
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10312
11540
  static const char *NodeId ();
 
11541
  /** Get the name of the node. Can be compared with NodeId(). */
10313
11542
  const char *NodeName () const { return NodeId (); }
 
11543
  /** Get the number of sons. */
10314
11544
  int Sons () const { return 2; }
 
11545
  /** Get the n-th son.
 
11546
   *  \param n The index of the son.
 
11547
   *  \return The n-th son or NULL. */
10315
11548
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
11549
  /** Replace a son.
 
11550
   *  \param old_son The son to replace.
 
11551
   *  \param new_son The new son. */
10316
11552
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10317
11553
    CTree::ReplaceSon (sons, 2, old_son, new_son);
10318
11554
  }
 
11555
  /** Get the type name. */
10319
11556
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
11557
  /** Get the initializer. */
10320
11558
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
11559
  /** Get the semantic information object. */
10321
11560
  CSemObject *SemObject () const { return (CSemObject*)this; }
10322
11561
   private:
10323
11562
  typedef CT_ConstructExpr CCExprResolveExpr;
10324
11563
 
10325
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11564
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10326
11565
 public :
10327
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11566
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10328
11567
  typedef CT_ConstructExpr CExprResolveExpr;
10329
11568
 
10330
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11569
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10331
11570
 public :
10332
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10333
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11571
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11572
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10334
11573
};
10335
11574
 
 
11575
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
11576
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
10336
11577
 
10337
 
#line 10338 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11578
#line 11579 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
10338
11579
} // closed Puma
 
11580
class CCExprResolve;
 
11581
class CExprResolve;
10339
11582
class WinIfExists;
10340
11583
class WinImportHandler;
10341
11584
class WinMacros;
10342
 
class CMatchSyntax;
10343
 
class ExtGnu;
 
11585
class WinAsm;
 
11586
class WinDeclSpecs;
 
11587
class WinMemberExplSpec;
 
11588
class WinTypeKeywords;
 
11589
class WinFriend;
10344
11590
class ExtAC;
10345
11591
class ExtACBuilderCoupling;
10346
11592
class ExtACSyntaxCoupling;
10347
11593
class ExtACTree;
10348
11594
class ExtACKeywords;
10349
 
class WinAsm;
10350
 
class WinDeclSpecs;
10351
 
class WinMemberExplSpec;
10352
 
class WinTypeKeywords;
 
11595
class ExtGnu;
10353
11596
class PragmaOnceUnitState;
10354
11597
class PragmaOnce;
10355
 
class CCExprResolve;
10356
 
class CExprResolve;
10357
 
namespace Puma {
10358
 
 
10359
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11598
class CMatchSyntax;
 
11599
namespace Puma {
 
11600
 
 
11601
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11602
 
 
11603
#line 11604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11604
} // closed Puma
 
11605
 
 
11606
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11607
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11608
#include "CCExprResolveH.ah"
 
11609
#endif
 
11610
namespace Puma {
 
11611
 
 
11612
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11613
 
 
11614
#line 11615 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11615
} // closed Puma
 
11616
 
 
11617
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11618
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11619
#include "CExprResolveH.ah"
 
11620
#endif
 
11621
namespace Puma {
 
11622
 
 
11623
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10360
11624
class CT_ThrowExpr : public CT_Expression {
10361
 
#line 10362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11625
#line 11626 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11626
  friend class ::CCExprResolve;
 
11627
  friend class ::CExprResolve;
10362
11628
  friend class ::WinIfExists;
10363
11629
  friend class ::WinImportHandler;
10364
11630
  friend class ::WinMacros;
10365
 
  friend class ::CMatchSyntax;
10366
 
  friend class ::ExtGnu;
 
11631
  friend class ::WinAsm;
 
11632
  friend class ::WinDeclSpecs;
 
11633
  friend class ::WinMemberExplSpec;
 
11634
  friend class ::WinTypeKeywords;
 
11635
  friend class ::WinFriend;
10367
11636
  friend class ::ExtAC;
10368
11637
  friend class ::ExtACBuilderCoupling;
10369
11638
  friend class ::ExtACSyntaxCoupling;
10370
11639
  friend class ::ExtACTree;
10371
11640
  friend class ::ExtACKeywords;
10372
 
  friend class ::WinAsm;
10373
 
  friend class ::WinDeclSpecs;
10374
 
  friend class ::WinMemberExplSpec;
10375
 
  friend class ::WinTypeKeywords;
 
11641
  friend class ::ExtGnu;
10376
11642
  friend class ::PragmaOnceUnitState;
10377
11643
  friend class ::PragmaOnce;
10378
 
  friend class ::CCExprResolve;
10379
 
  friend class ::CExprResolve;
 
11644
  friend class ::CMatchSyntax;
10380
11645
 
10381
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11646
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10382
11647
 
10383
11648
  CTree *sons[2]; // throw, expr
10384
11649
 
10385
11650
public:
10386
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
11651
  /** Constructor.
 
11652
   *  \param t The 'throw' keyword.
 
11653
   *  \param e The expression. */
 
11654
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
11655
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10387
11656
  static const char *NodeId ();
 
11657
  /** Get the name of the node. Can be compared with NodeId(). */
10388
11658
  const char *NodeName () const { return NodeId (); }
 
11659
  /** Get the number of sons. */
10389
11660
  int Sons () const { return CTree::Sons (sons, 2); }
 
11661
  /** Get the n-th son.
 
11662
   *  \param n The index of the son.
 
11663
   *  \return The n-th son or NULL. */
10390
11664
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
11665
  /** Replace a son.
 
11666
   *  \param old_son The son to replace.
 
11667
   *  \param new_son The new son. */
10391
11668
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10392
11669
    CTree::ReplaceSon (sons, 2, old_son, new_son);
10393
11670
  }
 
11671
  /** Get the expression. */
10394
11672
  CTree *Expr () const { return sons[1]; }
10395
11673
   private:
10396
11674
  typedef CT_ThrowExpr CCExprResolveExpr;
10397
11675
 
10398
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11676
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10399
11677
 public :
10400
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11678
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10401
11679
  typedef CT_ThrowExpr CExprResolveExpr;
10402
11680
 
10403
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11681
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10404
11682
 public :
10405
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10406
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11683
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11684
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10407
11685
};
10408
11686
 
 
11687
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
11688
 *  Tree node representing an index expression. */
10409
11689
 
10410
 
#line 10411 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11690
#line 11691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
10411
11691
} // closed Puma
 
11692
class CCExprResolve;
 
11693
class CExprResolve;
10412
11694
class WinIfExists;
10413
11695
class WinImportHandler;
10414
11696
class WinMacros;
10415
 
class CMatchSyntax;
10416
 
class ExtGnu;
 
11697
class WinAsm;
 
11698
class WinDeclSpecs;
 
11699
class WinMemberExplSpec;
 
11700
class WinTypeKeywords;
 
11701
class WinFriend;
10417
11702
class ExtAC;
10418
11703
class ExtACBuilderCoupling;
10419
11704
class ExtACSyntaxCoupling;
10420
11705
class ExtACTree;
10421
11706
class ExtACKeywords;
10422
 
class WinAsm;
10423
 
class WinDeclSpecs;
10424
 
class WinMemberExplSpec;
10425
 
class WinTypeKeywords;
 
11707
class ExtGnu;
10426
11708
class PragmaOnceUnitState;
10427
11709
class PragmaOnce;
10428
 
class CCExprResolve;
10429
 
class CExprResolve;
10430
 
namespace Puma {
10431
 
 
10432
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10433
 
class CT_IndexExpr : public CT_Expression {
10434
 
#line 10435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11710
class CMatchSyntax;
 
11711
namespace Puma {
 
11712
 
 
11713
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11714
 
 
11715
#line 11716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11716
} // closed Puma
 
11717
 
 
11718
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11719
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11720
#include "CCExprResolveH.ah"
 
11721
#endif
 
11722
namespace Puma {
 
11723
 
 
11724
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11725
 
 
11726
#line 11727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11727
} // closed Puma
 
11728
 
 
11729
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11730
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11731
#include "CExprResolveH.ah"
 
11732
#endif
 
11733
namespace Puma {
 
11734
 
 
11735
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11736
class CT_IndexExpr : public CT_Call {
 
11737
#line 11738 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11738
  friend class ::CCExprResolve;
 
11739
  friend class ::CExprResolve;
10435
11740
  friend class ::WinIfExists;
10436
11741
  friend class ::WinImportHandler;
10437
11742
  friend class ::WinMacros;
10438
 
  friend class ::CMatchSyntax;
10439
 
  friend class ::ExtGnu;
 
11743
  friend class ::WinAsm;
 
11744
  friend class ::WinDeclSpecs;
 
11745
  friend class ::WinMemberExplSpec;
 
11746
  friend class ::WinTypeKeywords;
 
11747
  friend class ::WinFriend;
10440
11748
  friend class ::ExtAC;
10441
11749
  friend class ::ExtACBuilderCoupling;
10442
11750
  friend class ::ExtACSyntaxCoupling;
10443
11751
  friend class ::ExtACTree;
10444
11752
  friend class ::ExtACKeywords;
10445
 
  friend class ::WinAsm;
10446
 
  friend class ::WinDeclSpecs;
10447
 
  friend class ::WinMemberExplSpec;
10448
 
  friend class ::WinTypeKeywords;
 
11753
  friend class ::ExtGnu;
10449
11754
  friend class ::PragmaOnceUnitState;
10450
11755
  friend class ::PragmaOnce;
10451
 
  friend class ::CCExprResolve;
10452
 
  friend class ::CExprResolve;
 
11756
  friend class ::CMatchSyntax;
10453
11757
 
10454
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11758
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10455
11759
 
10456
11760
  CTree *sons[4]; // expr, open, index, close
10457
11761
 
10458
11762
public:
 
11763
  /** Constructor.
 
11764
   *  \param e The expression on which to invoke the index operator.
 
11765
   *  \param o Left parenthesis of the index expression.
 
11766
   *  \param i The index expression. 
 
11767
   *  \param c Right parenthesis of the index expression. */
10459
11768
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
10460
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
11769
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
11770
    AddSon (sons[2], i); AddSon (sons[3], c);
10461
11771
  }
 
11772
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10462
11773
  static const char *NodeId ();
 
11774
  /** Get the name of the node. Can be compared with NodeId(). */
10463
11775
  const char *NodeName () const { return NodeId (); }
 
11776
  /** Get the number of sons. */
10464
11777
  int Sons () const { return 4; }
 
11778
  /** Get the n-th son.
 
11779
   *  \param n The index of the son.
 
11780
   *  \return The n-th son or NULL. */
10465
11781
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
11782
  /** Replace a son.
 
11783
   *  \param old_son The son to replace.
 
11784
   *  \param new_son The new son. */
10466
11785
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10467
11786
    CTree::ReplaceSon (sons, 4, old_son, new_son);
10468
11787
  }
10469
11788
   private:
10470
11789
  typedef CT_IndexExpr CCExprResolveExpr;
10471
11790
 
10472
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11791
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10473
11792
 public :
10474
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11793
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10475
11794
  typedef CT_IndexExpr CExprResolveExpr;
10476
11795
 
10477
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11796
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10478
11797
 public :
10479
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10480
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11798
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11799
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10481
11800
};
10482
11801
 
 
11802
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
11803
 *  Tree node representing a function call expression, e.g. f(i). */
10483
11804
 
10484
 
#line 10485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11805
#line 11806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
10485
11806
} // closed Puma
 
11807
class CCExprResolve;
 
11808
class CExprResolve;
10486
11809
class WinIfExists;
10487
11810
class WinImportHandler;
10488
11811
class WinMacros;
10489
 
class CMatchSyntax;
10490
 
class ExtGnu;
 
11812
class WinAsm;
 
11813
class WinDeclSpecs;
 
11814
class WinMemberExplSpec;
 
11815
class WinTypeKeywords;
 
11816
class WinFriend;
10491
11817
class ExtAC;
10492
11818
class ExtACBuilderCoupling;
10493
11819
class ExtACSyntaxCoupling;
10494
11820
class ExtACTree;
10495
11821
class ExtACKeywords;
10496
 
class WinAsm;
10497
 
class WinDeclSpecs;
10498
 
class WinMemberExplSpec;
10499
 
class WinTypeKeywords;
 
11822
class ExtGnu;
10500
11823
class PragmaOnceUnitState;
10501
11824
class PragmaOnce;
10502
 
class CCExprResolve;
10503
 
class CExprResolve;
10504
 
namespace Puma {
10505
 
 
10506
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
10507
 
class CT_CallExpr : public CT_Expression, public CSemObject {
10508
 
#line 10509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11825
class CMatchSyntax;
 
11826
namespace Puma {
 
11827
 
 
11828
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11829
 
 
11830
#line 11831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11831
} // closed Puma
 
11832
 
 
11833
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11834
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11835
#include "CCExprResolveH.ah"
 
11836
#endif
 
11837
namespace Puma {
 
11838
 
 
11839
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11840
 
 
11841
#line 11842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11842
} // closed Puma
 
11843
 
 
11844
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11845
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11846
#include "CExprResolveH.ah"
 
11847
#endif
 
11848
namespace Puma {
 
11849
 
 
11850
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11851
class CT_CallExpr : public CT_Call {
 
11852
#line 11853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11853
  friend class ::CCExprResolve;
 
11854
  friend class ::CExprResolve;
10509
11855
  friend class ::WinIfExists;
10510
11856
  friend class ::WinImportHandler;
10511
11857
  friend class ::WinMacros;
10512
 
  friend class ::CMatchSyntax;
10513
 
  friend class ::ExtGnu;
 
11858
  friend class ::WinAsm;
 
11859
  friend class ::WinDeclSpecs;
 
11860
  friend class ::WinMemberExplSpec;
 
11861
  friend class ::WinTypeKeywords;
 
11862
  friend class ::WinFriend;
10514
11863
  friend class ::ExtAC;
10515
11864
  friend class ::ExtACBuilderCoupling;
10516
11865
  friend class ::ExtACSyntaxCoupling;
10517
11866
  friend class ::ExtACTree;
10518
11867
  friend class ::ExtACKeywords;
10519
 
  friend class ::WinAsm;
10520
 
  friend class ::WinDeclSpecs;
10521
 
  friend class ::WinMemberExplSpec;
10522
 
  friend class ::WinTypeKeywords;
 
11868
  friend class ::ExtGnu;
10523
11869
  friend class ::PragmaOnceUnitState;
10524
11870
  friend class ::PragmaOnce;
10525
 
  friend class ::CCExprResolve;
10526
 
  friend class ::CExprResolve;
 
11871
  friend class ::CMatchSyntax;
10527
11872
 
10528
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11873
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10529
11874
 
10530
11875
  CTree *sons[2]; // expr, args
10531
11876
 
10532
11877
public:
10533
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
10534
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
11878
  /** Constructor.
 
11879
   *  \param e The expression on which the call is invoked. */
 
11880
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
11881
  /** Constructor.
 
11882
   *  \param e The expression on which the call is invoked.
 
11883
   *  \param l The argument list of the call. */
 
11884
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
11885
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10535
11886
  static const char *NodeId ();
 
11887
  /** Get the name of the node. Can be compared with NodeId(). */
10536
11888
  const char *NodeName () const { return NodeId (); }
 
11889
  /** Get the number of sons. */
10537
11890
  int Sons () const { return CTree::Sons (sons, 2); }
 
11891
  /** Get the n-th son.
 
11892
   *  \param n The index of the son.
 
11893
   *  \return The n-th son or NULL. */
10538
11894
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
11895
  /** Replace a son.
 
11896
   *  \param old_son The son to replace.
 
11897
   *  \param new_son The new son. */
10539
11898
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10540
11899
    CTree::ReplaceSon (sons, 2, old_son, new_son);
10541
11900
  }
10542
11901
  CTree *Expr () const { return sons[0]; }
10543
11902
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
10544
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
10545
11903
   private:
10546
11904
  typedef CT_CallExpr CCExprResolveExpr;
10547
11905
 
10548
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
11906
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10549
11907
 public :
10550
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
11908
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10551
11909
  typedef CT_CallExpr CExprResolveExpr;
10552
11910
 
10553
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
11911
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10554
11912
 public :
10555
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10556
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11913
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
11914
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10557
11915
};
10558
11916
 
 
11917
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
11918
 *  Tree node representing a cast expression, e.g. (int)a. */
10559
11919
 
10560
 
#line 10561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11920
#line 11921 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
10561
11921
} // closed Puma
 
11922
class CCExprResolve;
 
11923
class CExprResolve;
10562
11924
class WinIfExists;
10563
11925
class WinImportHandler;
10564
11926
class WinMacros;
10565
 
class CMatchSyntax;
10566
 
class ExtGnu;
 
11927
class WinAsm;
 
11928
class WinDeclSpecs;
 
11929
class WinMemberExplSpec;
 
11930
class WinTypeKeywords;
 
11931
class WinFriend;
10567
11932
class ExtAC;
10568
11933
class ExtACBuilderCoupling;
10569
11934
class ExtACSyntaxCoupling;
10570
11935
class ExtACTree;
10571
11936
class ExtACKeywords;
10572
 
class WinAsm;
10573
 
class WinDeclSpecs;
10574
 
class WinMemberExplSpec;
10575
 
class WinTypeKeywords;
 
11937
class ExtGnu;
10576
11938
class PragmaOnceUnitState;
10577
11939
class PragmaOnce;
10578
 
class CCExprResolve;
10579
 
class CExprResolve;
10580
 
namespace Puma {
10581
 
 
10582
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11940
class CMatchSyntax;
 
11941
namespace Puma {
 
11942
 
 
11943
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11944
 
 
11945
#line 11946 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11946
} // closed Puma
 
11947
 
 
11948
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11949
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
11950
#include "CCExprResolveH.ah"
 
11951
#endif
 
11952
namespace Puma {
 
11953
 
 
11954
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11955
 
 
11956
#line 11957 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11957
} // closed Puma
 
11958
 
 
11959
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11960
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
11961
#include "CExprResolveH.ah"
 
11962
#endif
 
11963
namespace Puma {
 
11964
 
 
11965
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10583
11966
class CT_CastExpr : public CT_Expression {
10584
 
#line 10585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
11967
#line 11968 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
11968
  friend class ::CCExprResolve;
 
11969
  friend class ::CExprResolve;
10585
11970
  friend class ::WinIfExists;
10586
11971
  friend class ::WinImportHandler;
10587
11972
  friend class ::WinMacros;
10588
 
  friend class ::CMatchSyntax;
10589
 
  friend class ::ExtGnu;
 
11973
  friend class ::WinAsm;
 
11974
  friend class ::WinDeclSpecs;
 
11975
  friend class ::WinMemberExplSpec;
 
11976
  friend class ::WinTypeKeywords;
 
11977
  friend class ::WinFriend;
10590
11978
  friend class ::ExtAC;
10591
11979
  friend class ::ExtACBuilderCoupling;
10592
11980
  friend class ::ExtACSyntaxCoupling;
10593
11981
  friend class ::ExtACTree;
10594
11982
  friend class ::ExtACKeywords;
10595
 
  friend class ::WinAsm;
10596
 
  friend class ::WinDeclSpecs;
10597
 
  friend class ::WinMemberExplSpec;
10598
 
  friend class ::WinTypeKeywords;
 
11983
  friend class ::ExtGnu;
10599
11984
  friend class ::PragmaOnceUnitState;
10600
11985
  friend class ::PragmaOnce;
10601
 
  friend class ::CCExprResolve;
10602
 
  friend class ::CExprResolve;
 
11986
  friend class ::CMatchSyntax;
10603
11987
 
10604
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
11988
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10605
11989
 
10606
11990
  CTree *sons[4]; // open, type, close, expr
10607
11991
 
10608
11992
public:
 
11993
  /** Constructor.
 
11994
   *  \param o Left parenthesis of the type name.
 
11995
   *  \param t The type to cast to.
 
11996
   *  \param c Right parenthesis of the type name. 
 
11997
   *  \param e The expression to cast. */
10609
11998
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
10610
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
11999
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
12000
    AddSon (sons[2], c); AddSon (sons[3], e);
10611
12001
  }
 
12002
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10612
12003
  static const char *NodeId ();
 
12004
  /** Get the name of the node. Can be compared with NodeId(). */
10613
12005
  const char *NodeName () const { return NodeId (); }
 
12006
  /** Get the number of sons. */
10614
12007
  int Sons () const { return 4; }
 
12008
  /** Get the n-th son.
 
12009
   *  \param n The index of the son.
 
12010
   *  \return The n-th son or NULL. */
10615
12011
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
12012
  /** Replace a son.
 
12013
   *  \param old_son The son to replace.
 
12014
   *  \param new_son The new son. */
10616
12015
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10617
12016
    CTree::ReplaceSon (sons, 4, old_son, new_son);
10618
12017
  }
 
12018
  /** Get the casted expression. */
10619
12019
  CTree *Expr () const { return sons[3]; }
 
12020
  /** Get the type to cast to. */
10620
12021
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
10621
12022
   private:
10622
12023
  typedef CT_CastExpr CCExprResolveExpr;
10623
12024
 
10624
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12025
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10625
12026
 public :
10626
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12027
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10627
12028
  typedef CT_CastExpr CExprResolveExpr;
10628
12029
 
10629
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12030
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10630
12031
 public :
10631
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10632
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12032
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12033
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10633
12034
};
10634
12035
 
 
12036
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
12037
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
10635
12038
 
10636
 
#line 10637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12039
#line 12040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
10637
12040
} // closed Puma
 
12041
class CCExprResolve;
 
12042
class CExprResolve;
10638
12043
class WinIfExists;
10639
12044
class WinImportHandler;
10640
12045
class WinMacros;
10641
 
class CMatchSyntax;
10642
 
class ExtGnu;
 
12046
class WinAsm;
 
12047
class WinDeclSpecs;
 
12048
class WinMemberExplSpec;
 
12049
class WinTypeKeywords;
 
12050
class WinFriend;
10643
12051
class ExtAC;
10644
12052
class ExtACBuilderCoupling;
10645
12053
class ExtACSyntaxCoupling;
10646
12054
class ExtACTree;
10647
12055
class ExtACKeywords;
10648
 
class WinAsm;
10649
 
class WinDeclSpecs;
10650
 
class WinMemberExplSpec;
10651
 
class WinTypeKeywords;
 
12056
class ExtGnu;
10652
12057
class PragmaOnceUnitState;
10653
12058
class PragmaOnce;
10654
 
class CCExprResolve;
10655
 
class CExprResolve;
10656
 
namespace Puma {
10657
 
 
10658
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12059
class CMatchSyntax;
 
12060
namespace Puma {
 
12061
 
 
12062
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12063
 
 
12064
#line 12065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12065
} // closed Puma
 
12066
 
 
12067
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12068
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12069
#include "CCExprResolveH.ah"
 
12070
#endif
 
12071
namespace Puma {
 
12072
 
 
12073
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12074
 
 
12075
#line 12076 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12076
} // closed Puma
 
12077
 
 
12078
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12079
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12080
#include "CExprResolveH.ah"
 
12081
#endif
 
12082
namespace Puma {
 
12083
 
 
12084
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10659
12085
class CT_StaticCast : public CT_Expression {
10660
 
#line 10661 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12086
#line 12087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12087
  friend class ::CCExprResolve;
 
12088
  friend class ::CExprResolve;
10661
12089
  friend class ::WinIfExists;
10662
12090
  friend class ::WinImportHandler;
10663
12091
  friend class ::WinMacros;
10664
 
  friend class ::CMatchSyntax;
10665
 
  friend class ::ExtGnu;
 
12092
  friend class ::WinAsm;
 
12093
  friend class ::WinDeclSpecs;
 
12094
  friend class ::WinMemberExplSpec;
 
12095
  friend class ::WinTypeKeywords;
 
12096
  friend class ::WinFriend;
10666
12097
  friend class ::ExtAC;
10667
12098
  friend class ::ExtACBuilderCoupling;
10668
12099
  friend class ::ExtACSyntaxCoupling;
10669
12100
  friend class ::ExtACTree;
10670
12101
  friend class ::ExtACKeywords;
10671
 
  friend class ::WinAsm;
10672
 
  friend class ::WinDeclSpecs;
10673
 
  friend class ::WinMemberExplSpec;
10674
 
  friend class ::WinTypeKeywords;
 
12102
  friend class ::ExtGnu;
10675
12103
  friend class ::PragmaOnceUnitState;
10676
12104
  friend class ::PragmaOnce;
10677
 
  friend class ::CCExprResolve;
10678
 
  friend class ::CExprResolve;
 
12105
  friend class ::CMatchSyntax;
10679
12106
 
10680
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12107
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10681
12108
 
10682
12109
  CTree *sons[5]; // cast, open, type, close, expr
10683
12110
 
10684
12111
public:
 
12112
  /** Constructor.
 
12113
   *  \param cst The cast operator, i.e. 'static_cast'.
 
12114
   *  \param o Left arrow bracket of the type name.
 
12115
   *  \param t The type to cast to.
 
12116
   *  \param c Right array bracket of the type name.
 
12117
   *  \param e The expression to cast. */
10685
12118
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
10686
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
12119
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
12120
    AddSon (sons[3], c); AddSon (sons[4], e);
10687
12121
  }
 
12122
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10688
12123
  static const char *NodeId ();
 
12124
  /** Get the name of the node. Can be compared with NodeId(). */
10689
12125
  const char *NodeName () const { return NodeId (); }
 
12126
  /** Get the number of sons. */
10690
12127
  int Sons () const { return 5; }
 
12128
  /** Get the n-th son.
 
12129
   *  \param n The index of the son.
 
12130
   *  \return The n-th son or NULL. */
10691
12131
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
12132
  /** Replace a son.
 
12133
   *  \param old_son The son to replace.
 
12134
   *  \param new_son The new son. */
10692
12135
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
10693
12136
    CTree::ReplaceSon (sons, 5, old_son, new_son);
10694
12137
  }
 
12138
  /** Get the casted expression. */
10695
12139
  CTree *Expr () const { return sons[4]; }
 
12140
  /** Get the type to cast to. */
10696
12141
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
10697
12142
   private:
10698
12143
  typedef CT_StaticCast CCExprResolveExpr;
10699
12144
 
10700
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12145
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10701
12146
 public :
10702
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12147
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10703
12148
  typedef CT_StaticCast CExprResolveExpr;
10704
12149
 
10705
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12150
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10706
12151
 public :
10707
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10708
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12152
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12153
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10709
12154
};
10710
12155
 
 
12156
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
12157
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
10711
12158
 
10712
 
#line 10713 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12159
#line 12160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
10713
12160
} // closed Puma
 
12161
class CCExprResolve;
 
12162
class CExprResolve;
10714
12163
class WinIfExists;
10715
12164
class WinImportHandler;
10716
12165
class WinMacros;
10717
 
class CMatchSyntax;
10718
 
class ExtGnu;
 
12166
class WinAsm;
 
12167
class WinDeclSpecs;
 
12168
class WinMemberExplSpec;
 
12169
class WinTypeKeywords;
 
12170
class WinFriend;
10719
12171
class ExtAC;
10720
12172
class ExtACBuilderCoupling;
10721
12173
class ExtACSyntaxCoupling;
10722
12174
class ExtACTree;
10723
12175
class ExtACKeywords;
10724
 
class WinAsm;
10725
 
class WinDeclSpecs;
10726
 
class WinMemberExplSpec;
10727
 
class WinTypeKeywords;
 
12176
class ExtGnu;
10728
12177
class PragmaOnceUnitState;
10729
12178
class PragmaOnce;
10730
 
class CCExprResolve;
10731
 
class CExprResolve;
10732
 
namespace Puma {
10733
 
 
10734
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12179
class CMatchSyntax;
 
12180
namespace Puma {
 
12181
 
 
12182
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12183
 
 
12184
#line 12185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12185
} // closed Puma
 
12186
 
 
12187
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12188
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12189
#include "CCExprResolveH.ah"
 
12190
#endif
 
12191
namespace Puma {
 
12192
 
 
12193
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12194
 
 
12195
#line 12196 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12196
} // closed Puma
 
12197
 
 
12198
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12199
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12200
#include "CExprResolveH.ah"
 
12201
#endif
 
12202
namespace Puma {
 
12203
 
 
12204
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10735
12205
class CT_ConstCast : public CT_StaticCast {
10736
 
#line 10737 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12206
#line 12207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12207
  friend class ::CCExprResolve;
 
12208
  friend class ::CExprResolve;
10737
12209
  friend class ::WinIfExists;
10738
12210
  friend class ::WinImportHandler;
10739
12211
  friend class ::WinMacros;
10740
 
  friend class ::CMatchSyntax;
10741
 
  friend class ::ExtGnu;
 
12212
  friend class ::WinAsm;
 
12213
  friend class ::WinDeclSpecs;
 
12214
  friend class ::WinMemberExplSpec;
 
12215
  friend class ::WinTypeKeywords;
 
12216
  friend class ::WinFriend;
10742
12217
  friend class ::ExtAC;
10743
12218
  friend class ::ExtACBuilderCoupling;
10744
12219
  friend class ::ExtACSyntaxCoupling;
10745
12220
  friend class ::ExtACTree;
10746
12221
  friend class ::ExtACKeywords;
10747
 
  friend class ::WinAsm;
10748
 
  friend class ::WinDeclSpecs;
10749
 
  friend class ::WinMemberExplSpec;
10750
 
  friend class ::WinTypeKeywords;
 
12222
  friend class ::ExtGnu;
10751
12223
  friend class ::PragmaOnceUnitState;
10752
12224
  friend class ::PragmaOnce;
10753
 
  friend class ::CCExprResolve;
10754
 
  friend class ::CExprResolve;
 
12225
  friend class ::CMatchSyntax;
10755
12226
 
10756
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12227
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10757
12228
 
10758
12229
public:
 
12230
  /** Constructor.
 
12231
   *  \param cst The cast operator, i.e. 'const_cast'.
 
12232
   *  \param o Left arrow bracket of the type name.
 
12233
   *  \param t The type to cast to.
 
12234
   *  \param c Right array bracket of the type name.
 
12235
   *  \param e The expression to cast. */
10759
12236
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
10760
12237
    CT_StaticCast (cst, o, t, c, e) {}
 
12238
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10761
12239
  static const char *NodeId ();
 
12240
  /** Get the name of the node. Can be compared with NodeId(). */
10762
12241
  const char *NodeName () const { return NodeId (); }
10763
12242
   private:
10764
12243
  typedef CT_ConstCast CCExprResolveExpr;
10765
12244
 
10766
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12245
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10767
12246
 public :
10768
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12247
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10769
12248
  typedef CT_ConstCast CExprResolveExpr;
10770
12249
 
10771
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12250
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10772
12251
 public :
10773
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10774
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12252
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12253
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10775
12254
};
10776
12255
 
 
12256
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
12257
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
10777
12258
 
10778
 
#line 10779 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12259
#line 12260 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
10779
12260
} // closed Puma
 
12261
class CCExprResolve;
 
12262
class CExprResolve;
10780
12263
class WinIfExists;
10781
12264
class WinImportHandler;
10782
12265
class WinMacros;
10783
 
class CMatchSyntax;
10784
 
class ExtGnu;
 
12266
class WinAsm;
 
12267
class WinDeclSpecs;
 
12268
class WinMemberExplSpec;
 
12269
class WinTypeKeywords;
 
12270
class WinFriend;
10785
12271
class ExtAC;
10786
12272
class ExtACBuilderCoupling;
10787
12273
class ExtACSyntaxCoupling;
10788
12274
class ExtACTree;
10789
12275
class ExtACKeywords;
10790
 
class WinAsm;
10791
 
class WinDeclSpecs;
10792
 
class WinMemberExplSpec;
10793
 
class WinTypeKeywords;
 
12276
class ExtGnu;
10794
12277
class PragmaOnceUnitState;
10795
12278
class PragmaOnce;
10796
 
class CCExprResolve;
10797
 
class CExprResolve;
10798
 
namespace Puma {
10799
 
 
10800
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12279
class CMatchSyntax;
 
12280
namespace Puma {
 
12281
 
 
12282
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12283
 
 
12284
#line 12285 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12285
} // closed Puma
 
12286
 
 
12287
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12288
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12289
#include "CCExprResolveH.ah"
 
12290
#endif
 
12291
namespace Puma {
 
12292
 
 
12293
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12294
 
 
12295
#line 12296 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12296
} // closed Puma
 
12297
 
 
12298
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12299
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12300
#include "CExprResolveH.ah"
 
12301
#endif
 
12302
namespace Puma {
 
12303
 
 
12304
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10801
12305
class CT_ReintCast : public CT_StaticCast {
10802
 
#line 10803 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12306
#line 12307 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12307
  friend class ::CCExprResolve;
 
12308
  friend class ::CExprResolve;
10803
12309
  friend class ::WinIfExists;
10804
12310
  friend class ::WinImportHandler;
10805
12311
  friend class ::WinMacros;
10806
 
  friend class ::CMatchSyntax;
10807
 
  friend class ::ExtGnu;
 
12312
  friend class ::WinAsm;
 
12313
  friend class ::WinDeclSpecs;
 
12314
  friend class ::WinMemberExplSpec;
 
12315
  friend class ::WinTypeKeywords;
 
12316
  friend class ::WinFriend;
10808
12317
  friend class ::ExtAC;
10809
12318
  friend class ::ExtACBuilderCoupling;
10810
12319
  friend class ::ExtACSyntaxCoupling;
10811
12320
  friend class ::ExtACTree;
10812
12321
  friend class ::ExtACKeywords;
10813
 
  friend class ::WinAsm;
10814
 
  friend class ::WinDeclSpecs;
10815
 
  friend class ::WinMemberExplSpec;
10816
 
  friend class ::WinTypeKeywords;
 
12322
  friend class ::ExtGnu;
10817
12323
  friend class ::PragmaOnceUnitState;
10818
12324
  friend class ::PragmaOnce;
10819
 
  friend class ::CCExprResolve;
10820
 
  friend class ::CExprResolve;
 
12325
  friend class ::CMatchSyntax;
10821
12326
 
10822
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12327
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10823
12328
 
10824
12329
public:
 
12330
  /** Constructor.
 
12331
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
12332
   *  \param o Left arrow bracket of the type name.
 
12333
   *  \param t The type to cast to.
 
12334
   *  \param c Right array bracket of the type name.
 
12335
   *  \param e The expression to cast. */
10825
12336
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
10826
12337
    CT_StaticCast (cst, o, t, c, e) {}
 
12338
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10827
12339
  static const char *NodeId ();
 
12340
  /** Get the name of the node. Can be compared with NodeId(). */
10828
12341
  const char *NodeName () const { return NodeId (); }
10829
12342
   private:
10830
12343
  typedef CT_ReintCast CCExprResolveExpr;
10831
12344
 
10832
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12345
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10833
12346
 public :
10834
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12347
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10835
12348
  typedef CT_ReintCast CExprResolveExpr;
10836
12349
 
10837
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12350
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10838
12351
 public :
10839
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10840
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12352
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12353
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10841
12354
};
10842
12355
 
 
12356
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
12357
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
10843
12358
 
10844
 
#line 10845 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12359
#line 12360 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
10845
12360
} // closed Puma
 
12361
class CCExprResolve;
 
12362
class CExprResolve;
10846
12363
class WinIfExists;
10847
12364
class WinImportHandler;
10848
12365
class WinMacros;
10849
 
class CMatchSyntax;
10850
 
class ExtGnu;
 
12366
class WinAsm;
 
12367
class WinDeclSpecs;
 
12368
class WinMemberExplSpec;
 
12369
class WinTypeKeywords;
 
12370
class WinFriend;
10851
12371
class ExtAC;
10852
12372
class ExtACBuilderCoupling;
10853
12373
class ExtACSyntaxCoupling;
10854
12374
class ExtACTree;
10855
12375
class ExtACKeywords;
10856
 
class WinAsm;
10857
 
class WinDeclSpecs;
10858
 
class WinMemberExplSpec;
10859
 
class WinTypeKeywords;
 
12376
class ExtGnu;
10860
12377
class PragmaOnceUnitState;
10861
12378
class PragmaOnce;
10862
 
class CCExprResolve;
10863
 
class CExprResolve;
10864
 
namespace Puma {
10865
 
 
10866
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12379
class CMatchSyntax;
 
12380
namespace Puma {
 
12381
 
 
12382
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12383
 
 
12384
#line 12385 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12385
} // closed Puma
 
12386
 
 
12387
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12388
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12389
#include "CCExprResolveH.ah"
 
12390
#endif
 
12391
namespace Puma {
 
12392
 
 
12393
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12394
 
 
12395
#line 12396 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12396
} // closed Puma
 
12397
 
 
12398
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12399
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12400
#include "CExprResolveH.ah"
 
12401
#endif
 
12402
namespace Puma {
 
12403
 
 
12404
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10867
12405
class CT_DynamicCast : public CT_StaticCast {
10868
 
#line 10869 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12406
#line 12407 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12407
  friend class ::CCExprResolve;
 
12408
  friend class ::CExprResolve;
10869
12409
  friend class ::WinIfExists;
10870
12410
  friend class ::WinImportHandler;
10871
12411
  friend class ::WinMacros;
10872
 
  friend class ::CMatchSyntax;
10873
 
  friend class ::ExtGnu;
 
12412
  friend class ::WinAsm;
 
12413
  friend class ::WinDeclSpecs;
 
12414
  friend class ::WinMemberExplSpec;
 
12415
  friend class ::WinTypeKeywords;
 
12416
  friend class ::WinFriend;
10874
12417
  friend class ::ExtAC;
10875
12418
  friend class ::ExtACBuilderCoupling;
10876
12419
  friend class ::ExtACSyntaxCoupling;
10877
12420
  friend class ::ExtACTree;
10878
12421
  friend class ::ExtACKeywords;
10879
 
  friend class ::WinAsm;
10880
 
  friend class ::WinDeclSpecs;
10881
 
  friend class ::WinMemberExplSpec;
10882
 
  friend class ::WinTypeKeywords;
 
12422
  friend class ::ExtGnu;
10883
12423
  friend class ::PragmaOnceUnitState;
10884
12424
  friend class ::PragmaOnce;
10885
 
  friend class ::CCExprResolve;
10886
 
  friend class ::CExprResolve;
 
12425
  friend class ::CMatchSyntax;
10887
12426
 
10888
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12427
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10889
12428
 
10890
12429
public:
 
12430
  /** Constructor.
 
12431
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
12432
   *  \param o Left arrow bracket of the type name.
 
12433
   *  \param t The type to cast to.
 
12434
   *  \param c Right array bracket of the type name.
 
12435
   *  \param e The expression to cast. */
10891
12436
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
10892
12437
    CT_StaticCast (cst, o, t, c, e) {}
 
12438
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10893
12439
  static const char *NodeId ();
 
12440
  /** Get the name of the node. Can be compared with NodeId(). */
10894
12441
  const char *NodeName () const { return NodeId (); }
10895
12442
   private:
10896
12443
  typedef CT_DynamicCast CCExprResolveExpr;
10897
12444
 
10898
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12445
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10899
12446
 public :
10900
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12447
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10901
12448
  typedef CT_DynamicCast CExprResolveExpr;
10902
12449
 
10903
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12450
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10904
12451
 public :
10905
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10906
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12452
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12453
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10907
12454
};
10908
12455
 
 
12456
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
12457
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
12458
 *  where 1.2 is implicitely casted from float to int. */
10909
12459
 
10910
 
#line 10911 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12460
#line 12461 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
10911
12461
} // closed Puma
 
12462
class CCExprResolve;
 
12463
class CExprResolve;
10912
12464
class WinIfExists;
10913
12465
class WinImportHandler;
10914
12466
class WinMacros;
10915
 
class CMatchSyntax;
10916
 
class ExtGnu;
 
12467
class WinAsm;
 
12468
class WinDeclSpecs;
 
12469
class WinMemberExplSpec;
 
12470
class WinTypeKeywords;
 
12471
class WinFriend;
10917
12472
class ExtAC;
10918
12473
class ExtACBuilderCoupling;
10919
12474
class ExtACSyntaxCoupling;
10920
12475
class ExtACTree;
10921
12476
class ExtACKeywords;
10922
 
class WinAsm;
10923
 
class WinDeclSpecs;
10924
 
class WinMemberExplSpec;
10925
 
class WinTypeKeywords;
 
12477
class ExtGnu;
10926
12478
class PragmaOnceUnitState;
10927
12479
class PragmaOnce;
10928
 
class CCExprResolve;
10929
 
class CExprResolve;
10930
 
namespace Puma {
10931
 
 
10932
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12480
class CMatchSyntax;
 
12481
namespace Puma {
 
12482
 
 
12483
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12484
 
 
12485
#line 12486 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12486
} // closed Puma
 
12487
 
 
12488
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12489
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12490
#include "CCExprResolveH.ah"
 
12491
#endif
 
12492
namespace Puma {
 
12493
 
 
12494
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12495
 
 
12496
#line 12497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12497
} // closed Puma
 
12498
 
 
12499
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12500
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12501
#include "CExprResolveH.ah"
 
12502
#endif
 
12503
namespace Puma {
 
12504
 
 
12505
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10933
12506
class CT_ImplicitCast : public CT_Expression {
10934
 
#line 10935 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12507
#line 12508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12508
  friend class ::CCExprResolve;
 
12509
  friend class ::CExprResolve;
10935
12510
  friend class ::WinIfExists;
10936
12511
  friend class ::WinImportHandler;
10937
12512
  friend class ::WinMacros;
10938
 
  friend class ::CMatchSyntax;
10939
 
  friend class ::ExtGnu;
 
12513
  friend class ::WinAsm;
 
12514
  friend class ::WinDeclSpecs;
 
12515
  friend class ::WinMemberExplSpec;
 
12516
  friend class ::WinTypeKeywords;
 
12517
  friend class ::WinFriend;
10940
12518
  friend class ::ExtAC;
10941
12519
  friend class ::ExtACBuilderCoupling;
10942
12520
  friend class ::ExtACSyntaxCoupling;
10943
12521
  friend class ::ExtACTree;
10944
12522
  friend class ::ExtACKeywords;
10945
 
  friend class ::WinAsm;
10946
 
  friend class ::WinDeclSpecs;
10947
 
  friend class ::WinMemberExplSpec;
10948
 
  friend class ::WinTypeKeywords;
 
12523
  friend class ::ExtGnu;
10949
12524
  friend class ::PragmaOnceUnitState;
10950
12525
  friend class ::PragmaOnce;
10951
 
  friend class ::CCExprResolve;
10952
 
  friend class ::CExprResolve;
 
12526
  friend class ::CMatchSyntax;
10953
12527
 
10954
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12528
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10955
12529
 
10956
12530
  CTree *_expr; // casted expression
10957
12531
 
10958
12532
public:
10959
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
12533
  /** Constructor.
 
12534
   *  \param e The expression that is implicitely casted. */
 
12535
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
12536
  /** Get the identifier for this node type. Can be compared with NodeName(). */
10960
12537
  static const char *NodeId ();
 
12538
  /** Get the name of the node. Can be compared with NodeId(). */
10961
12539
  const char *NodeName () const { return NodeId (); }
 
12540
  /** Get the number of sons. */
10962
12541
  int Sons () const { return 1; }
 
12542
  /** Get the n-th son.
 
12543
   *  \param n The index of the son.
 
12544
   *  \return The n-th son or NULL. */
10963
12545
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
12546
  /** Get the casted expression. */
10964
12547
  CTree *Expr () const { return _expr; }
 
12548
  /** Replace a son.
 
12549
   *  \param old_son The son to replace.
 
12550
   *  \param new_son The new son. */
10965
12551
  void ReplaceSon (CTree *old_son, CTree *new_son) 
10966
 
   { if (old_son == _expr) _expr = new_son; }
 
12552
   { CTree::ReplaceSon (_expr, old_son, new_son); }
10967
12553
   private:
10968
12554
  typedef CT_ImplicitCast CCExprResolveExpr;
10969
12555
 
10970
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12556
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
10971
12557
 public :
10972
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12558
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
10973
12559
  typedef CT_ImplicitCast CExprResolveExpr;
10974
12560
 
10975
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12561
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
10976
12562
 public :
10977
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
10978
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12563
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12564
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
10979
12565
};
10980
12566
 
 
12567
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
12568
 *  Tree node representing a typeid expression, e.g. typeid(X). */
10981
12569
 
10982
 
#line 10983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12570
#line 12571 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
10983
12571
} // closed Puma
 
12572
class CCExprResolve;
 
12573
class CExprResolve;
10984
12574
class WinIfExists;
10985
12575
class WinImportHandler;
10986
12576
class WinMacros;
10987
 
class CMatchSyntax;
10988
 
class ExtGnu;
 
12577
class WinAsm;
 
12578
class WinDeclSpecs;
 
12579
class WinMemberExplSpec;
 
12580
class WinTypeKeywords;
 
12581
class WinFriend;
10989
12582
class ExtAC;
10990
12583
class ExtACBuilderCoupling;
10991
12584
class ExtACSyntaxCoupling;
10992
12585
class ExtACTree;
10993
12586
class ExtACKeywords;
10994
 
class WinAsm;
10995
 
class WinDeclSpecs;
10996
 
class WinMemberExplSpec;
10997
 
class WinTypeKeywords;
 
12587
class ExtGnu;
10998
12588
class PragmaOnceUnitState;
10999
12589
class PragmaOnce;
11000
 
class CCExprResolve;
11001
 
class CExprResolve;
11002
 
namespace Puma {
11003
 
 
11004
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12590
class CMatchSyntax;
 
12591
namespace Puma {
 
12592
 
 
12593
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12594
 
 
12595
#line 12596 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12596
} // closed Puma
 
12597
 
 
12598
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12599
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12600
#include "CCExprResolveH.ah"
 
12601
#endif
 
12602
namespace Puma {
 
12603
 
 
12604
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12605
 
 
12606
#line 12607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12607
} // closed Puma
 
12608
 
 
12609
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12610
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12611
#include "CExprResolveH.ah"
 
12612
#endif
 
12613
namespace Puma {
 
12614
 
 
12615
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11005
12616
class CT_TypeidExpr : public CT_Expression {
11006
 
#line 11007 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12617
#line 12618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12618
  friend class ::CCExprResolve;
 
12619
  friend class ::CExprResolve;
11007
12620
  friend class ::WinIfExists;
11008
12621
  friend class ::WinImportHandler;
11009
12622
  friend class ::WinMacros;
11010
 
  friend class ::CMatchSyntax;
11011
 
  friend class ::ExtGnu;
 
12623
  friend class ::WinAsm;
 
12624
  friend class ::WinDeclSpecs;
 
12625
  friend class ::WinMemberExplSpec;
 
12626
  friend class ::WinTypeKeywords;
 
12627
  friend class ::WinFriend;
11012
12628
  friend class ::ExtAC;
11013
12629
  friend class ::ExtACBuilderCoupling;
11014
12630
  friend class ::ExtACSyntaxCoupling;
11015
12631
  friend class ::ExtACTree;
11016
12632
  friend class ::ExtACKeywords;
11017
 
  friend class ::WinAsm;
11018
 
  friend class ::WinDeclSpecs;
11019
 
  friend class ::WinMemberExplSpec;
11020
 
  friend class ::WinTypeKeywords;
 
12633
  friend class ::ExtGnu;
11021
12634
  friend class ::PragmaOnceUnitState;
11022
12635
  friend class ::PragmaOnce;
11023
 
  friend class ::CCExprResolve;
11024
 
  friend class ::CExprResolve;
 
12636
  friend class ::CMatchSyntax;
11025
12637
 
11026
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12638
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11027
12639
 
11028
12640
  CTree *sons[4]; // typeid, open, type_id/expr, close
11029
12641
 
11030
12642
public:
 
12643
  /** Constructor.
 
12644
   *  \param tid The 'typeid' operator.
 
12645
   *  \param o The left parenthesis of the type name or expression.
 
12646
   *  \param e The expression or type name for which to get the type identifier.
 
12647
   *  \param c The right parenthesis of the type name or expression. */
11031
12648
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
11032
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
12649
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
12650
    AddSon (sons[2], e); AddSon (sons[3], c);
11033
12651
  }
 
12652
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11034
12653
  static const char *NodeId ();
 
12654
  /** Get the name of the node. Can be compared with NodeId(). */
11035
12655
  const char *NodeName () const { return NodeId (); }
 
12656
  /** Get the number of sons. */
11036
12657
  int Sons () const { return 4; }
 
12658
  /** Get the n-th son.
 
12659
   *  \param n The index of the son.
 
12660
   *  \return The n-th son or NULL. */
11037
12661
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
12662
  /** Replace a son.
 
12663
   *  \param old_son The son to replace.
 
12664
   *  \param new_son The new son. */
11038
12665
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11039
12666
    CTree::ReplaceSon (sons, 4, old_son, new_son);
11040
12667
  }
 
12668
  /** Get the typeid argument, i.e. the expression or type name for
 
12669
   *  which to get the type identifier. */
11041
12670
  CTree *Arg () const { return sons[2]; }
11042
12671
   private:
11043
12672
  typedef CT_TypeidExpr CCExprResolveExpr;
11044
12673
 
11045
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12674
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
11046
12675
 public :
11047
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12676
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
11048
12677
  typedef CT_TypeidExpr CExprResolveExpr;
11049
12678
 
11050
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12679
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
11051
12680
 public :
11052
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
11053
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12681
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12682
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11054
12683
};
11055
12684
 
 
12685
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
12686
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
11056
12687
 
11057
 
#line 11058 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12688
#line 12689 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11058
12689
} // closed Puma
 
12690
class CCExprResolve;
 
12691
class CExprResolve;
11059
12692
class WinIfExists;
11060
12693
class WinImportHandler;
11061
12694
class WinMacros;
11062
 
class CMatchSyntax;
11063
 
class ExtGnu;
 
12695
class WinAsm;
 
12696
class WinDeclSpecs;
 
12697
class WinMemberExplSpec;
 
12698
class WinTypeKeywords;
 
12699
class WinFriend;
11064
12700
class ExtAC;
11065
12701
class ExtACBuilderCoupling;
11066
12702
class ExtACSyntaxCoupling;
11067
12703
class ExtACTree;
11068
12704
class ExtACKeywords;
11069
 
class WinAsm;
11070
 
class WinDeclSpecs;
11071
 
class WinMemberExplSpec;
11072
 
class WinTypeKeywords;
 
12705
class ExtGnu;
11073
12706
class PragmaOnceUnitState;
11074
12707
class PragmaOnce;
11075
 
class CCExprResolve;
11076
 
class CExprResolve;
11077
 
namespace Puma {
11078
 
 
11079
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12708
class CMatchSyntax;
 
12709
namespace Puma {
 
12710
 
 
12711
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12712
 
 
12713
#line 12714 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12714
} // closed Puma
 
12715
 
 
12716
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12717
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12718
#include "CCExprResolveH.ah"
 
12719
#endif
 
12720
namespace Puma {
 
12721
 
 
12722
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12723
 
 
12724
#line 12725 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12725
} // closed Puma
 
12726
 
 
12727
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12728
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12729
#include "CExprResolveH.ah"
 
12730
#endif
 
12731
namespace Puma {
 
12732
 
 
12733
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11080
12734
class CT_SizeofExpr : public CT_Expression {
11081
 
#line 11082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12735
#line 12736 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12736
  friend class ::CCExprResolve;
 
12737
  friend class ::CExprResolve;
11082
12738
  friend class ::WinIfExists;
11083
12739
  friend class ::WinImportHandler;
11084
12740
  friend class ::WinMacros;
11085
 
  friend class ::CMatchSyntax;
11086
 
  friend class ::ExtGnu;
 
12741
  friend class ::WinAsm;
 
12742
  friend class ::WinDeclSpecs;
 
12743
  friend class ::WinMemberExplSpec;
 
12744
  friend class ::WinTypeKeywords;
 
12745
  friend class ::WinFriend;
11087
12746
  friend class ::ExtAC;
11088
12747
  friend class ::ExtACBuilderCoupling;
11089
12748
  friend class ::ExtACSyntaxCoupling;
11090
12749
  friend class ::ExtACTree;
11091
12750
  friend class ::ExtACKeywords;
11092
 
  friend class ::WinAsm;
11093
 
  friend class ::WinDeclSpecs;
11094
 
  friend class ::WinMemberExplSpec;
11095
 
  friend class ::WinTypeKeywords;
 
12751
  friend class ::ExtGnu;
11096
12752
  friend class ::PragmaOnceUnitState;
11097
12753
  friend class ::PragmaOnce;
11098
 
  friend class ::CCExprResolve;
11099
 
  friend class ::CExprResolve;
 
12754
  friend class ::CMatchSyntax;
11100
12755
 
11101
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12756
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11102
12757
 
11103
12758
  CTree *sons[5]; // key, open, type, close, expr
11104
12759
 
11105
12760
public:
 
12761
  /** Constructor.
 
12762
   *  \param k The 'sizeof' keyword.
 
12763
   *  \param o Left parenthesis around the type name.
 
12764
   *  \param t The type from which to get the size.
 
12765
   *  \param c Right parenthesis around the type name. */
11106
12766
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
11107
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
12767
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
12768
    AddSon (sons[3], c); AddSon (sons[4], 0);
11108
12769
  }
 
12770
  /** Constructor.
 
12771
   *  \param k The 'sizeof' keyword.
 
12772
   *  \param e The expression from which to get the size. */
11109
12773
  CT_SizeofExpr (CTree *k, CTree *e) {
11110
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
12774
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
12775
    AddSon (sons[3], 0); AddSon (sons[4], e);
11111
12776
  }
 
12777
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11112
12778
  static const char *NodeId ();
 
12779
  /** Get the name of the node. Can be compared with NodeId(). */
11113
12780
  const char *NodeName () const { return NodeId (); }
 
12781
  /** Get the number of sons. */
11114
12782
  int Sons () const { return CTree::Sons (sons, 5); }
 
12783
  /** Get the n-th son.
 
12784
   *  \param n The index of the son.
 
12785
   *  \return The n-th son or NULL. */
11115
12786
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
12787
  /** Replace a son.
 
12788
   *  \param old_son The son to replace.
 
12789
   *  \param new_son The new son. */
11116
12790
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11117
12791
    CTree::ReplaceSon (sons, 5, old_son, new_son);
11118
12792
  }
 
12793
  /** Get the expression. */
11119
12794
  CTree *Expr () const { return sons[4]; }
 
12795
  /** Get the type name. */
11120
12796
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
11121
12797
   private:
11122
12798
  typedef CT_SizeofExpr CCExprResolveExpr;
11123
12799
 
11124
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12800
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
11125
12801
 public :
11126
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12802
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
11127
12803
  typedef CT_SizeofExpr CExprResolveExpr;
11128
12804
 
11129
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12805
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
11130
12806
 public :
11131
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
11132
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12807
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12808
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11133
12809
};
11134
12810
 
 
12811
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
12812
 *  Tree node representing an index designator, i.e. [1]. */
11135
12813
 
11136
 
#line 11137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12814
#line 12815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11137
12815
} // closed Puma
 
12816
class CCExprResolve;
 
12817
class CExprResolve;
11138
12818
class WinIfExists;
11139
12819
class WinImportHandler;
11140
12820
class WinMacros;
11141
 
class CMatchSyntax;
11142
 
class ExtGnu;
 
12821
class WinAsm;
 
12822
class WinDeclSpecs;
 
12823
class WinMemberExplSpec;
 
12824
class WinTypeKeywords;
 
12825
class WinFriend;
11143
12826
class ExtAC;
11144
12827
class ExtACBuilderCoupling;
11145
12828
class ExtACSyntaxCoupling;
11146
12829
class ExtACTree;
11147
12830
class ExtACKeywords;
11148
 
class WinAsm;
11149
 
class WinDeclSpecs;
11150
 
class WinMemberExplSpec;
11151
 
class WinTypeKeywords;
 
12831
class ExtGnu;
11152
12832
class PragmaOnceUnitState;
11153
12833
class PragmaOnce;
11154
 
class CCExprResolve;
11155
 
class CExprResolve;
11156
 
namespace Puma {
11157
 
 
11158
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12834
class CMatchSyntax;
 
12835
namespace Puma {
 
12836
 
 
12837
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12838
 
 
12839
#line 12840 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12840
} // closed Puma
 
12841
 
 
12842
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12843
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12844
#include "CCExprResolveH.ah"
 
12845
#endif
 
12846
namespace Puma {
 
12847
 
 
12848
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12849
 
 
12850
#line 12851 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12851
} // closed Puma
 
12852
 
 
12853
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12854
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12855
#include "CExprResolveH.ah"
 
12856
#endif
 
12857
namespace Puma {
 
12858
 
 
12859
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11159
12860
class CT_IndexDesignator : public CT_Expression {
11160
 
#line 11161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12861
#line 12862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12862
  friend class ::CCExprResolve;
 
12863
  friend class ::CExprResolve;
11161
12864
  friend class ::WinIfExists;
11162
12865
  friend class ::WinImportHandler;
11163
12866
  friend class ::WinMacros;
11164
 
  friend class ::CMatchSyntax;
11165
 
  friend class ::ExtGnu;
 
12867
  friend class ::WinAsm;
 
12868
  friend class ::WinDeclSpecs;
 
12869
  friend class ::WinMemberExplSpec;
 
12870
  friend class ::WinTypeKeywords;
 
12871
  friend class ::WinFriend;
11166
12872
  friend class ::ExtAC;
11167
12873
  friend class ::ExtACBuilderCoupling;
11168
12874
  friend class ::ExtACSyntaxCoupling;
11169
12875
  friend class ::ExtACTree;
11170
12876
  friend class ::ExtACKeywords;
11171
 
  friend class ::WinAsm;
11172
 
  friend class ::WinDeclSpecs;
11173
 
  friend class ::WinMemberExplSpec;
11174
 
  friend class ::WinTypeKeywords;
 
12877
  friend class ::ExtGnu;
11175
12878
  friend class ::PragmaOnceUnitState;
11176
12879
  friend class ::PragmaOnce;
11177
 
  friend class ::CCExprResolve;
11178
 
  friend class ::CExprResolve;
 
12880
  friend class ::CMatchSyntax;
11179
12881
 
11180
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12882
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11181
12883
 
11182
12884
  CTree *sons[3]; // open, index, close
11183
12885
 
11184
12886
public:
 
12887
  /** Constructor.
 
12888
   *  \param o Left bracket of the index designator.
 
12889
   *  \param i The index expression.
 
12890
   *  \param c Right bracket of the index designator. */
11185
12891
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
11186
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
12892
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
11187
12893
  }
 
12894
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11188
12895
  static const char *NodeId ();
 
12896
  /** Get the name of the node. Can be compared with NodeId(). */
11189
12897
  const char *NodeName () const { return NodeId (); }
 
12898
  /** Get the number of sons. */
11190
12899
  int Sons () const { return 3; }
 
12900
  /** Get the n-th son.
 
12901
   *  \param n The index of the son.
 
12902
   *  \return The n-th son or NULL. */
11191
12903
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
12904
  /** Replace a son.
 
12905
   *  \param old_son The son to replace.
 
12906
   *  \param new_son The new son. */
11192
12907
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11193
12908
    CTree::ReplaceSon (sons, 3, old_son, new_son);
11194
12909
  }
11195
12910
   private:
11196
12911
  typedef CT_IndexDesignator CCExprResolveExpr;
11197
12912
 
11198
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
12913
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
11199
12914
 public :
11200
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
12915
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
11201
12916
  typedef CT_IndexDesignator CExprResolveExpr;
11202
12917
 
11203
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
12918
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
11204
12919
 public :
11205
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
11206
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12920
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
12921
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11207
12922
};
11208
12923
 
 
12924
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
12925
 *  Tree node representing a member designator, e.g. .a. */
11209
12926
 
11210
 
#line 11211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12927
#line 12928 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11211
12928
} // closed Puma
 
12929
class CCExprResolve;
 
12930
class CExprResolve;
11212
12931
class WinIfExists;
11213
12932
class WinImportHandler;
11214
12933
class WinMacros;
11215
 
class CMatchSyntax;
11216
 
class ExtGnu;
 
12934
class WinAsm;
 
12935
class WinDeclSpecs;
 
12936
class WinMemberExplSpec;
 
12937
class WinTypeKeywords;
 
12938
class WinFriend;
11217
12939
class ExtAC;
11218
12940
class ExtACBuilderCoupling;
11219
12941
class ExtACSyntaxCoupling;
11220
12942
class ExtACTree;
11221
12943
class ExtACKeywords;
11222
 
class WinAsm;
11223
 
class WinDeclSpecs;
11224
 
class WinMemberExplSpec;
11225
 
class WinTypeKeywords;
 
12944
class ExtGnu;
11226
12945
class PragmaOnceUnitState;
11227
12946
class PragmaOnce;
11228
 
class CCExprResolve;
11229
 
class CExprResolve;
11230
 
namespace Puma {
11231
 
 
11232
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12947
class CMatchSyntax;
 
12948
namespace Puma {
 
12949
 
 
12950
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12951
 
 
12952
#line 12953 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12953
} // closed Puma
 
12954
 
 
12955
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12956
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
12957
#include "CCExprResolveH.ah"
 
12958
#endif
 
12959
namespace Puma {
 
12960
 
 
12961
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12962
 
 
12963
#line 12964 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12964
} // closed Puma
 
12965
 
 
12966
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12967
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
12968
#include "CExprResolveH.ah"
 
12969
#endif
 
12970
namespace Puma {
 
12971
 
 
12972
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11233
12973
class CT_MembDesignator : public CT_Expression {
11234
 
#line 11235 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
12974
#line 12975 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
12975
  friend class ::CCExprResolve;
 
12976
  friend class ::CExprResolve;
11235
12977
  friend class ::WinIfExists;
11236
12978
  friend class ::WinImportHandler;
11237
12979
  friend class ::WinMacros;
11238
 
  friend class ::CMatchSyntax;
11239
 
  friend class ::ExtGnu;
 
12980
  friend class ::WinAsm;
 
12981
  friend class ::WinDeclSpecs;
 
12982
  friend class ::WinMemberExplSpec;
 
12983
  friend class ::WinTypeKeywords;
 
12984
  friend class ::WinFriend;
11240
12985
  friend class ::ExtAC;
11241
12986
  friend class ::ExtACBuilderCoupling;
11242
12987
  friend class ::ExtACSyntaxCoupling;
11243
12988
  friend class ::ExtACTree;
11244
12989
  friend class ::ExtACKeywords;
11245
 
  friend class ::WinAsm;
11246
 
  friend class ::WinDeclSpecs;
11247
 
  friend class ::WinMemberExplSpec;
11248
 
  friend class ::WinTypeKeywords;
 
12990
  friend class ::ExtGnu;
11249
12991
  friend class ::PragmaOnceUnitState;
11250
12992
  friend class ::PragmaOnce;
11251
 
  friend class ::CCExprResolve;
11252
 
  friend class ::CExprResolve;
 
12993
  friend class ::CMatchSyntax;
11253
12994
 
11254
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
12995
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11255
12996
 
11256
12997
  CTree *sons[2]; // dot, member
11257
12998
 
11258
12999
public:
11259
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
13000
  /** Constructor.
 
13001
   *  \param d The dot before the member name.
 
13002
   *  \param m The member name. */
 
13003
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
13004
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11260
13005
  static const char *NodeId ();
 
13006
  /** Get the name of the node. Can be compared with NodeId(). */
11261
13007
  const char *NodeName () const { return NodeId (); }
 
13008
  /** Get the number of sons. */
11262
13009
  int Sons () const { return 2; }
 
13010
  /** Get the n-th son.
 
13011
   *  \param n The index of the son.
 
13012
   *  \return The n-th son or NULL. */
11263
13013
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
13014
  /** Replace a son.
 
13015
   *  \param old_son The son to replace.
 
13016
   *  \param new_son The new son. */
11264
13017
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11265
13018
    CTree::ReplaceSon (sons, 2, old_son, new_son);
11266
13019
  }
11267
13020
   private:
11268
13021
  typedef CT_MembDesignator CCExprResolveExpr;
11269
13022
 
11270
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
13023
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
11271
13024
 public :
11272
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
13025
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
11273
13026
  typedef CT_MembDesignator CExprResolveExpr;
11274
13027
 
11275
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
13028
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
11276
13029
 public :
11277
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
11278
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13030
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
13031
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11279
13032
};
11280
13033
 
 
13034
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
13035
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
11281
13036
 
11282
 
#line 11283 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13037
#line 13038 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11283
13038
} // closed Puma
 
13039
class CCExprResolve;
 
13040
class CExprResolve;
11284
13041
class WinIfExists;
11285
13042
class WinImportHandler;
11286
13043
class WinMacros;
11287
 
class CMatchSyntax;
11288
 
class ExtGnu;
 
13044
class WinAsm;
 
13045
class WinDeclSpecs;
 
13046
class WinMemberExplSpec;
 
13047
class WinTypeKeywords;
 
13048
class WinFriend;
11289
13049
class ExtAC;
11290
13050
class ExtACBuilderCoupling;
11291
13051
class ExtACSyntaxCoupling;
11292
13052
class ExtACTree;
11293
13053
class ExtACKeywords;
11294
 
class WinAsm;
11295
 
class WinDeclSpecs;
11296
 
class WinMemberExplSpec;
11297
 
class WinTypeKeywords;
 
13054
class ExtGnu;
11298
13055
class PragmaOnceUnitState;
11299
13056
class PragmaOnce;
11300
 
class CCExprResolve;
11301
 
class CExprResolve;
 
13057
class CMatchSyntax;
11302
13058
namespace Puma {
11303
13059
 
11304
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13060
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11305
13061
class CT_DesignatorSeq : public CT_List, public CSemValue {
11306
 
#line 11307 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13062
#line 13063 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
13063
  friend class ::CCExprResolve;
 
13064
  friend class ::CExprResolve;
11307
13065
  friend class ::WinIfExists;
11308
13066
  friend class ::WinImportHandler;
11309
13067
  friend class ::WinMacros;
11310
 
  friend class ::CMatchSyntax;
11311
 
  friend class ::ExtGnu;
 
13068
  friend class ::WinAsm;
 
13069
  friend class ::WinDeclSpecs;
 
13070
  friend class ::WinMemberExplSpec;
 
13071
  friend class ::WinTypeKeywords;
 
13072
  friend class ::WinFriend;
11312
13073
  friend class ::ExtAC;
11313
13074
  friend class ::ExtACBuilderCoupling;
11314
13075
  friend class ::ExtACSyntaxCoupling;
11315
13076
  friend class ::ExtACTree;
11316
13077
  friend class ::ExtACKeywords;
11317
 
  friend class ::WinAsm;
11318
 
  friend class ::WinDeclSpecs;
11319
 
  friend class ::WinMemberExplSpec;
11320
 
  friend class ::WinTypeKeywords;
 
13078
  friend class ::ExtGnu;
11321
13079
  friend class ::PragmaOnceUnitState;
11322
13080
  friend class ::PragmaOnce;
11323
 
  friend class ::CCExprResolve;
11324
 
  friend class ::CExprResolve;
 
13081
  friend class ::CMatchSyntax;
11325
13082
 
11326
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13083
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11327
13084
 
11328
13085
public:
 
13086
  /** Constructor.
 
13087
   *  \param size Initial number of designators. */
11329
13088
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
13089
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11330
13090
  static const char *NodeId ();
 
13091
  /** Get the name of the node. Can be compared with NodeId(). */
11331
13092
  const char *NodeName () const { return NodeId (); }
11332
13093
 
 
13094
  /** Get the type of the entity to initialize. */
11333
13095
  CTypeInfo *Type () const { return type; }
 
13096
  /** Get the value of the entity to initialize. */
11334
13097
  CExprValue *Value () const { return value; }
 
13098
  /** Get the semantic value object. */
11335
13099
  CSemValue *SemValue () const { return (CSemValue*)this; }
11336
13100
};
11337
13101
 
11341
13105
/*                                                                           */
11342
13106
/*****************************************************************************/
11343
13107
 
 
13108
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
13109
 *  Base class for all tree nodes representing declaration specifiers. */
11344
13110
 
11345
 
#line 11346 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13111
#line 13112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11346
13112
} // closed Puma
 
13113
class CCExprResolve;
 
13114
class CExprResolve;
11347
13115
class WinIfExists;
11348
13116
class WinImportHandler;
11349
13117
class WinMacros;
11350
 
class CMatchSyntax;
11351
 
class ExtGnu;
 
13118
class WinAsm;
 
13119
class WinDeclSpecs;
 
13120
class WinMemberExplSpec;
 
13121
class WinTypeKeywords;
 
13122
class WinFriend;
11352
13123
class ExtAC;
11353
13124
class ExtACBuilderCoupling;
11354
13125
class ExtACSyntaxCoupling;
11355
13126
class ExtACTree;
11356
13127
class ExtACKeywords;
11357
 
class WinAsm;
11358
 
class WinDeclSpecs;
11359
 
class WinMemberExplSpec;
11360
 
class WinTypeKeywords;
 
13128
class ExtGnu;
11361
13129
class PragmaOnceUnitState;
11362
13130
class PragmaOnce;
11363
 
class CCExprResolve;
11364
 
class CExprResolve;
 
13131
class CMatchSyntax;
11365
13132
namespace Puma {
11366
13133
 
11367
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13134
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11368
13135
class CT_DeclSpec : public CTree {
11369
 
#line 11370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13136
#line 13137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
13137
  friend class ::CCExprResolve;
 
13138
  friend class ::CExprResolve;
11370
13139
  friend class ::WinIfExists;
11371
13140
  friend class ::WinImportHandler;
11372
13141
  friend class ::WinMacros;
11373
 
  friend class ::CMatchSyntax;
11374
 
  friend class ::ExtGnu;
 
13142
  friend class ::WinAsm;
 
13143
  friend class ::WinDeclSpecs;
 
13144
  friend class ::WinMemberExplSpec;
 
13145
  friend class ::WinTypeKeywords;
 
13146
  friend class ::WinFriend;
11375
13147
  friend class ::ExtAC;
11376
13148
  friend class ::ExtACBuilderCoupling;
11377
13149
  friend class ::ExtACSyntaxCoupling;
11378
13150
  friend class ::ExtACTree;
11379
13151
  friend class ::ExtACKeywords;
11380
 
  friend class ::WinAsm;
11381
 
  friend class ::WinDeclSpecs;
11382
 
  friend class ::WinMemberExplSpec;
11383
 
  friend class ::WinTypeKeywords;
 
13152
  friend class ::ExtGnu;
11384
13153
  friend class ::PragmaOnceUnitState;
11385
13154
  friend class ::PragmaOnce;
11386
 
  friend class ::CCExprResolve;
11387
 
  friend class ::CExprResolve;
 
13155
  friend class ::CMatchSyntax;
11388
13156
 
11389
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13157
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11390
13158
 
11391
13159
protected:
 
13160
  /** Constructor. */
11392
13161
  CT_DeclSpec () {}
11393
13162
};
11394
13163
 
 
13164
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
13165
 *  Tree node representing a primitive declaration specifier. */
11395
13166
 
11396
 
#line 11397 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13167
#line 13168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11397
13168
} // closed Puma
 
13169
class CCExprResolve;
 
13170
class CExprResolve;
11398
13171
class WinIfExists;
11399
13172
class WinImportHandler;
11400
13173
class WinMacros;
11401
 
class CMatchSyntax;
11402
 
class ExtGnu;
 
13174
class WinAsm;
 
13175
class WinDeclSpecs;
 
13176
class WinMemberExplSpec;
 
13177
class WinTypeKeywords;
 
13178
class WinFriend;
11403
13179
class ExtAC;
11404
13180
class ExtACBuilderCoupling;
11405
13181
class ExtACSyntaxCoupling;
11406
13182
class ExtACTree;
11407
13183
class ExtACKeywords;
11408
 
class WinAsm;
11409
 
class WinDeclSpecs;
11410
 
class WinMemberExplSpec;
11411
 
class WinTypeKeywords;
 
13184
class ExtGnu;
11412
13185
class PragmaOnceUnitState;
11413
13186
class PragmaOnce;
11414
 
class CCExprResolve;
11415
 
class CExprResolve;
 
13187
class CMatchSyntax;
11416
13188
namespace Puma {
11417
13189
 
11418
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13190
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11419
13191
class CT_PrimDeclSpec : public CT_DeclSpec {
11420
 
#line 11421 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13192
#line 13193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
13193
  friend class ::CCExprResolve;
 
13194
  friend class ::CExprResolve;
11421
13195
  friend class ::WinIfExists;
11422
13196
  friend class ::WinImportHandler;
11423
13197
  friend class ::WinMacros;
11424
 
  friend class ::CMatchSyntax;
11425
 
  friend class ::ExtGnu;
 
13198
  friend class ::WinAsm;
 
13199
  friend class ::WinDeclSpecs;
 
13200
  friend class ::WinMemberExplSpec;
 
13201
  friend class ::WinTypeKeywords;
 
13202
  friend class ::WinFriend;
11426
13203
  friend class ::ExtAC;
11427
13204
  friend class ::ExtACBuilderCoupling;
11428
13205
  friend class ::ExtACSyntaxCoupling;
11429
13206
  friend class ::ExtACTree;
11430
13207
  friend class ::ExtACKeywords;
11431
 
  friend class ::WinAsm;
11432
 
  friend class ::WinDeclSpecs;
11433
 
  friend class ::WinMemberExplSpec;
11434
 
  friend class ::WinTypeKeywords;
 
13208
  friend class ::ExtGnu;
11435
13209
  friend class ::PragmaOnceUnitState;
11436
13210
  friend class ::PragmaOnce;
11437
 
  friend class ::CCExprResolve;
11438
 
  friend class ::CExprResolve;
 
13211
  friend class ::CMatchSyntax;
11439
13212
 
11440
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13213
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11441
13214
 
11442
13215
public:
11443
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
11444
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
11445
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
11446
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
11447
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
11448
 
              // AspectC++ specific type specifier
11449
 
              PDS_UNKNOWN_T,
11450
 
              // Win specific declaration specifiers
11451
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
11452
 
              PDS_UNKNOWN, PDS_NUM };
 
13216
  /** Declaration specifier types. */
 
13217
  enum Type { 
 
13218
    PDS_FRIEND,    /** friend */
 
13219
    PDS_TYPEDEF,   /** typedef */
 
13220
    PDS_AUTO,      /** auto */
 
13221
    PDS_REGISTER,  /** register */
 
13222
    PDS_STATIC,    /** static */
 
13223
    PDS_EXTERN,    /** extern */
 
13224
    PDS_MUTABLE,   /** mutable */
 
13225
    PDS_INLINE,    /** inline */
 
13226
    PDS_VIRTUAL,   /** virtual */
 
13227
    PDS_EXPLICIT,  /** explicit */
 
13228
    PDS_CONST,     /** const */
 
13229
    PDS_VOLATILE,  /** volatile */
 
13230
    PDS_RESTRICT,  /** restrict */
 
13231
    PDS_CHAR,      /** char */
 
13232
    PDS_WCHAR_T,   /** wchar_t */
 
13233
    PDS_BOOL,      /** bool */
 
13234
    PDS_SHORT,     /** short */
 
13235
    PDS_INT,       /** int */
 
13236
    PDS_LONG,      /** long */
 
13237
    PDS_SIGNED,    /** signed */
 
13238
    PDS_UNSIGNED,  /** unsigned */
 
13239
    PDS_FLOAT,     /** float */
 
13240
    PDS_DOUBLE,    /** double */
 
13241
    PDS_VOID,      /** void */
 
13242
    // AspectC++ specific type specifier
 
13243
    PDS_UNKNOWN_T, /** unknown_t */
 
13244
    // Win specific declaration specifiers
 
13245
    PDS_CDECL,     /** __cdecl */
 
13246
    PDS_STDCALL,   /** __stdcall */
 
13247
    PDS_FASTCALL,  /** __fastcall */
 
13248
    PDS_INT64,     /** __int64 */
 
13249
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
13250
    PDS_NUM        /** Number of declaration specifier types. */
 
13251
  };
11453
13252
 
11454
13253
private:
11455
13254
  Type _type;
11456
 
  CT_Token *_token;
 
13255
  CTree *_token; // has to be a CT_Token
11457
13256
 
11458
13257
  void determine_type ();
11459
13258
 
11460
13259
public:
11461
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
13260
  /** Constructor.
 
13261
   *  \param t The token containing the declaration specifier. */
 
13262
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
13263
  /** Constructor.
 
13264
   *  \param t The declaration specifier type. */
11462
13265
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
13266
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11463
13267
  static const char *NodeId ();
 
13268
  /** Get the name of the node. Can be compared with NodeId(). */
11464
13269
  const char *NodeName () const { return NodeId (); }
 
13270
  /** Get the number of sons. */
11465
13271
  int Sons () const { return _token ? 1 : 0; }
 
13272
  /** Get the n-th son.
 
13273
   *  \param n The index of the son.
 
13274
   *  \return The n-th son or NULL. */
11466
13275
  CTree *Son (int n) const 
11467
13276
   { return (n == 0) ? _token : (CTree*)0; }
 
13277
  /** Get the textual representation of the declaration specifier.
 
13278
   *  \return The string representation or " ". */
11468
13279
  const char *SpecText () const 
11469
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
13280
   { return _token ? _token->token ()->text () : " "; }
 
13281
  /** Get the declaration specifier type. */
11470
13282
  Type SpecType () const { return _type; }
 
13283
  /** Number of declaration specifier types. */
11471
13284
  static const int NumTypes = PDS_NUM;
 
13285
  /** Replace a son.
 
13286
   *  \param old_son The son to replace.
 
13287
   *  \param new_son The new son. */
 
13288
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
13289
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
13290
    determine_type ();
 
13291
  }
11472
13292
};
11473
13293
 
 
13294
/** \class CT_NamedType CTree.h Puma/CTree.h
 
13295
 *  Tree node representing a named type, e.g. (int*)a. 
 
13296
 *  where int* is a type with a generated name. */
11474
13297
 
11475
 
#line 11476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13298
#line 13299 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11476
13299
} // closed Puma
 
13300
class CCExprResolve;
 
13301
class CExprResolve;
11477
13302
class WinIfExists;
11478
13303
class WinImportHandler;
11479
13304
class WinMacros;
11480
 
class CMatchSyntax;
11481
 
class ExtGnu;
 
13305
class WinAsm;
 
13306
class WinDeclSpecs;
 
13307
class WinMemberExplSpec;
 
13308
class WinTypeKeywords;
 
13309
class WinFriend;
11482
13310
class ExtAC;
11483
13311
class ExtACBuilderCoupling;
11484
13312
class ExtACSyntaxCoupling;
11485
13313
class ExtACTree;
11486
13314
class ExtACKeywords;
11487
 
class WinAsm;
11488
 
class WinDeclSpecs;
11489
 
class WinMemberExplSpec;
11490
 
class WinTypeKeywords;
 
13315
class ExtGnu;
11491
13316
class PragmaOnceUnitState;
11492
13317
class PragmaOnce;
11493
 
class CCExprResolve;
11494
 
class CExprResolve;
 
13318
class CMatchSyntax;
11495
13319
namespace Puma {
11496
13320
 
11497
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13321
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11498
13322
class CT_NamedType : public CT_DeclSpec, public CSemObject {
11499
 
#line 11500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13323
#line 13324 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
13324
  friend class ::CCExprResolve;
 
13325
  friend class ::CExprResolve;
11500
13326
  friend class ::WinIfExists;
11501
13327
  friend class ::WinImportHandler;
11502
13328
  friend class ::WinMacros;
11503
 
  friend class ::CMatchSyntax;
11504
 
  friend class ::ExtGnu;
 
13329
  friend class ::WinAsm;
 
13330
  friend class ::WinDeclSpecs;
 
13331
  friend class ::WinMemberExplSpec;
 
13332
  friend class ::WinTypeKeywords;
 
13333
  friend class ::WinFriend;
11505
13334
  friend class ::ExtAC;
11506
13335
  friend class ::ExtACBuilderCoupling;
11507
13336
  friend class ::ExtACSyntaxCoupling;
11508
13337
  friend class ::ExtACTree;
11509
13338
  friend class ::ExtACKeywords;
11510
 
  friend class ::WinAsm;
11511
 
  friend class ::WinDeclSpecs;
11512
 
  friend class ::WinMemberExplSpec;
11513
 
  friend class ::WinTypeKeywords;
 
13339
  friend class ::ExtGnu;
11514
13340
  friend class ::PragmaOnceUnitState;
11515
13341
  friend class ::PragmaOnce;
11516
 
  friend class ::CCExprResolve;
11517
 
  friend class ::CExprResolve;
 
13342
  friend class ::CMatchSyntax;
11518
13343
 
11519
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13344
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11520
13345
 
11521
13346
  CTree *sons[2]; // declspecs, declarator
11522
13347
 
11523
13348
public:
11524
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
13349
  /** Constructor.
 
13350
   *  \param dss The declaration specifier sequence of the type.
 
13351
   *  \param d The type declarator. */
 
13352
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
13353
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11525
13354
  static const char *NodeId ();
 
13355
  /** Get the name of the node. Can be compared with NodeId(). */
11526
13356
  const char *NodeName () const { return NodeId (); }
 
13357
  /** Get the number of sons. */
11527
13358
  int Sons () const { return CTree::Sons (sons, 2); }
 
13359
  /** Get the n-th son.
 
13360
   *  \param n The index of the son.
 
13361
   *  \return The n-th son or NULL. */
11528
13362
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
13363
  /** Get the declarator. */
11529
13364
  CTree *Declarator () const { return sons[1]; }
 
13365
  /** Replace a son.
 
13366
   *  \param old_son The son to replace.
 
13367
   *  \param new_son The new son. */
11530
13368
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11531
13369
    CTree::ReplaceSon (sons, 2, old_son, new_son);
11532
13370
  }
 
13371
  /** Get the semantic information object. */
11533
13372
  CSemObject *SemObject () const { return (CSemObject*)this; }
11534
13373
};
11535
13374
      
 
13375
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
13376
 *  Tree node representing a class specifier, e.g. class X. */
11536
13377
 
11537
 
#line 11538 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13378
#line 13379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11538
13379
} // closed Puma
 
13380
class CCExprResolve;
 
13381
class CExprResolve;
11539
13382
class WinIfExists;
11540
13383
class WinImportHandler;
11541
13384
class WinMacros;
11542
 
class CMatchSyntax;
11543
 
class ExtGnu;
 
13385
class WinAsm;
 
13386
class WinDeclSpecs;
 
13387
class WinMemberExplSpec;
 
13388
class WinTypeKeywords;
 
13389
class WinFriend;
11544
13390
class ExtAC;
11545
13391
class ExtACBuilderCoupling;
11546
13392
class ExtACSyntaxCoupling;
11547
13393
class ExtACTree;
11548
13394
class ExtACKeywords;
11549
 
class WinAsm;
11550
 
class WinDeclSpecs;
11551
 
class WinMemberExplSpec;
11552
 
class WinTypeKeywords;
 
13395
class ExtGnu;
11553
13396
class PragmaOnceUnitState;
11554
13397
class PragmaOnce;
11555
 
class CCExprResolve;
11556
 
class CExprResolve;
 
13398
class CMatchSyntax;
11557
13399
namespace Puma {
11558
13400
 
11559
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13401
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11560
13402
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
11561
 
#line 11562 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13403
#line 13404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
13404
  friend class ::CCExprResolve;
 
13405
  friend class ::CExprResolve;
11562
13406
  friend class ::WinIfExists;
11563
13407
  friend class ::WinImportHandler;
11564
13408
  friend class ::WinMacros;
11565
 
  friend class ::CMatchSyntax;
11566
 
  friend class ::ExtGnu;
 
13409
  friend class ::WinAsm;
 
13410
  friend class ::WinDeclSpecs;
 
13411
  friend class ::WinMemberExplSpec;
 
13412
  friend class ::WinTypeKeywords;
 
13413
  friend class ::WinFriend;
11567
13414
  friend class ::ExtAC;
11568
13415
  friend class ::ExtACBuilderCoupling;
11569
13416
  friend class ::ExtACSyntaxCoupling;
11570
13417
  friend class ::ExtACTree;
11571
13418
  friend class ::ExtACKeywords;
11572
 
  friend class ::WinAsm;
11573
 
  friend class ::WinDeclSpecs;
11574
 
  friend class ::WinMemberExplSpec;
11575
 
  friend class ::WinTypeKeywords;
 
13419
  friend class ::ExtGnu;
11576
13420
  friend class ::PragmaOnceUnitState;
11577
13421
  friend class ::PragmaOnce;
11578
 
  friend class ::CCExprResolve;
11579
 
  friend class ::CExprResolve;
 
13422
  friend class ::CMatchSyntax;
11580
13423
 
11581
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13424
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11582
13425
 
11583
13426
  CTree *sons[2]; // key, name
11584
13427
  
11585
13428
public:
11586
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
13429
  /** Constructor.
 
13430
   *  \param k The 'class' or 'struct' keyword.
 
13431
   *  \param n The class name. */
 
13432
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
13433
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11587
13434
  static const char *NodeId ();
 
13435
  /** Get the name of the node. Can be compared with NodeId(). */
11588
13436
  const char *NodeName () const { return NodeId (); }
 
13437
  /** Get the number of sons. */
11589
13438
  int Sons () const { return 2; }
 
13439
  /** Get the n-th son.
 
13440
   *  \param n The index of the son.
 
13441
   *  \return The n-th son or NULL. */
11590
13442
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
13443
  /** Get the class name. */
11591
13444
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
13445
  /** Get the semantic information object. */
11592
13446
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
13447
  /** Replace a son.
 
13448
   *  \param old_son The son to replace.
 
13449
   *  \param new_son The new son. */
11593
13450
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11594
13451
    CTree::ReplaceSon (sons, 2, old_son, new_son);
11595
13452
  }
11596
13453
};
11597
13454
 
 
13455
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
13456
 *  Tree node representing a union specifier, e.g. union X. */
11598
13457
 
11599
 
#line 11600 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13458
#line 13459 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11600
13459
} // closed Puma
 
13460
class CCExprResolve;
 
13461
class CExprResolve;
11601
13462
class WinIfExists;
11602
13463
class WinImportHandler;
11603
13464
class WinMacros;
11604
 
class CMatchSyntax;
11605
 
class ExtGnu;
 
13465
class WinAsm;
 
13466
class WinDeclSpecs;
 
13467
class WinMemberExplSpec;
 
13468
class WinTypeKeywords;
 
13469
class WinFriend;
11606
13470
class ExtAC;
11607
13471
class ExtACBuilderCoupling;
11608
13472
class ExtACSyntaxCoupling;
11609
13473
class ExtACTree;
11610
13474
class ExtACKeywords;
11611
 
class WinAsm;
11612
 
class WinDeclSpecs;
11613
 
class WinMemberExplSpec;
11614
 
class WinTypeKeywords;
 
13475
class ExtGnu;
11615
13476
class PragmaOnceUnitState;
11616
13477
class PragmaOnce;
11617
 
class CCExprResolve;
11618
 
class CExprResolve;
 
13478
class CMatchSyntax;
11619
13479
namespace Puma {
11620
13480
 
11621
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13481
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11622
13482
class CT_UnionSpec : public CT_ClassSpec {
11623
 
#line 11624 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13483
#line 13484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
13484
  friend class ::CCExprResolve;
 
13485
  friend class ::CExprResolve;
11624
13486
  friend class ::WinIfExists;
11625
13487
  friend class ::WinImportHandler;
11626
13488
  friend class ::WinMacros;
11627
 
  friend class ::CMatchSyntax;
11628
 
  friend class ::ExtGnu;
 
13489
  friend class ::WinAsm;
 
13490
  friend class ::WinDeclSpecs;
 
13491
  friend class ::WinMemberExplSpec;
 
13492
  friend class ::WinTypeKeywords;
 
13493
  friend class ::WinFriend;
11629
13494
  friend class ::ExtAC;
11630
13495
  friend class ::ExtACBuilderCoupling;
11631
13496
  friend class ::ExtACSyntaxCoupling;
11632
13497
  friend class ::ExtACTree;
11633
13498
  friend class ::ExtACKeywords;
11634
 
  friend class ::WinAsm;
11635
 
  friend class ::WinDeclSpecs;
11636
 
  friend class ::WinMemberExplSpec;
11637
 
  friend class ::WinTypeKeywords;
 
13499
  friend class ::ExtGnu;
11638
13500
  friend class ::PragmaOnceUnitState;
11639
13501
  friend class ::PragmaOnce;
11640
 
  friend class ::CCExprResolve;
11641
 
  friend class ::CExprResolve;
 
13502
  friend class ::CMatchSyntax;
11642
13503
 
11643
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13504
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11644
13505
 
11645
13506
public:
 
13507
  /** Constructor.
 
13508
   *  \param k The 'union' keyword.
 
13509
   *  \param n The name of the union. */
11646
13510
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
13511
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11647
13512
  static const char *NodeId ();
 
13513
  /** Get the name of the node. Can be compared with NodeId(). */
11648
13514
  const char *NodeName () const { return NodeId (); }
11649
13515
};
11650
13516
 
 
13517
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
13518
 *  Tree node representing an enumeration specifier, e.g. enum X. */
11651
13519
 
11652
 
#line 11653 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13520
#line 13521 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11653
13521
} // closed Puma
 
13522
class CCExprResolve;
 
13523
class CExprResolve;
11654
13524
class WinIfExists;
11655
13525
class WinImportHandler;
11656
13526
class WinMacros;
11657
 
class CMatchSyntax;
11658
 
class ExtGnu;
 
13527
class WinAsm;
 
13528
class WinDeclSpecs;
 
13529
class WinMemberExplSpec;
 
13530
class WinTypeKeywords;
 
13531
class WinFriend;
11659
13532
class ExtAC;
11660
13533
class ExtACBuilderCoupling;
11661
13534
class ExtACSyntaxCoupling;
11662
13535
class ExtACTree;
11663
13536
class ExtACKeywords;
11664
 
class WinAsm;
11665
 
class WinDeclSpecs;
11666
 
class WinMemberExplSpec;
11667
 
class WinTypeKeywords;
 
13537
class ExtGnu;
11668
13538
class PragmaOnceUnitState;
11669
13539
class PragmaOnce;
11670
 
class CCExprResolve;
11671
 
class CExprResolve;
 
13540
class CMatchSyntax;
11672
13541
namespace Puma {
11673
13542
 
11674
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13543
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11675
13544
class CT_EnumSpec : public CT_ClassSpec {
11676
 
#line 11677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13545
#line 13546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
13546
  friend class ::CCExprResolve;
 
13547
  friend class ::CExprResolve;
11677
13548
  friend class ::WinIfExists;
11678
13549
  friend class ::WinImportHandler;
11679
13550
  friend class ::WinMacros;
11680
 
  friend class ::CMatchSyntax;
11681
 
  friend class ::ExtGnu;
 
13551
  friend class ::WinAsm;
 
13552
  friend class ::WinDeclSpecs;
 
13553
  friend class ::WinMemberExplSpec;
 
13554
  friend class ::WinTypeKeywords;
 
13555
  friend class ::WinFriend;
11682
13556
  friend class ::ExtAC;
11683
13557
  friend class ::ExtACBuilderCoupling;
11684
13558
  friend class ::ExtACSyntaxCoupling;
11685
13559
  friend class ::ExtACTree;
11686
13560
  friend class ::ExtACKeywords;
11687
 
  friend class ::WinAsm;
11688
 
  friend class ::WinDeclSpecs;
11689
 
  friend class ::WinMemberExplSpec;
11690
 
  friend class ::WinTypeKeywords;
 
13561
  friend class ::ExtGnu;
11691
13562
  friend class ::PragmaOnceUnitState;
11692
13563
  friend class ::PragmaOnce;
11693
 
  friend class ::CCExprResolve;
11694
 
  friend class ::CExprResolve;
 
13564
  friend class ::CMatchSyntax;
11695
13565
 
11696
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13566
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11697
13567
 
11698
13568
public:
 
13569
  /** Constructor.
 
13570
   *  \param k The 'enum' keyword. 
 
13571
   *  \param n The name of the enumeration. */
11699
13572
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
13573
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11700
13574
  static const char *NodeId ();
 
13575
  /** Get the name of the node. Can be compared with NodeId(). */
11701
13576
  const char *NodeName () const { return NodeId (); }
11702
13577
};
11703
13578
 
 
13579
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
13580
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
11704
13581
 
11705
 
#line 11706 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13582
#line 13583 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11706
13583
} // closed Puma
 
13584
class CCExprResolve;
 
13585
class CExprResolve;
11707
13586
class WinIfExists;
11708
13587
class WinImportHandler;
11709
13588
class WinMacros;
11710
 
class CMatchSyntax;
11711
 
class ExtGnu;
 
13589
class WinAsm;
 
13590
class WinDeclSpecs;
 
13591
class WinMemberExplSpec;
 
13592
class WinTypeKeywords;
 
13593
class WinFriend;
11712
13594
class ExtAC;
11713
13595
class ExtACBuilderCoupling;
11714
13596
class ExtACSyntaxCoupling;
11715
13597
class ExtACTree;
11716
13598
class ExtACKeywords;
11717
 
class WinAsm;
11718
 
class WinDeclSpecs;
11719
 
class WinMemberExplSpec;
11720
 
class WinTypeKeywords;
 
13599
class ExtGnu;
11721
13600
class PragmaOnceUnitState;
11722
13601
class PragmaOnce;
11723
 
class CCExprResolve;
11724
 
class CExprResolve;
 
13602
class CMatchSyntax;
11725
13603
namespace Puma {
11726
13604
 
11727
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13605
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11728
13606
class CT_ExceptionSpec : public CT_DeclSpec {
11729
 
#line 11730 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13607
#line 13608 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
13608
  friend class ::CCExprResolve;
 
13609
  friend class ::CExprResolve;
11730
13610
  friend class ::WinIfExists;
11731
13611
  friend class ::WinImportHandler;
11732
13612
  friend class ::WinMacros;
11733
 
  friend class ::CMatchSyntax;
11734
 
  friend class ::ExtGnu;
 
13613
  friend class ::WinAsm;
 
13614
  friend class ::WinDeclSpecs;
 
13615
  friend class ::WinMemberExplSpec;
 
13616
  friend class ::WinTypeKeywords;
 
13617
  friend class ::WinFriend;
11735
13618
  friend class ::ExtAC;
11736
13619
  friend class ::ExtACBuilderCoupling;
11737
13620
  friend class ::ExtACSyntaxCoupling;
11738
13621
  friend class ::ExtACTree;
11739
13622
  friend class ::ExtACKeywords;
11740
 
  friend class ::WinAsm;
11741
 
  friend class ::WinDeclSpecs;
11742
 
  friend class ::WinMemberExplSpec;
11743
 
  friend class ::WinTypeKeywords;
 
13623
  friend class ::ExtGnu;
11744
13624
  friend class ::PragmaOnceUnitState;
11745
13625
  friend class ::PragmaOnce;
11746
 
  friend class ::CCExprResolve;
11747
 
  friend class ::CExprResolve;
 
13626
  friend class ::CMatchSyntax;
11748
13627
 
11749
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13628
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11750
13629
 
11751
13630
  CTree *sons[2]; // throw, type_id_list
11752
13631
  
11753
13632
public:
11754
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
13633
  /** Constructor.
 
13634
   *  \param k The 'throw' keyword.
 
13635
   *  \param l The type list for the exception type to throw. */
 
13636
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
13637
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11755
13638
  static const char *NodeId ();
 
13639
  /** Get the name of the node. Can be compared with NodeId(). */
11756
13640
  const char *NodeName () const { return NodeId (); }
 
13641
  /** Get the number of sons. */
11757
13642
  int Sons () const { return 2; }
 
13643
  /** Get the n-th son.
 
13644
   *  \param n The index of the son.
 
13645
   *  \return The n-th son or NULL. */
11758
13646
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
13647
  /** Get the exception type list. */
11759
13648
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
13649
  /** Replace a son.
 
13650
   *  \param old_son The son to replace.
 
13651
   *  \param new_son The new son. */
11760
13652
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11761
13653
    CTree::ReplaceSon (sons, 2, old_son, new_son);
11762
13654
  }
11768
13660
/*                                                                           */
11769
13661
/*****************************************************************************/
11770
13662
 
 
13663
/** \class CT_Decl CTree.h Puma/CTree.h
 
13664
 *  Base class for all tree nodes representing declarations. */
11771
13665
 
11772
 
#line 11773 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13666
#line 13667 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11773
13667
} // closed Puma
 
13668
class CCExprResolve;
 
13669
class CExprResolve;
11774
13670
class WinIfExists;
11775
13671
class WinImportHandler;
11776
13672
class WinMacros;
11777
 
class CMatchSyntax;
11778
 
class ExtGnu;
 
13673
class WinAsm;
 
13674
class WinDeclSpecs;
 
13675
class WinMemberExplSpec;
 
13676
class WinTypeKeywords;
 
13677
class WinFriend;
11779
13678
class ExtAC;
11780
13679
class ExtACBuilderCoupling;
11781
13680
class ExtACSyntaxCoupling;
11782
13681
class ExtACTree;
11783
13682
class ExtACKeywords;
11784
 
class WinAsm;
11785
 
class WinDeclSpecs;
11786
 
class WinMemberExplSpec;
11787
 
class WinTypeKeywords;
 
13683
class ExtGnu;
11788
13684
class PragmaOnceUnitState;
11789
13685
class PragmaOnce;
11790
 
class CCExprResolve;
11791
 
class CExprResolve;
 
13686
class CMatchSyntax;
11792
13687
namespace Puma {
11793
13688
 
11794
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13689
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11795
13690
class CT_Decl : public CTree {
11796
 
#line 11797 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13691
#line 13692 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
13692
  friend class ::CCExprResolve;
 
13693
  friend class ::CExprResolve;
11797
13694
  friend class ::WinIfExists;
11798
13695
  friend class ::WinImportHandler;
11799
13696
  friend class ::WinMacros;
11800
 
  friend class ::CMatchSyntax;
11801
 
  friend class ::ExtGnu;
 
13697
  friend class ::WinAsm;
 
13698
  friend class ::WinDeclSpecs;
 
13699
  friend class ::WinMemberExplSpec;
 
13700
  friend class ::WinTypeKeywords;
 
13701
  friend class ::WinFriend;
11802
13702
  friend class ::ExtAC;
11803
13703
  friend class ::ExtACBuilderCoupling;
11804
13704
  friend class ::ExtACSyntaxCoupling;
11805
13705
  friend class ::ExtACTree;
11806
13706
  friend class ::ExtACKeywords;
11807
 
  friend class ::WinAsm;
11808
 
  friend class ::WinDeclSpecs;
11809
 
  friend class ::WinMemberExplSpec;
11810
 
  friend class ::WinTypeKeywords;
 
13707
  friend class ::ExtGnu;
11811
13708
  friend class ::PragmaOnceUnitState;
11812
13709
  friend class ::PragmaOnce;
11813
 
  friend class ::CCExprResolve;
11814
 
  friend class ::CExprResolve;
 
13710
  friend class ::CMatchSyntax;
11815
13711
 
11816
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13712
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11817
13713
 
11818
13714
  CT_LinkageSpec *_linkage;
 
13715
  
11819
13716
protected:
 
13717
  /** Constructor. */
11820
13718
  CT_Decl () : _linkage (0) {}
 
13719
  
11821
13720
public:
 
13721
  /** Set the linkage of the declared entity.
 
13722
   *  \param l The linkage specifiers. */
11822
13723
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
13724
  /** Get the linkage specifiers. */
11823
13725
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
13726
  /** Get this. */
 
13727
  virtual CT_Decl *IsDeclaration () { return this; }
11824
13728
};
11825
13729
 
 
13730
/** \class CT_Program CTree.h Puma/CTree.h
 
13731
 *  Root node of C/C++ syntax tree. */
11826
13732
 
11827
 
#line 11828 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13733
#line 13734 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11828
13734
} // closed Puma
 
13735
class CCExprResolve;
 
13736
class CExprResolve;
11829
13737
class WinIfExists;
11830
13738
class WinImportHandler;
11831
13739
class WinMacros;
11832
 
class CMatchSyntax;
11833
 
class ExtGnu;
 
13740
class WinAsm;
 
13741
class WinDeclSpecs;
 
13742
class WinMemberExplSpec;
 
13743
class WinTypeKeywords;
 
13744
class WinFriend;
11834
13745
class ExtAC;
11835
13746
class ExtACBuilderCoupling;
11836
13747
class ExtACSyntaxCoupling;
11837
13748
class ExtACTree;
11838
13749
class ExtACKeywords;
11839
 
class WinAsm;
11840
 
class WinDeclSpecs;
11841
 
class WinMemberExplSpec;
11842
 
class WinTypeKeywords;
 
13750
class ExtGnu;
11843
13751
class PragmaOnceUnitState;
11844
13752
class PragmaOnce;
11845
 
class CCExprResolve;
11846
 
class CExprResolve;
 
13753
class CMatchSyntax;
11847
13754
namespace Puma {
11848
13755
 
11849
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13756
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11850
13757
class CT_Program : public CT_DeclList, public CSemScope {
11851
 
#line 11852 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13758
#line 13759 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
13759
  friend class ::CCExprResolve;
 
13760
  friend class ::CExprResolve;
11852
13761
  friend class ::WinIfExists;
11853
13762
  friend class ::WinImportHandler;
11854
13763
  friend class ::WinMacros;
11855
 
  friend class ::CMatchSyntax;
11856
 
  friend class ::ExtGnu;
 
13764
  friend class ::WinAsm;
 
13765
  friend class ::WinDeclSpecs;
 
13766
  friend class ::WinMemberExplSpec;
 
13767
  friend class ::WinTypeKeywords;
 
13768
  friend class ::WinFriend;
11857
13769
  friend class ::ExtAC;
11858
13770
  friend class ::ExtACBuilderCoupling;
11859
13771
  friend class ::ExtACSyntaxCoupling;
11860
13772
  friend class ::ExtACTree;
11861
13773
  friend class ::ExtACKeywords;
11862
 
  friend class ::WinAsm;
11863
 
  friend class ::WinDeclSpecs;
11864
 
  friend class ::WinMemberExplSpec;
11865
 
  friend class ::WinTypeKeywords;
 
13774
  friend class ::ExtGnu;
11866
13775
  friend class ::PragmaOnceUnitState;
11867
13776
  friend class ::PragmaOnce;
11868
 
  friend class ::CCExprResolve;
11869
 
  friend class ::CExprResolve;
 
13777
  friend class ::CMatchSyntax;
11870
13778
 
11871
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13779
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11872
13780
 
11873
13781
public:
 
13782
  /** Constructor.
 
13783
   *  \param size The initial number of declarations in the program.
 
13784
   *  \param incr The initial increment count. */
11874
13785
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
13786
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11875
13787
  static const char *NodeId ();
 
13788
  /** Get the name of the node. Can be compared with NodeId(). */
11876
13789
  const char *NodeName () const { return NodeId (); }
 
13790
  /** Get the semantic scope object. */
 
13791
  CSemScope *SemScope () const { return (CSemScope*)this; }
11877
13792
};
11878
13793
   
 
13794
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
13795
 *  Tree node representing an object declaration, e.g. int *i. */
11879
13796
 
11880
 
#line 11881 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13797
#line 13798 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11881
13798
} // closed Puma
 
13799
class CCExprResolve;
 
13800
class CExprResolve;
11882
13801
class WinIfExists;
11883
13802
class WinImportHandler;
11884
13803
class WinMacros;
11885
 
class CMatchSyntax;
11886
 
class ExtGnu;
 
13804
class WinAsm;
 
13805
class WinDeclSpecs;
 
13806
class WinMemberExplSpec;
 
13807
class WinTypeKeywords;
 
13808
class WinFriend;
11887
13809
class ExtAC;
11888
13810
class ExtACBuilderCoupling;
11889
13811
class ExtACSyntaxCoupling;
11890
13812
class ExtACTree;
11891
13813
class ExtACKeywords;
11892
 
class WinAsm;
11893
 
class WinDeclSpecs;
11894
 
class WinMemberExplSpec;
11895
 
class WinTypeKeywords;
 
13814
class ExtGnu;
11896
13815
class PragmaOnceUnitState;
11897
13816
class PragmaOnce;
11898
 
class CCExprResolve;
11899
 
class CExprResolve;
 
13817
class CMatchSyntax;
11900
13818
namespace Puma {
11901
13819
 
11902
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13820
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11903
13821
class CT_ObjDecl : public CT_Decl {
11904
 
#line 11905 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13822
#line 13823 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
13823
  friend class ::CCExprResolve;
 
13824
  friend class ::CExprResolve;
11905
13825
  friend class ::WinIfExists;
11906
13826
  friend class ::WinImportHandler;
11907
13827
  friend class ::WinMacros;
11908
 
  friend class ::CMatchSyntax;
11909
 
  friend class ::ExtGnu;
 
13828
  friend class ::WinAsm;
 
13829
  friend class ::WinDeclSpecs;
 
13830
  friend class ::WinMemberExplSpec;
 
13831
  friend class ::WinTypeKeywords;
 
13832
  friend class ::WinFriend;
11910
13833
  friend class ::ExtAC;
11911
13834
  friend class ::ExtACBuilderCoupling;
11912
13835
  friend class ::ExtACSyntaxCoupling;
11913
13836
  friend class ::ExtACTree;
11914
13837
  friend class ::ExtACKeywords;
11915
 
  friend class ::WinAsm;
11916
 
  friend class ::WinDeclSpecs;
11917
 
  friend class ::WinMemberExplSpec;
11918
 
  friend class ::WinTypeKeywords;
 
13838
  friend class ::ExtGnu;
11919
13839
  friend class ::PragmaOnceUnitState;
11920
13840
  friend class ::PragmaOnce;
11921
 
  friend class ::CCExprResolve;
11922
 
  friend class ::CExprResolve;
 
13841
  friend class ::CMatchSyntax;
11923
13842
 
11924
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13843
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11925
13844
 
11926
13845
  CTree *sons[3]; // declspecs, declarators, colon
11927
13846
 
11928
13847
public:
 
13848
  /** Constructor.
 
13849
   *  \param dsl The declaration specifier sequence.
 
13850
   *  \param dl The declarator list.
 
13851
   *  \param c Optional colon. */
11929
13852
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
11930
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
13853
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
11931
13854
  }
 
13855
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11932
13856
  static const char *NodeId ();
 
13857
  /** Get the name of the node. Can be compared with NodeId(). */
11933
13858
  const char *NodeName () const { return NodeId (); }
 
13859
  /** Get the number of sons. */
11934
13860
  int Sons () const { return 3; }
 
13861
  /** Get the n-th son.
 
13862
   *  \param n The index of the son.
 
13863
   *  \return The n-th son or NULL. */
11935
13864
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
13865
  /** Get the declaration specifier sequence. */
11936
13866
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
13867
  /** Get the declarator list. */
11937
13868
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
13869
  /** Replace a son.
 
13870
   *  \param old_son The son to replace.
 
13871
   *  \param new_son The new son. */
11938
13872
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
11939
13873
    CTree::ReplaceSon (sons, 3, old_son, new_son);
11940
13874
  }
11941
13875
};
11942
13876
 
 
13877
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
13878
 *  Tree node representing a template declaration. */
11943
13879
 
11944
 
#line 11945 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13880
#line 13881 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
11945
13881
} // closed Puma
 
13882
class CCExprResolve;
 
13883
class CExprResolve;
11946
13884
class WinIfExists;
11947
13885
class WinImportHandler;
11948
13886
class WinMacros;
11949
 
class CMatchSyntax;
11950
 
class ExtGnu;
 
13887
class WinAsm;
 
13888
class WinDeclSpecs;
 
13889
class WinMemberExplSpec;
 
13890
class WinTypeKeywords;
 
13891
class WinFriend;
11951
13892
class ExtAC;
11952
13893
class ExtACBuilderCoupling;
11953
13894
class ExtACSyntaxCoupling;
11954
13895
class ExtACTree;
11955
13896
class ExtACKeywords;
11956
 
class WinAsm;
11957
 
class WinDeclSpecs;
11958
 
class WinMemberExplSpec;
11959
 
class WinTypeKeywords;
 
13897
class ExtGnu;
11960
13898
class PragmaOnceUnitState;
11961
13899
class PragmaOnce;
11962
 
class CCExprResolve;
11963
 
class CExprResolve;
 
13900
class CMatchSyntax;
11964
13901
namespace Puma {
11965
13902
 
11966
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13903
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11967
13904
class CT_TemplateDecl : public CT_Decl, public CSemScope {
11968
 
#line 11969 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13905
#line 13906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
13906
  friend class ::CCExprResolve;
 
13907
  friend class ::CExprResolve;
11969
13908
  friend class ::WinIfExists;
11970
13909
  friend class ::WinImportHandler;
11971
13910
  friend class ::WinMacros;
11972
 
  friend class ::CMatchSyntax;
11973
 
  friend class ::ExtGnu;
 
13911
  friend class ::WinAsm;
 
13912
  friend class ::WinDeclSpecs;
 
13913
  friend class ::WinMemberExplSpec;
 
13914
  friend class ::WinTypeKeywords;
 
13915
  friend class ::WinFriend;
11974
13916
  friend class ::ExtAC;
11975
13917
  friend class ::ExtACBuilderCoupling;
11976
13918
  friend class ::ExtACSyntaxCoupling;
11977
13919
  friend class ::ExtACTree;
11978
13920
  friend class ::ExtACKeywords;
11979
 
  friend class ::WinAsm;
11980
 
  friend class ::WinDeclSpecs;
11981
 
  friend class ::WinMemberExplSpec;
11982
 
  friend class ::WinTypeKeywords;
 
13921
  friend class ::ExtGnu;
11983
13922
  friend class ::PragmaOnceUnitState;
11984
13923
  friend class ::PragmaOnce;
11985
 
  friend class ::CCExprResolve;
11986
 
  friend class ::CExprResolve;
 
13924
  friend class ::CMatchSyntax;
11987
13925
 
11988
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13926
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
11989
13927
 
11990
13928
  CTree *sons[3]; // export, param_list, decl
11991
13929
 
11992
13930
public:
 
13931
  /** Constructor.
 
13932
   *  \param e Optional 'export' keyword. 
 
13933
   *  \param p The template parameter list.
 
13934
   *  \param d The class or function declaration. */
11993
13935
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
11994
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
13936
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
11995
13937
  }
 
13938
  /** Get the identifier for this node type. Can be compared with NodeName(). */
11996
13939
  static const char *NodeId ();
 
13940
  /** Get the name of the node. Can be compared with NodeId(). */
11997
13941
  const char *NodeName () const { return NodeId (); }
 
13942
  /** Get the number of sons. */
11998
13943
  int Sons () const { return CTree::Sons (sons, 3); }
 
13944
  /** Get the n-th son.
 
13945
   *  \param n The index of the son.
 
13946
   *  \return The n-th son or NULL. */
11999
13947
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
13948
  /** Replace a son.
 
13949
   *  \param old_son The son to replace.
 
13950
   *  \param new_son The new son. */
12000
13951
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12001
13952
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
12002
13953
  }
 
13954
  /** Get the 'export' keyword. */
12003
13955
  CTree *Export () const { return sons[0]; }
 
13956
  /** Get the template parameter list. */
12004
13957
  CT_TemplateParamList *Parameters () const { 
12005
13958
    return (CT_TemplateParamList*)sons[1]; 
12006
13959
  }
 
13960
  /** Get the class or function declaration. */
12007
13961
  CTree *Declaration () const { return sons[2]; }
 
13962
  /** Get the semantic scope object. */
 
13963
  CSemScope *SemScope () const { return (CSemScope*)this; }
12008
13964
};
12009
13965
 
 
13966
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
13967
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
12010
13968
 
12011
 
#line 12012 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13969
#line 13970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12012
13970
} // closed Puma
 
13971
class CCExprResolve;
 
13972
class CExprResolve;
12013
13973
class WinIfExists;
12014
13974
class WinImportHandler;
12015
13975
class WinMacros;
12016
 
class CMatchSyntax;
12017
 
class ExtGnu;
 
13976
class WinAsm;
 
13977
class WinDeclSpecs;
 
13978
class WinMemberExplSpec;
 
13979
class WinTypeKeywords;
 
13980
class WinFriend;
12018
13981
class ExtAC;
12019
13982
class ExtACBuilderCoupling;
12020
13983
class ExtACSyntaxCoupling;
12021
13984
class ExtACTree;
12022
13985
class ExtACKeywords;
12023
 
class WinAsm;
12024
 
class WinDeclSpecs;
12025
 
class WinMemberExplSpec;
12026
 
class WinTypeKeywords;
 
13986
class ExtGnu;
12027
13987
class PragmaOnceUnitState;
12028
13988
class PragmaOnce;
12029
 
class CCExprResolve;
12030
 
class CExprResolve;
 
13989
class CMatchSyntax;
12031
13990
namespace Puma {
12032
13991
 
12033
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
13992
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12034
13993
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
12035
 
#line 12036 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
13994
#line 13995 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
13995
  friend class ::CCExprResolve;
 
13996
  friend class ::CExprResolve;
12036
13997
  friend class ::WinIfExists;
12037
13998
  friend class ::WinImportHandler;
12038
13999
  friend class ::WinMacros;
12039
 
  friend class ::CMatchSyntax;
12040
 
  friend class ::ExtGnu;
 
14000
  friend class ::WinAsm;
 
14001
  friend class ::WinDeclSpecs;
 
14002
  friend class ::WinMemberExplSpec;
 
14003
  friend class ::WinTypeKeywords;
 
14004
  friend class ::WinFriend;
12041
14005
  friend class ::ExtAC;
12042
14006
  friend class ::ExtACBuilderCoupling;
12043
14007
  friend class ::ExtACSyntaxCoupling;
12044
14008
  friend class ::ExtACTree;
12045
14009
  friend class ::ExtACKeywords;
12046
 
  friend class ::WinAsm;
12047
 
  friend class ::WinDeclSpecs;
12048
 
  friend class ::WinMemberExplSpec;
12049
 
  friend class ::WinTypeKeywords;
 
14010
  friend class ::ExtGnu;
12050
14011
  friend class ::PragmaOnceUnitState;
12051
14012
  friend class ::PragmaOnce;
12052
 
  friend class ::CCExprResolve;
12053
 
  friend class ::CExprResolve;
 
14013
  friend class ::CMatchSyntax;
12054
14014
 
12055
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14015
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12056
14016
 
12057
14017
protected:
 
14018
  /** Constructor. */
12058
14019
  CT_TemplateParamDecl () {}
12059
14020
  
12060
14021
public:
 
14022
  /** Get the template default argument. */
12061
14023
  virtual CT_ExprList *DefaultArgument () const = 0;
 
14024
  /** Get the semantic information object. */
12062
14025
  CSemObject *SemObject () const { return (CSemObject*)this; }
12063
14026
};
12064
14027
 
12065
14028
 
12066
 
#line 12067 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14029
#line 14030 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12067
14030
} // closed Puma
 
14031
class CCExprResolve;
 
14032
class CExprResolve;
12068
14033
class WinIfExists;
12069
14034
class WinImportHandler;
12070
14035
class WinMacros;
12071
 
class CMatchSyntax;
12072
 
class ExtGnu;
 
14036
class WinAsm;
 
14037
class WinDeclSpecs;
 
14038
class WinMemberExplSpec;
 
14039
class WinTypeKeywords;
 
14040
class WinFriend;
12073
14041
class ExtAC;
12074
14042
class ExtACBuilderCoupling;
12075
14043
class ExtACSyntaxCoupling;
12076
14044
class ExtACTree;
12077
14045
class ExtACKeywords;
12078
 
class WinAsm;
12079
 
class WinDeclSpecs;
12080
 
class WinMemberExplSpec;
12081
 
class WinTypeKeywords;
 
14046
class ExtGnu;
12082
14047
class PragmaOnceUnitState;
12083
14048
class PragmaOnce;
12084
 
class CCExprResolve;
12085
 
class CExprResolve;
 
14049
class CMatchSyntax;
12086
14050
namespace Puma {
12087
14051
 
12088
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14052
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12089
14053
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
12090
 
#line 12091 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14054
#line 14055 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
14055
  friend class ::CCExprResolve;
 
14056
  friend class ::CExprResolve;
12091
14057
  friend class ::WinIfExists;
12092
14058
  friend class ::WinImportHandler;
12093
14059
  friend class ::WinMacros;
12094
 
  friend class ::CMatchSyntax;
12095
 
  friend class ::ExtGnu;
 
14060
  friend class ::WinAsm;
 
14061
  friend class ::WinDeclSpecs;
 
14062
  friend class ::WinMemberExplSpec;
 
14063
  friend class ::WinTypeKeywords;
 
14064
  friend class ::WinFriend;
12096
14065
  friend class ::ExtAC;
12097
14066
  friend class ::ExtACBuilderCoupling;
12098
14067
  friend class ::ExtACSyntaxCoupling;
12099
14068
  friend class ::ExtACTree;
12100
14069
  friend class ::ExtACKeywords;
12101
 
  friend class ::WinAsm;
12102
 
  friend class ::WinDeclSpecs;
12103
 
  friend class ::WinMemberExplSpec;
12104
 
  friend class ::WinTypeKeywords;
 
14070
  friend class ::ExtGnu;
12105
14071
  friend class ::PragmaOnceUnitState;
12106
14072
  friend class ::PragmaOnce;
12107
 
  friend class ::CCExprResolve;
12108
 
  friend class ::CExprResolve;
 
14073
  friend class ::CMatchSyntax;
12109
14074
 
12110
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14075
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12111
14076
 
12112
14077
  CTree *sons[3]; // declspecs, declarator, init
12113
14078
 
12114
14079
public:
12115
14080
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
12116
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
14081
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
12117
14082
  }
 
14083
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12118
14084
  static const char *NodeId ();
 
14085
  /** Get the name of the node. Can be compared with NodeId(). */
12119
14086
  const char *NodeName () const { return NodeId (); }
 
14087
  /** Get the number of sons. */
12120
14088
  int Sons () const { return CTree::Sons (sons, 3); }
 
14089
  /** Get the n-th son.
 
14090
   *  \param n The index of the son.
 
14091
   *  \return The n-th son or NULL. */
12121
14092
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12122
14093
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
12123
14094
  CTree *Declarator () const { return sons[1]; }
12124
14095
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
12125
14096
  CSemObject *SemObject () const { return (CSemObject*)this; }
12126
 
  void Initializer (CTree *i) { sons[2] = i; }
 
14097
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
14098
  /** Replace a son.
 
14099
   *  \param old_son The son to replace.
 
14100
   *  \param new_son The new son. */
12127
14101
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12128
14102
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12129
14103
  }
12130
14104
};
12131
14105
 
12132
14106
 
12133
 
#line 12134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14107
#line 14108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12134
14108
} // closed Puma
 
14109
class CCExprResolve;
 
14110
class CExprResolve;
12135
14111
class WinIfExists;
12136
14112
class WinImportHandler;
12137
14113
class WinMacros;
12138
 
class CMatchSyntax;
12139
 
class ExtGnu;
 
14114
class WinAsm;
 
14115
class WinDeclSpecs;
 
14116
class WinMemberExplSpec;
 
14117
class WinTypeKeywords;
 
14118
class WinFriend;
12140
14119
class ExtAC;
12141
14120
class ExtACBuilderCoupling;
12142
14121
class ExtACSyntaxCoupling;
12143
14122
class ExtACTree;
12144
14123
class ExtACKeywords;
12145
 
class WinAsm;
12146
 
class WinDeclSpecs;
12147
 
class WinMemberExplSpec;
12148
 
class WinTypeKeywords;
 
14124
class ExtGnu;
12149
14125
class PragmaOnceUnitState;
12150
14126
class PragmaOnce;
12151
 
class CCExprResolve;
12152
 
class CExprResolve;
 
14127
class CMatchSyntax;
12153
14128
namespace Puma {
12154
14129
 
12155
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14130
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12156
14131
class CT_TypeParamDecl : public CT_TemplateParamDecl {
12157
 
#line 12158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14132
#line 14133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
14133
  friend class ::CCExprResolve;
 
14134
  friend class ::CExprResolve;
12158
14135
  friend class ::WinIfExists;
12159
14136
  friend class ::WinImportHandler;
12160
14137
  friend class ::WinMacros;
12161
 
  friend class ::CMatchSyntax;
12162
 
  friend class ::ExtGnu;
 
14138
  friend class ::WinAsm;
 
14139
  friend class ::WinDeclSpecs;
 
14140
  friend class ::WinMemberExplSpec;
 
14141
  friend class ::WinTypeKeywords;
 
14142
  friend class ::WinFriend;
12163
14143
  friend class ::ExtAC;
12164
14144
  friend class ::ExtACBuilderCoupling;
12165
14145
  friend class ::ExtACSyntaxCoupling;
12166
14146
  friend class ::ExtACTree;
12167
14147
  friend class ::ExtACKeywords;
12168
 
  friend class ::WinAsm;
12169
 
  friend class ::WinDeclSpecs;
12170
 
  friend class ::WinMemberExplSpec;
12171
 
  friend class ::WinTypeKeywords;
 
14148
  friend class ::ExtGnu;
12172
14149
  friend class ::PragmaOnceUnitState;
12173
14150
  friend class ::PragmaOnce;
12174
 
  friend class ::CCExprResolve;
12175
 
  friend class ::CExprResolve;
 
14151
  friend class ::CMatchSyntax;
12176
14152
 
12177
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14153
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12178
14154
 
12179
14155
  CTree *sons[4]; // params, key, id, init
12180
14156
 
12181
14157
public:
12182
14158
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
12183
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
14159
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
14160
    AddSon (sons[2], id); AddSon (sons[3], i);
12184
14161
  }
 
14162
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12185
14163
  static const char *NodeId ();
 
14164
  /** Get the name of the node. Can be compared with NodeId(). */
12186
14165
  const char *NodeName () const { return NodeId (); }
 
14166
  /** Get the number of sons. */
12187
14167
  int Sons () const { return CTree::Sons (sons, 4); }
 
14168
  /** Get the n-th son.
 
14169
   *  \param n The index of the son.
 
14170
   *  \return The n-th son or NULL. */
12188
14171
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
12189
14172
  CT_TemplateParamList *Parameters () const { 
12190
14173
    return (CT_TemplateParamList*)sons[0]; 
12191
14174
  }
12192
14175
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
12193
14176
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
12194
 
  void Initializer (CTree *i) { sons[3] = i; }
 
14177
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
14178
  /** Replace a son.
 
14179
   *  \param old_son The son to replace.
 
14180
   *  \param new_son The new son. */
12195
14181
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12196
14182
    CTree::ReplaceSon (sons, 4, old_son, new_son);
12197
14183
  }
12198
14184
};
12199
14185
 
12200
14186
 
12201
 
#line 12202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14187
#line 14188 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12202
14188
} // closed Puma
 
14189
class CCExprResolve;
 
14190
class CExprResolve;
12203
14191
class WinIfExists;
12204
14192
class WinImportHandler;
12205
14193
class WinMacros;
12206
 
class CMatchSyntax;
12207
 
class ExtGnu;
 
14194
class WinAsm;
 
14195
class WinDeclSpecs;
 
14196
class WinMemberExplSpec;
 
14197
class WinTypeKeywords;
 
14198
class WinFriend;
12208
14199
class ExtAC;
12209
14200
class ExtACBuilderCoupling;
12210
14201
class ExtACSyntaxCoupling;
12211
14202
class ExtACTree;
12212
14203
class ExtACKeywords;
12213
 
class WinAsm;
12214
 
class WinDeclSpecs;
12215
 
class WinMemberExplSpec;
12216
 
class WinTypeKeywords;
 
14204
class ExtGnu;
12217
14205
class PragmaOnceUnitState;
12218
14206
class PragmaOnce;
12219
 
class CCExprResolve;
12220
 
class CExprResolve;
 
14207
class CMatchSyntax;
12221
14208
namespace Puma {
12222
14209
 
12223
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14210
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12224
14211
class CT_EnumDef : public CT_Decl, public CSemObject {
12225
 
#line 12226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14212
#line 14213 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
14213
  friend class ::CCExprResolve;
 
14214
  friend class ::CExprResolve;
12226
14215
  friend class ::WinIfExists;
12227
14216
  friend class ::WinImportHandler;
12228
14217
  friend class ::WinMacros;
12229
 
  friend class ::CMatchSyntax;
12230
 
  friend class ::ExtGnu;
 
14218
  friend class ::WinAsm;
 
14219
  friend class ::WinDeclSpecs;
 
14220
  friend class ::WinMemberExplSpec;
 
14221
  friend class ::WinTypeKeywords;
 
14222
  friend class ::WinFriend;
12231
14223
  friend class ::ExtAC;
12232
14224
  friend class ::ExtACBuilderCoupling;
12233
14225
  friend class ::ExtACSyntaxCoupling;
12234
14226
  friend class ::ExtACTree;
12235
14227
  friend class ::ExtACKeywords;
12236
 
  friend class ::WinAsm;
12237
 
  friend class ::WinDeclSpecs;
12238
 
  friend class ::WinMemberExplSpec;
12239
 
  friend class ::WinTypeKeywords;
 
14228
  friend class ::ExtGnu;
12240
14229
  friend class ::PragmaOnceUnitState;
12241
14230
  friend class ::PragmaOnce;
12242
 
  friend class ::CCExprResolve;
12243
 
  friend class ::CExprResolve;
 
14231
  friend class ::CMatchSyntax;
12244
14232
 
12245
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14233
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12246
14234
 
12247
14235
  CTree *sons[3]; // key, name, enumerators
12248
14236
 
12249
14237
public:
12250
14238
  CT_EnumDef (CTree *k, CTree *n) {
12251
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
14239
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
12252
14240
  }
 
14241
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12253
14242
  static const char *NodeId ();
 
14243
  /** Get the name of the node. Can be compared with NodeId(). */
12254
14244
  const char *NodeName () const { return NodeId (); }
 
14245
  /** Get the number of sons. */
12255
14246
  int Sons () const { return CTree::Sons (sons, 3); }
 
14247
  /** Get the n-th son.
 
14248
   *  \param n The index of the son.
 
14249
   *  \return The n-th son or NULL. */
12256
14250
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12257
14251
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
12258
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
14252
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
12259
14253
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
14254
  /** Replace a son.
 
14255
   *  \param old_son The son to replace.
 
14256
   *  \param new_son The new son. */
12260
14257
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12261
14258
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12262
14259
  }
12264
14261
};
12265
14262
 
12266
14263
 
12267
 
#line 12268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14264
#line 14265 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12268
14265
} // closed Puma
 
14266
class CCExprResolve;
 
14267
class CExprResolve;
12269
14268
class WinIfExists;
12270
14269
class WinImportHandler;
12271
14270
class WinMacros;
12272
 
class CMatchSyntax;
12273
 
class ExtGnu;
 
14271
class WinAsm;
 
14272
class WinDeclSpecs;
 
14273
class WinMemberExplSpec;
 
14274
class WinTypeKeywords;
 
14275
class WinFriend;
12274
14276
class ExtAC;
12275
14277
class ExtACBuilderCoupling;
12276
14278
class ExtACSyntaxCoupling;
12277
14279
class ExtACTree;
12278
14280
class ExtACKeywords;
12279
 
class WinAsm;
12280
 
class WinDeclSpecs;
12281
 
class WinMemberExplSpec;
12282
 
class WinTypeKeywords;
 
14281
class ExtGnu;
12283
14282
class PragmaOnceUnitState;
12284
14283
class PragmaOnce;
12285
 
class CCExprResolve;
12286
 
class CExprResolve;
 
14284
class CMatchSyntax;
12287
14285
namespace Puma {
12288
14286
 
12289
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14287
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12290
14288
class CT_Enumerator : public CT_Decl, public CSemObject {
12291
 
#line 12292 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14289
#line 14290 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
14290
  friend class ::CCExprResolve;
 
14291
  friend class ::CExprResolve;
12292
14292
  friend class ::WinIfExists;
12293
14293
  friend class ::WinImportHandler;
12294
14294
  friend class ::WinMacros;
12295
 
  friend class ::CMatchSyntax;
12296
 
  friend class ::ExtGnu;
 
14295
  friend class ::WinAsm;
 
14296
  friend class ::WinDeclSpecs;
 
14297
  friend class ::WinMemberExplSpec;
 
14298
  friend class ::WinTypeKeywords;
 
14299
  friend class ::WinFriend;
12297
14300
  friend class ::ExtAC;
12298
14301
  friend class ::ExtACBuilderCoupling;
12299
14302
  friend class ::ExtACSyntaxCoupling;
12300
14303
  friend class ::ExtACTree;
12301
14304
  friend class ::ExtACKeywords;
12302
 
  friend class ::WinAsm;
12303
 
  friend class ::WinDeclSpecs;
12304
 
  friend class ::WinMemberExplSpec;
12305
 
  friend class ::WinTypeKeywords;
 
14305
  friend class ::ExtGnu;
12306
14306
  friend class ::PragmaOnceUnitState;
12307
14307
  friend class ::PragmaOnce;
12308
 
  friend class ::CCExprResolve;
12309
 
  friend class ::CExprResolve;
 
14308
  friend class ::CMatchSyntax;
12310
14309
 
12311
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14310
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12312
14311
 
12313
14312
  CTree *sons[2]; // name, init
12314
14313
 
12315
14314
public:
12316
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
14315
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
14316
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12317
14317
  static const char *NodeId ();
 
14318
  /** Get the name of the node. Can be compared with NodeId(). */
12318
14319
  const char *NodeName () const { return NodeId (); }
 
14320
  /** Get the number of sons. */
12319
14321
  int Sons () const { return CTree::Sons (sons, 2); }
 
14322
  /** Get the n-th son.
 
14323
   *  \param n The index of the son.
 
14324
   *  \return The n-th son or NULL. */
12320
14325
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
12321
14326
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
12322
 
  void Initializer (CTree *i) { sons[1] = i; }
 
14327
  void Initializer (CTree *i) { AddSon (sons[1], i); }
12323
14328
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
14329
  /** Replace a son.
 
14330
   *  \param old_son The son to replace.
 
14331
   *  \param new_son The new son. */
12324
14332
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12325
14333
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
12326
14334
  }
12328
14336
};
12329
14337
 
12330
14338
 
12331
 
#line 12332 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14339
#line 14340 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12332
14340
} // closed Puma
 
14341
class CCExprResolve;
 
14342
class CExprResolve;
12333
14343
class WinIfExists;
12334
14344
class WinImportHandler;
12335
14345
class WinMacros;
12336
 
class CMatchSyntax;
12337
 
class ExtGnu;
 
14346
class WinAsm;
 
14347
class WinDeclSpecs;
 
14348
class WinMemberExplSpec;
 
14349
class WinTypeKeywords;
 
14350
class WinFriend;
12338
14351
class ExtAC;
12339
14352
class ExtACBuilderCoupling;
12340
14353
class ExtACSyntaxCoupling;
12341
14354
class ExtACTree;
12342
14355
class ExtACKeywords;
12343
 
class WinAsm;
12344
 
class WinDeclSpecs;
12345
 
class WinMemberExplSpec;
12346
 
class WinTypeKeywords;
 
14356
class ExtGnu;
12347
14357
class PragmaOnceUnitState;
12348
14358
class PragmaOnce;
12349
 
class CCExprResolve;
12350
 
class CExprResolve;
 
14359
class CMatchSyntax;
12351
14360
namespace Puma {
12352
14361
 
12353
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14362
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12354
14363
class CT_FctDef : public CT_Decl, public CSemObject {
12355
 
#line 12356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14364
#line 14365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
14365
  friend class ::CCExprResolve;
 
14366
  friend class ::CExprResolve;
12356
14367
  friend class ::WinIfExists;
12357
14368
  friend class ::WinImportHandler;
12358
14369
  friend class ::WinMacros;
12359
 
  friend class ::CMatchSyntax;
12360
 
  friend class ::ExtGnu;
 
14370
  friend class ::WinAsm;
 
14371
  friend class ::WinDeclSpecs;
 
14372
  friend class ::WinMemberExplSpec;
 
14373
  friend class ::WinTypeKeywords;
 
14374
  friend class ::WinFriend;
12361
14375
  friend class ::ExtAC;
12362
14376
  friend class ::ExtACBuilderCoupling;
12363
14377
  friend class ::ExtACSyntaxCoupling;
12364
14378
  friend class ::ExtACTree;
12365
14379
  friend class ::ExtACKeywords;
12366
 
  friend class ::WinAsm;
12367
 
  friend class ::WinDeclSpecs;
12368
 
  friend class ::WinMemberExplSpec;
12369
 
  friend class ::WinTypeKeywords;
 
14380
  friend class ::ExtGnu;
12370
14381
  friend class ::PragmaOnceUnitState;
12371
14382
  friend class ::PragmaOnce;
12372
 
  friend class ::CCExprResolve;
12373
 
  friend class ::CExprResolve;
 
14383
  friend class ::CMatchSyntax;
12374
14384
 
12375
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14385
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12376
14386
 
12377
14387
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
12378
14388
 
12379
14389
public:
12380
14390
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
12381
14391
             CTree *b, CTree *hs) {
12382
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
12383
 
    sons[5] = b; sons[6] = hs; 
 
14392
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
14393
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
14394
    AddSon (sons[6], hs); 
12384
14395
  }
 
14396
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12385
14397
  static const char *NodeId ();
 
14398
  /** Get the name of the node. Can be compared with NodeId(). */
12386
14399
  const char *NodeName () const { return NodeId (); }
 
14400
  /** Get the number of sons. */
12387
14401
  int Sons () const { return CTree::Sons (sons, 7); }
 
14402
  /** Get the n-th son.
 
14403
   *  \param n The index of the son.
 
14404
   *  \return The n-th son or NULL. */
12388
14405
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
12389
14406
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
12390
14407
  CTree *Declarator () const { return sons[1]; }
12394
14411
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
12395
14412
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
12396
14413
  CSemObject *SemObject () const { return (CSemObject*)this; }
12397
 
  void CtorInit (CTree *i) { sons[3] = i; }
12398
 
  void Body (CTree *b) { sons[5] = b; }
 
14414
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
14415
  void Body (CTree *b) { AddSon (sons[5], b); }
12399
14416
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
12400
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
14417
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
14418
    AddSon (sons[5], b); AddSon (sons[6], h);
12401
14419
  }
 
14420
  /** Replace a son.
 
14421
   *  \param old_son The son to replace.
 
14422
   *  \param new_son The new son. */
12402
14423
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12403
14424
    CTree::ReplaceSon (sons, 7, old_son, new_son);
12404
14425
  }
12405
14426
};
12406
14427
 
12407
14428
 
12408
 
#line 12409 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14429
#line 14430 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12409
14430
} // closed Puma
 
14431
class CCExprResolve;
 
14432
class CExprResolve;
12410
14433
class WinIfExists;
12411
14434
class WinImportHandler;
12412
14435
class WinMacros;
12413
 
class CMatchSyntax;
12414
 
class ExtGnu;
 
14436
class WinAsm;
 
14437
class WinDeclSpecs;
 
14438
class WinMemberExplSpec;
 
14439
class WinTypeKeywords;
 
14440
class WinFriend;
12415
14441
class ExtAC;
12416
14442
class ExtACBuilderCoupling;
12417
14443
class ExtACSyntaxCoupling;
12418
14444
class ExtACTree;
12419
14445
class ExtACKeywords;
12420
 
class WinAsm;
12421
 
class WinDeclSpecs;
12422
 
class WinMemberExplSpec;
12423
 
class WinTypeKeywords;
 
14446
class ExtGnu;
12424
14447
class PragmaOnceUnitState;
12425
14448
class PragmaOnce;
12426
 
class CCExprResolve;
12427
 
class CExprResolve;
 
14449
class CMatchSyntax;
12428
14450
namespace Puma {
12429
14451
 
12430
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14452
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12431
14453
class CT_AsmDef : public CT_Decl {
12432
 
#line 12433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14454
#line 14455 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
14455
  friend class ::CCExprResolve;
 
14456
  friend class ::CExprResolve;
12433
14457
  friend class ::WinIfExists;
12434
14458
  friend class ::WinImportHandler;
12435
14459
  friend class ::WinMacros;
12436
 
  friend class ::CMatchSyntax;
12437
 
  friend class ::ExtGnu;
 
14460
  friend class ::WinAsm;
 
14461
  friend class ::WinDeclSpecs;
 
14462
  friend class ::WinMemberExplSpec;
 
14463
  friend class ::WinTypeKeywords;
 
14464
  friend class ::WinFriend;
12438
14465
  friend class ::ExtAC;
12439
14466
  friend class ::ExtACBuilderCoupling;
12440
14467
  friend class ::ExtACSyntaxCoupling;
12441
14468
  friend class ::ExtACTree;
12442
14469
  friend class ::ExtACKeywords;
12443
 
  friend class ::WinAsm;
12444
 
  friend class ::WinDeclSpecs;
12445
 
  friend class ::WinMemberExplSpec;
12446
 
  friend class ::WinTypeKeywords;
 
14470
  friend class ::ExtGnu;
12447
14471
  friend class ::PragmaOnceUnitState;
12448
14472
  friend class ::PragmaOnce;
12449
 
  friend class ::CCExprResolve;
12450
 
  friend class ::CExprResolve;
 
14473
  friend class ::CMatchSyntax;
12451
14474
 
12452
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14475
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12453
14476
 
12454
14477
  CTree *sons[5]; // asm, open, str, close, semi_colon
12455
14478
 
12456
14479
public:
12457
14480
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
12458
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
14481
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
14482
    AddSon (sons[3], c); AddSon (sons[4], sc); 
12459
14483
  }
 
14484
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12460
14485
  static const char *NodeId ();
 
14486
  /** Get the name of the node. Can be compared with NodeId(). */
12461
14487
  const char *NodeName () const { return NodeId (); }
 
14488
  /** Get the number of sons. */
12462
14489
  int Sons () const { return 5; }
 
14490
  /** Get the n-th son.
 
14491
   *  \param n The index of the son.
 
14492
   *  \return The n-th son or NULL. */
12463
14493
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
12464
14494
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
14495
  /** Replace a son.
 
14496
   *  \param old_son The son to replace.
 
14497
   *  \param new_son The new son. */
12465
14498
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12466
14499
    CTree::ReplaceSon (sons, 5, old_son, new_son);
12467
14500
  }
12468
14501
};
12469
14502
 
12470
14503
 
12471
 
#line 12472 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14504
#line 14505 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12472
14505
} // closed Puma
 
14506
class CCExprResolve;
 
14507
class CExprResolve;
12473
14508
class WinIfExists;
12474
14509
class WinImportHandler;
12475
14510
class WinMacros;
12476
 
class CMatchSyntax;
12477
 
class ExtGnu;
 
14511
class WinAsm;
 
14512
class WinDeclSpecs;
 
14513
class WinMemberExplSpec;
 
14514
class WinTypeKeywords;
 
14515
class WinFriend;
12478
14516
class ExtAC;
12479
14517
class ExtACBuilderCoupling;
12480
14518
class ExtACSyntaxCoupling;
12481
14519
class ExtACTree;
12482
14520
class ExtACKeywords;
12483
 
class WinAsm;
12484
 
class WinDeclSpecs;
12485
 
class WinMemberExplSpec;
12486
 
class WinTypeKeywords;
 
14521
class ExtGnu;
12487
14522
class PragmaOnceUnitState;
12488
14523
class PragmaOnce;
12489
 
class CCExprResolve;
12490
 
class CExprResolve;
 
14524
class CMatchSyntax;
12491
14525
namespace Puma {
12492
14526
 
12493
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14527
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12494
14528
class CT_Handler : public CT_Decl, public CSemScope {
12495
 
#line 12496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14529
#line 14530 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
14530
  friend class ::CCExprResolve;
 
14531
  friend class ::CExprResolve;
12496
14532
  friend class ::WinIfExists;
12497
14533
  friend class ::WinImportHandler;
12498
14534
  friend class ::WinMacros;
12499
 
  friend class ::CMatchSyntax;
12500
 
  friend class ::ExtGnu;
 
14535
  friend class ::WinAsm;
 
14536
  friend class ::WinDeclSpecs;
 
14537
  friend class ::WinMemberExplSpec;
 
14538
  friend class ::WinTypeKeywords;
 
14539
  friend class ::WinFriend;
12501
14540
  friend class ::ExtAC;
12502
14541
  friend class ::ExtACBuilderCoupling;
12503
14542
  friend class ::ExtACSyntaxCoupling;
12504
14543
  friend class ::ExtACTree;
12505
14544
  friend class ::ExtACKeywords;
12506
 
  friend class ::WinAsm;
12507
 
  friend class ::WinDeclSpecs;
12508
 
  friend class ::WinMemberExplSpec;
12509
 
  friend class ::WinTypeKeywords;
 
14545
  friend class ::ExtGnu;
12510
14546
  friend class ::PragmaOnceUnitState;
12511
14547
  friend class ::PragmaOnce;
12512
 
  friend class ::CCExprResolve;
12513
 
  friend class ::CExprResolve;
 
14548
  friend class ::CMatchSyntax;
12514
14549
 
12515
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14550
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12516
14551
 
12517
14552
  CTree *sons[3]; // catch, exception_decl, stmt
12518
14553
 
12519
14554
public:
12520
14555
  CT_Handler (CTree *c, CTree *e, CTree *s) {
12521
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
14556
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
12522
14557
  }
 
14558
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12523
14559
  static const char *NodeId ();
 
14560
  /** Get the name of the node. Can be compared with NodeId(). */
12524
14561
  const char *NodeName () const { return NodeId (); }
 
14562
  /** Get the number of sons. */
12525
14563
  int Sons () const { return 3; }
 
14564
  /** Get the n-th son.
 
14565
   *  \param n The index of the son.
 
14566
   *  \return The n-th son or NULL. */
12526
14567
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12527
14568
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
12528
14569
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
14570
  /** Replace a son.
 
14571
   *  \param old_son The son to replace.
 
14572
   *  \param new_son The new son. */
12529
14573
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12530
14574
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12531
14575
  }
 
14576
  CSemScope *SemScope () const { return (CSemScope*)this; }
12532
14577
};
12533
14578
 
12534
14579
 
12535
 
#line 12536 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14580
#line 14581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12536
14581
} // closed Puma
 
14582
class CCExprResolve;
 
14583
class CExprResolve;
12537
14584
class WinIfExists;
12538
14585
class WinImportHandler;
12539
14586
class WinMacros;
12540
 
class CMatchSyntax;
12541
 
class ExtGnu;
 
14587
class WinAsm;
 
14588
class WinDeclSpecs;
 
14589
class WinMemberExplSpec;
 
14590
class WinTypeKeywords;
 
14591
class WinFriend;
12542
14592
class ExtAC;
12543
14593
class ExtACBuilderCoupling;
12544
14594
class ExtACSyntaxCoupling;
12545
14595
class ExtACTree;
12546
14596
class ExtACKeywords;
12547
 
class WinAsm;
12548
 
class WinDeclSpecs;
12549
 
class WinMemberExplSpec;
12550
 
class WinTypeKeywords;
 
14597
class ExtGnu;
12551
14598
class PragmaOnceUnitState;
12552
14599
class PragmaOnce;
12553
 
class CCExprResolve;
12554
 
class CExprResolve;
 
14600
class CMatchSyntax;
12555
14601
namespace Puma {
12556
14602
 
12557
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14603
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12558
14604
class CT_LinkageSpec : public CT_Decl {
12559
 
#line 12560 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14605
#line 14606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
14606
  friend class ::CCExprResolve;
 
14607
  friend class ::CExprResolve;
12560
14608
  friend class ::WinIfExists;
12561
14609
  friend class ::WinImportHandler;
12562
14610
  friend class ::WinMacros;
12563
 
  friend class ::CMatchSyntax;
12564
 
  friend class ::ExtGnu;
 
14611
  friend class ::WinAsm;
 
14612
  friend class ::WinDeclSpecs;
 
14613
  friend class ::WinMemberExplSpec;
 
14614
  friend class ::WinTypeKeywords;
 
14615
  friend class ::WinFriend;
12565
14616
  friend class ::ExtAC;
12566
14617
  friend class ::ExtACBuilderCoupling;
12567
14618
  friend class ::ExtACSyntaxCoupling;
12568
14619
  friend class ::ExtACTree;
12569
14620
  friend class ::ExtACKeywords;
12570
 
  friend class ::WinAsm;
12571
 
  friend class ::WinDeclSpecs;
12572
 
  friend class ::WinMemberExplSpec;
12573
 
  friend class ::WinTypeKeywords;
 
14621
  friend class ::ExtGnu;
12574
14622
  friend class ::PragmaOnceUnitState;
12575
14623
  friend class ::PragmaOnce;
12576
 
  friend class ::CCExprResolve;
12577
 
  friend class ::CExprResolve;
 
14624
  friend class ::CMatchSyntax;
12578
14625
 
12579
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14626
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12580
14627
 
12581
14628
  CTree *sons[5]; // extern, str, open, decls, close
12582
14629
 
12583
14630
public:
12584
14631
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
12585
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
14632
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
14633
    AddSon (sons[3], d); AddSon (sons[4], c);
12586
14634
    if (isList ())
12587
14635
      ((CT_DeclList*)Decls ())->Linkage (this);
12588
14636
    else
12589
14637
      ((CT_Decl*)Decls ())->Linkage (this);
12590
14638
  }
 
14639
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12591
14640
  static const char *NodeId ();
 
14641
  /** Get the name of the node. Can be compared with NodeId(). */
12592
14642
  const char *NodeName () const { return NodeId (); }
 
14643
  /** Get the number of sons. */
12593
14644
  int Sons () const { return CTree::Sons (sons, 5); }
 
14645
  /** Get the n-th son.
 
14646
   *  \param n The index of the son.
 
14647
   *  \return The n-th son or NULL. */
12594
14648
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
12595
14649
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
12596
14650
  CTree *Decls () const { return sons[3]; }
12597
14651
  bool isList () const {
12598
14652
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
12599
14653
  }
 
14654
  /** Replace a son.
 
14655
   *  \param old_son The son to replace.
 
14656
   *  \param new_son The new son. */
12600
14657
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12601
14658
    CTree::ReplaceSon (sons, 5, old_son, new_son);
12602
14659
  }
12603
14660
};
12604
14661
 
12605
14662
 
12606
 
#line 12607 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14663
#line 14664 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12607
14664
} // closed Puma
 
14665
class CCExprResolve;
 
14666
class CExprResolve;
12608
14667
class WinIfExists;
12609
14668
class WinImportHandler;
12610
14669
class WinMacros;
12611
 
class CMatchSyntax;
12612
 
class ExtGnu;
 
14670
class WinAsm;
 
14671
class WinDeclSpecs;
 
14672
class WinMemberExplSpec;
 
14673
class WinTypeKeywords;
 
14674
class WinFriend;
12613
14675
class ExtAC;
12614
14676
class ExtACBuilderCoupling;
12615
14677
class ExtACSyntaxCoupling;
12616
14678
class ExtACTree;
12617
14679
class ExtACKeywords;
12618
 
class WinAsm;
12619
 
class WinDeclSpecs;
12620
 
class WinMemberExplSpec;
12621
 
class WinTypeKeywords;
 
14680
class ExtGnu;
12622
14681
class PragmaOnceUnitState;
12623
14682
class PragmaOnce;
12624
 
class CCExprResolve;
12625
 
class CExprResolve;
 
14683
class CMatchSyntax;
12626
14684
namespace Puma {
12627
14685
 
12628
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14686
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12629
14687
class CT_ArgDecl : public CT_Decl, public CSemObject {
12630
 
#line 12631 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14688
#line 14689 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
14689
  friend class ::CCExprResolve;
 
14690
  friend class ::CExprResolve;
12631
14691
  friend class ::WinIfExists;
12632
14692
  friend class ::WinImportHandler;
12633
14693
  friend class ::WinMacros;
12634
 
  friend class ::CMatchSyntax;
12635
 
  friend class ::ExtGnu;
 
14694
  friend class ::WinAsm;
 
14695
  friend class ::WinDeclSpecs;
 
14696
  friend class ::WinMemberExplSpec;
 
14697
  friend class ::WinTypeKeywords;
 
14698
  friend class ::WinFriend;
12636
14699
  friend class ::ExtAC;
12637
14700
  friend class ::ExtACBuilderCoupling;
12638
14701
  friend class ::ExtACSyntaxCoupling;
12639
14702
  friend class ::ExtACTree;
12640
14703
  friend class ::ExtACKeywords;
12641
 
  friend class ::WinAsm;
12642
 
  friend class ::WinDeclSpecs;
12643
 
  friend class ::WinMemberExplSpec;
12644
 
  friend class ::WinTypeKeywords;
 
14704
  friend class ::ExtGnu;
12645
14705
  friend class ::PragmaOnceUnitState;
12646
14706
  friend class ::PragmaOnce;
12647
 
  friend class ::CCExprResolve;
12648
 
  friend class ::CExprResolve;
 
14707
  friend class ::CMatchSyntax;
12649
14708
 
12650
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14709
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12651
14710
 
12652
14711
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
12653
14712
 
12654
14713
public:
12655
14714
  CT_ArgDecl (CTree *dsl, CTree *d) {
12656
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
14715
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
14716
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
12657
14717
  }
12658
14718
  CT_ArgDecl (CTree *ellipsis) {
12659
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
14719
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
14720
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
12660
14721
  }
 
14722
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12661
14723
  static const char *NodeId ();
 
14724
  /** Get the name of the node. Can be compared with NodeId(). */
12662
14725
  const char *NodeName () const { return NodeId (); }
 
14726
  /** Get the number of sons. */
12663
14727
  int Sons () const { return CTree::Sons (sons, 4); }
 
14728
  /** Get the n-th son.
 
14729
   *  \param n The index of the son.
 
14730
   *  \return The n-th son or NULL. */
12664
14731
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
12665
14732
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
12666
14733
  CTree *Declarator () const { return sons[1]; }
12667
14734
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
12668
14735
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
12669
14736
  CSemObject *SemObject () const { return (CSemObject*)this; }
12670
 
  void Initializer (CTree *i) { sons[2] = i; }
 
14737
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
14738
  /** Replace a son.
 
14739
   *  \param old_son The son to replace.
 
14740
   *  \param new_son The new son. */
12671
14741
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12672
14742
    CTree::ReplaceSon (sons, 4, old_son, new_son);
12673
14743
  }
12674
14744
};
12675
14745
 
12676
14746
 
12677
 
#line 12678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14747
#line 14748 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12678
14748
} // closed Puma
 
14749
class CCExprResolve;
 
14750
class CExprResolve;
12679
14751
class WinIfExists;
12680
14752
class WinImportHandler;
12681
14753
class WinMacros;
12682
 
class CMatchSyntax;
12683
 
class ExtGnu;
 
14754
class WinAsm;
 
14755
class WinDeclSpecs;
 
14756
class WinMemberExplSpec;
 
14757
class WinTypeKeywords;
 
14758
class WinFriend;
12684
14759
class ExtAC;
12685
14760
class ExtACBuilderCoupling;
12686
14761
class ExtACSyntaxCoupling;
12687
14762
class ExtACTree;
12688
14763
class ExtACKeywords;
12689
 
class WinAsm;
12690
 
class WinDeclSpecs;
12691
 
class WinMemberExplSpec;
12692
 
class WinTypeKeywords;
 
14764
class ExtGnu;
12693
14765
class PragmaOnceUnitState;
12694
14766
class PragmaOnce;
12695
 
class CCExprResolve;
12696
 
class CExprResolve;
 
14767
class CMatchSyntax;
12697
14768
namespace Puma {
12698
14769
 
12699
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14770
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12700
14771
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
12701
 
#line 12702 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14772
#line 14773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
14773
  friend class ::CCExprResolve;
 
14774
  friend class ::CExprResolve;
12702
14775
  friend class ::WinIfExists;
12703
14776
  friend class ::WinImportHandler;
12704
14777
  friend class ::WinMacros;
12705
 
  friend class ::CMatchSyntax;
12706
 
  friend class ::ExtGnu;
 
14778
  friend class ::WinAsm;
 
14779
  friend class ::WinDeclSpecs;
 
14780
  friend class ::WinMemberExplSpec;
 
14781
  friend class ::WinTypeKeywords;
 
14782
  friend class ::WinFriend;
12707
14783
  friend class ::ExtAC;
12708
14784
  friend class ::ExtACBuilderCoupling;
12709
14785
  friend class ::ExtACSyntaxCoupling;
12710
14786
  friend class ::ExtACTree;
12711
14787
  friend class ::ExtACKeywords;
12712
 
  friend class ::WinAsm;
12713
 
  friend class ::WinDeclSpecs;
12714
 
  friend class ::WinMemberExplSpec;
12715
 
  friend class ::WinTypeKeywords;
 
14788
  friend class ::ExtGnu;
12716
14789
  friend class ::PragmaOnceUnitState;
12717
14790
  friend class ::PragmaOnce;
12718
 
  friend class ::CCExprResolve;
12719
 
  friend class ::CExprResolve;
 
14791
  friend class ::CMatchSyntax;
12720
14792
 
12721
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14793
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12722
14794
 
12723
14795
public:
12724
14796
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
12725
14797
   CT_DeclList (size, 2) { AddProperties (props); }
 
14798
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12726
14799
  static const char *NodeId ();
 
14800
  /** Get the name of the node. Can be compared with NodeId(). */
12727
14801
  const char *NodeName () const { return NodeId (); }
 
14802
  CSemScope *SemScope () const { return (CSemScope*)this; }
12728
14803
};
12729
14804
 
12730
14805
 
12731
 
#line 12732 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14806
#line 14807 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12732
14807
} // closed Puma
 
14808
class CCExprResolve;
 
14809
class CExprResolve;
12733
14810
class WinIfExists;
12734
14811
class WinImportHandler;
12735
14812
class WinMacros;
12736
 
class CMatchSyntax;
12737
 
class ExtGnu;
 
14813
class WinAsm;
 
14814
class WinDeclSpecs;
 
14815
class WinMemberExplSpec;
 
14816
class WinTypeKeywords;
 
14817
class WinFriend;
12738
14818
class ExtAC;
12739
14819
class ExtACBuilderCoupling;
12740
14820
class ExtACSyntaxCoupling;
12741
14821
class ExtACTree;
12742
14822
class ExtACKeywords;
12743
 
class WinAsm;
12744
 
class WinDeclSpecs;
12745
 
class WinMemberExplSpec;
12746
 
class WinTypeKeywords;
 
14823
class ExtGnu;
12747
14824
class PragmaOnceUnitState;
12748
14825
class PragmaOnce;
12749
 
class CCExprResolve;
12750
 
class CExprResolve;
 
14826
class CMatchSyntax;
12751
14827
namespace Puma {
12752
14828
 
12753
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14829
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12754
14830
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
12755
 
#line 12756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14831
#line 14832 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
14832
  friend class ::CCExprResolve;
 
14833
  friend class ::CExprResolve;
12756
14834
  friend class ::WinIfExists;
12757
14835
  friend class ::WinImportHandler;
12758
14836
  friend class ::WinMacros;
12759
 
  friend class ::CMatchSyntax;
12760
 
  friend class ::ExtGnu;
 
14837
  friend class ::WinAsm;
 
14838
  friend class ::WinDeclSpecs;
 
14839
  friend class ::WinMemberExplSpec;
 
14840
  friend class ::WinTypeKeywords;
 
14841
  friend class ::WinFriend;
12761
14842
  friend class ::ExtAC;
12762
14843
  friend class ::ExtACBuilderCoupling;
12763
14844
  friend class ::ExtACSyntaxCoupling;
12764
14845
  friend class ::ExtACTree;
12765
14846
  friend class ::ExtACKeywords;
12766
 
  friend class ::WinAsm;
12767
 
  friend class ::WinDeclSpecs;
12768
 
  friend class ::WinMemberExplSpec;
12769
 
  friend class ::WinTypeKeywords;
 
14847
  friend class ::ExtGnu;
12770
14848
  friend class ::PragmaOnceUnitState;
12771
14849
  friend class ::PragmaOnce;
12772
 
  friend class ::CCExprResolve;
12773
 
  friend class ::CExprResolve;
 
14850
  friend class ::CMatchSyntax;
12774
14851
 
12775
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14852
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12776
14853
 
12777
14854
public:
12778
14855
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
14856
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12779
14857
  static const char *NodeId ();
 
14858
  /** Get the name of the node. Can be compared with NodeId(). */
12780
14859
  const char *NodeName () const { return NodeId (); }
 
14860
  CSemScope *SemScope () const { return (CSemScope*)this; }
12781
14861
};
12782
14862
 
12783
14863
 
12784
 
#line 12785 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14864
#line 14865 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12785
14865
} // closed Puma
 
14866
class CCExprResolve;
 
14867
class CExprResolve;
12786
14868
class WinIfExists;
12787
14869
class WinImportHandler;
12788
14870
class WinMacros;
12789
 
class CMatchSyntax;
12790
 
class ExtGnu;
 
14871
class WinAsm;
 
14872
class WinDeclSpecs;
 
14873
class WinMemberExplSpec;
 
14874
class WinTypeKeywords;
 
14875
class WinFriend;
12791
14876
class ExtAC;
12792
14877
class ExtACBuilderCoupling;
12793
14878
class ExtACSyntaxCoupling;
12794
14879
class ExtACTree;
12795
14880
class ExtACKeywords;
12796
 
class WinAsm;
12797
 
class WinDeclSpecs;
12798
 
class WinMemberExplSpec;
12799
 
class WinTypeKeywords;
 
14881
class ExtGnu;
12800
14882
class PragmaOnceUnitState;
12801
14883
class PragmaOnce;
12802
 
class CCExprResolve;
12803
 
class CExprResolve;
 
14884
class CMatchSyntax;
12804
14885
namespace Puma {
12805
14886
 
12806
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14887
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12807
14888
class CT_ArgNameList : public CT_ArgDeclList {
12808
 
#line 12809 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14889
#line 14890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
14890
  friend class ::CCExprResolve;
 
14891
  friend class ::CExprResolve;
12809
14892
  friend class ::WinIfExists;
12810
14893
  friend class ::WinImportHandler;
12811
14894
  friend class ::WinMacros;
12812
 
  friend class ::CMatchSyntax;
12813
 
  friend class ::ExtGnu;
 
14895
  friend class ::WinAsm;
 
14896
  friend class ::WinDeclSpecs;
 
14897
  friend class ::WinMemberExplSpec;
 
14898
  friend class ::WinTypeKeywords;
 
14899
  friend class ::WinFriend;
12814
14900
  friend class ::ExtAC;
12815
14901
  friend class ::ExtACBuilderCoupling;
12816
14902
  friend class ::ExtACSyntaxCoupling;
12817
14903
  friend class ::ExtACTree;
12818
14904
  friend class ::ExtACKeywords;
12819
 
  friend class ::WinAsm;
12820
 
  friend class ::WinDeclSpecs;
12821
 
  friend class ::WinMemberExplSpec;
12822
 
  friend class ::WinTypeKeywords;
 
14905
  friend class ::ExtGnu;
12823
14906
  friend class ::PragmaOnceUnitState;
12824
14907
  friend class ::PragmaOnce;
12825
 
  friend class ::CCExprResolve;
12826
 
  friend class ::CExprResolve;
 
14908
  friend class ::CMatchSyntax;
12827
14909
 
12828
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14910
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12829
14911
 
12830
14912
public:
12831
14913
  CT_ArgNameList () : CT_ArgDeclList () {}
 
14914
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12832
14915
  static const char *NodeId ();
 
14916
  /** Get the name of the node. Can be compared with NodeId(). */
12833
14917
  const char *NodeName () const { return NodeId (); }
12834
14918
};
12835
14919
 
12836
14920
 
12837
 
#line 12838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14921
#line 14922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12838
14922
} // closed Puma
 
14923
class CCExprResolve;
 
14924
class CExprResolve;
12839
14925
class WinIfExists;
12840
14926
class WinImportHandler;
12841
14927
class WinMacros;
12842
 
class CMatchSyntax;
12843
 
class ExtGnu;
 
14928
class WinAsm;
 
14929
class WinDeclSpecs;
 
14930
class WinMemberExplSpec;
 
14931
class WinTypeKeywords;
 
14932
class WinFriend;
12844
14933
class ExtAC;
12845
14934
class ExtACBuilderCoupling;
12846
14935
class ExtACSyntaxCoupling;
12847
14936
class ExtACTree;
12848
14937
class ExtACKeywords;
12849
 
class WinAsm;
12850
 
class WinDeclSpecs;
12851
 
class WinMemberExplSpec;
12852
 
class WinTypeKeywords;
 
14938
class ExtGnu;
12853
14939
class PragmaOnceUnitState;
12854
14940
class PragmaOnce;
12855
 
class CCExprResolve;
12856
 
class CExprResolve;
 
14941
class CMatchSyntax;
12857
14942
namespace Puma {
12858
14943
 
12859
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14944
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12860
14945
class CT_NamespaceDef : public CT_Decl, public CSemObject {
12861
 
#line 12862 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
14946
#line 14947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
14947
  friend class ::CCExprResolve;
 
14948
  friend class ::CExprResolve;
12862
14949
  friend class ::WinIfExists;
12863
14950
  friend class ::WinImportHandler;
12864
14951
  friend class ::WinMacros;
12865
 
  friend class ::CMatchSyntax;
12866
 
  friend class ::ExtGnu;
 
14952
  friend class ::WinAsm;
 
14953
  friend class ::WinDeclSpecs;
 
14954
  friend class ::WinMemberExplSpec;
 
14955
  friend class ::WinTypeKeywords;
 
14956
  friend class ::WinFriend;
12867
14957
  friend class ::ExtAC;
12868
14958
  friend class ::ExtACBuilderCoupling;
12869
14959
  friend class ::ExtACSyntaxCoupling;
12870
14960
  friend class ::ExtACTree;
12871
14961
  friend class ::ExtACKeywords;
12872
 
  friend class ::WinAsm;
12873
 
  friend class ::WinDeclSpecs;
12874
 
  friend class ::WinMemberExplSpec;
12875
 
  friend class ::WinTypeKeywords;
 
14962
  friend class ::ExtGnu;
12876
14963
  friend class ::PragmaOnceUnitState;
12877
14964
  friend class ::PragmaOnce;
12878
 
  friend class ::CCExprResolve;
12879
 
  friend class ::CExprResolve;
 
14965
  friend class ::CMatchSyntax;
12880
14966
 
12881
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
14967
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12882
14968
 
12883
14969
  CTree *sons[3]; // ns, name, members
12884
14970
 
12885
14971
public:
12886
14972
  CT_NamespaceDef (CTree *n, CTree *nm) {
12887
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
14973
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
12888
14974
  }
12889
14975
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
12890
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
14976
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
12891
14977
  }
 
14978
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12892
14979
  static const char *NodeId ();
 
14980
  /** Get the name of the node. Can be compared with NodeId(). */
12893
14981
  const char *NodeName () const { return NodeId (); }
 
14982
  /** Get the number of sons. */
12894
14983
  int Sons () const { return CTree::Sons (sons, 3); }
 
14984
  /** Get the n-th son.
 
14985
   *  \param n The index of the son.
 
14986
   *  \return The n-th son or NULL. */
12895
14987
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
12896
 
  void Members (CTree *m) { sons[2] = m; }
 
14988
  void Members (CTree *m) { AddSon (sons[2], m); }
12897
14989
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
12898
14990
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
12899
14991
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
14992
  /** Replace a son.
 
14993
   *  \param old_son The son to replace.
 
14994
   *  \param new_son The new son. */
12900
14995
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12901
14996
    CTree::ReplaceSon (sons, 3, old_son, new_son);
12902
14997
  }
12903
14998
};
12904
14999
 
12905
15000
 
12906
 
#line 12907 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15001
#line 15002 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12907
15002
} // closed Puma
 
15003
class CCExprResolve;
 
15004
class CExprResolve;
12908
15005
class WinIfExists;
12909
15006
class WinImportHandler;
12910
15007
class WinMacros;
12911
 
class CMatchSyntax;
12912
 
class ExtGnu;
 
15008
class WinAsm;
 
15009
class WinDeclSpecs;
 
15010
class WinMemberExplSpec;
 
15011
class WinTypeKeywords;
 
15012
class WinFriend;
12913
15013
class ExtAC;
12914
15014
class ExtACBuilderCoupling;
12915
15015
class ExtACSyntaxCoupling;
12916
15016
class ExtACTree;
12917
15017
class ExtACKeywords;
12918
 
class WinAsm;
12919
 
class WinDeclSpecs;
12920
 
class WinMemberExplSpec;
12921
 
class WinTypeKeywords;
 
15018
class ExtGnu;
12922
15019
class PragmaOnceUnitState;
12923
15020
class PragmaOnce;
12924
 
class CCExprResolve;
12925
 
class CExprResolve;
 
15021
class CMatchSyntax;
12926
15022
namespace Puma {
12927
15023
 
12928
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15024
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12929
15025
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
12930
 
#line 12931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15026
#line 15027 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
15027
  friend class ::CCExprResolve;
 
15028
  friend class ::CExprResolve;
12931
15029
  friend class ::WinIfExists;
12932
15030
  friend class ::WinImportHandler;
12933
15031
  friend class ::WinMacros;
12934
 
  friend class ::CMatchSyntax;
12935
 
  friend class ::ExtGnu;
 
15032
  friend class ::WinAsm;
 
15033
  friend class ::WinDeclSpecs;
 
15034
  friend class ::WinMemberExplSpec;
 
15035
  friend class ::WinTypeKeywords;
 
15036
  friend class ::WinFriend;
12936
15037
  friend class ::ExtAC;
12937
15038
  friend class ::ExtACBuilderCoupling;
12938
15039
  friend class ::ExtACSyntaxCoupling;
12939
15040
  friend class ::ExtACTree;
12940
15041
  friend class ::ExtACKeywords;
12941
 
  friend class ::WinAsm;
12942
 
  friend class ::WinDeclSpecs;
12943
 
  friend class ::WinMemberExplSpec;
12944
 
  friend class ::WinTypeKeywords;
 
15042
  friend class ::ExtGnu;
12945
15043
  friend class ::PragmaOnceUnitState;
12946
15044
  friend class ::PragmaOnce;
12947
 
  friend class ::CCExprResolve;
12948
 
  friend class ::CExprResolve;
 
15045
  friend class ::CMatchSyntax;
12949
15046
 
12950
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15047
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12951
15048
 
12952
15049
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
12953
15050
 
12954
15051
public:
12955
15052
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
12956
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
15053
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
15054
    AddSon (sons[3], nm); AddSon (sons[4], s); 
12957
15055
  }
 
15056
  /** Get the identifier for this node type. Can be compared with NodeName(). */
12958
15057
  static const char *NodeId ();
 
15058
  /** Get the name of the node. Can be compared with NodeId(). */
12959
15059
  const char *NodeName () const { return NodeId (); }
 
15060
  /** Get the number of sons. */
12960
15061
  int Sons () const { return 5; }
 
15062
  /** Get the n-th son.
 
15063
   *  \param n The index of the son.
 
15064
   *  \return The n-th son or NULL. */
12961
15065
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
12962
15066
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
12963
15067
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
12964
15068
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
15069
  /** Replace a son.
 
15070
   *  \param old_son The son to replace.
 
15071
   *  \param new_son The new son. */
12965
15072
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
12966
15073
    CTree::ReplaceSon (sons, 5, old_son, new_son);
12967
15074
  }
12968
15075
};
12969
15076
 
12970
15077
 
12971
 
#line 12972 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15078
#line 15079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
12972
15079
} // closed Puma
 
15080
class CCExprResolve;
 
15081
class CExprResolve;
12973
15082
class WinIfExists;
12974
15083
class WinImportHandler;
12975
15084
class WinMacros;
12976
 
class CMatchSyntax;
12977
 
class ExtGnu;
 
15085
class WinAsm;
 
15086
class WinDeclSpecs;
 
15087
class WinMemberExplSpec;
 
15088
class WinTypeKeywords;
 
15089
class WinFriend;
12978
15090
class ExtAC;
12979
15091
class ExtACBuilderCoupling;
12980
15092
class ExtACSyntaxCoupling;
12981
15093
class ExtACTree;
12982
15094
class ExtACKeywords;
12983
 
class WinAsm;
12984
 
class WinDeclSpecs;
12985
 
class WinMemberExplSpec;
12986
 
class WinTypeKeywords;
 
15095
class ExtGnu;
12987
15096
class PragmaOnceUnitState;
12988
15097
class PragmaOnce;
12989
 
class CCExprResolve;
12990
 
class CExprResolve;
 
15098
class CMatchSyntax;
12991
15099
namespace Puma {
12992
15100
 
12993
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15101
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
12994
15102
class CT_UsingDirective : public CT_Decl {
12995
 
#line 12996 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15103
#line 15104 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
15104
  friend class ::CCExprResolve;
 
15105
  friend class ::CExprResolve;
12996
15106
  friend class ::WinIfExists;
12997
15107
  friend class ::WinImportHandler;
12998
15108
  friend class ::WinMacros;
12999
 
  friend class ::CMatchSyntax;
13000
 
  friend class ::ExtGnu;
 
15109
  friend class ::WinAsm;
 
15110
  friend class ::WinDeclSpecs;
 
15111
  friend class ::WinMemberExplSpec;
 
15112
  friend class ::WinTypeKeywords;
 
15113
  friend class ::WinFriend;
13001
15114
  friend class ::ExtAC;
13002
15115
  friend class ::ExtACBuilderCoupling;
13003
15116
  friend class ::ExtACSyntaxCoupling;
13004
15117
  friend class ::ExtACTree;
13005
15118
  friend class ::ExtACKeywords;
13006
 
  friend class ::WinAsm;
13007
 
  friend class ::WinDeclSpecs;
13008
 
  friend class ::WinMemberExplSpec;
13009
 
  friend class ::WinTypeKeywords;
 
15119
  friend class ::ExtGnu;
13010
15120
  friend class ::PragmaOnceUnitState;
13011
15121
  friend class ::PragmaOnce;
13012
 
  friend class ::CCExprResolve;
13013
 
  friend class ::CExprResolve;
 
15122
  friend class ::CMatchSyntax;
13014
15123
 
13015
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15124
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13016
15125
 
13017
15126
  CTree *sons[4]; // using, ns, name, semi_colon
13018
15127
 
13019
15128
public:
13020
15129
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
13021
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
15130
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
15131
    AddSon (sons[3], s); 
13022
15132
  }
 
15133
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13023
15134
  static const char *NodeId ();
 
15135
  /** Get the name of the node. Can be compared with NodeId(). */
13024
15136
  const char *NodeName () const { return NodeId (); }
 
15137
  /** Get the number of sons. */
13025
15138
  int Sons () const { return 4; }
 
15139
  /** Get the n-th son.
 
15140
   *  \param n The index of the son.
 
15141
   *  \return The n-th son or NULL. */
13026
15142
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
13027
15143
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
15144
  /** Replace a son.
 
15145
   *  \param old_son The son to replace.
 
15146
   *  \param new_son The new son. */
13028
15147
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13029
15148
    CTree::ReplaceSon (sons, 4, old_son, new_son);
13030
15149
  }
13037
15156
/*****************************************************************************/
13038
15157
 
13039
15158
 
13040
 
#line 13041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15159
#line 15160 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13041
15160
} // closed Puma
 
15161
class CCExprResolve;
 
15162
class CExprResolve;
13042
15163
class WinIfExists;
13043
15164
class WinImportHandler;
13044
15165
class WinMacros;
13045
 
class CMatchSyntax;
13046
 
class ExtGnu;
 
15166
class WinAsm;
 
15167
class WinDeclSpecs;
 
15168
class WinMemberExplSpec;
 
15169
class WinTypeKeywords;
 
15170
class WinFriend;
13047
15171
class ExtAC;
13048
15172
class ExtACBuilderCoupling;
13049
15173
class ExtACSyntaxCoupling;
13050
15174
class ExtACTree;
13051
15175
class ExtACKeywords;
13052
 
class WinAsm;
13053
 
class WinDeclSpecs;
13054
 
class WinMemberExplSpec;
13055
 
class WinTypeKeywords;
 
15176
class ExtGnu;
13056
15177
class PragmaOnceUnitState;
13057
15178
class PragmaOnce;
13058
 
class CCExprResolve;
13059
 
class CExprResolve;
 
15179
class CMatchSyntax;
13060
15180
namespace Puma {
13061
15181
 
13062
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15182
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13063
15183
class CT_Declarator : public CTree {
13064
 
#line 13065 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15184
#line 15185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
15185
  friend class ::CCExprResolve;
 
15186
  friend class ::CExprResolve;
13065
15187
  friend class ::WinIfExists;
13066
15188
  friend class ::WinImportHandler;
13067
15189
  friend class ::WinMacros;
13068
 
  friend class ::CMatchSyntax;
13069
 
  friend class ::ExtGnu;
 
15190
  friend class ::WinAsm;
 
15191
  friend class ::WinDeclSpecs;
 
15192
  friend class ::WinMemberExplSpec;
 
15193
  friend class ::WinTypeKeywords;
 
15194
  friend class ::WinFriend;
13070
15195
  friend class ::ExtAC;
13071
15196
  friend class ::ExtACBuilderCoupling;
13072
15197
  friend class ::ExtACSyntaxCoupling;
13073
15198
  friend class ::ExtACTree;
13074
15199
  friend class ::ExtACKeywords;
13075
 
  friend class ::WinAsm;
13076
 
  friend class ::WinDeclSpecs;
13077
 
  friend class ::WinMemberExplSpec;
13078
 
  friend class ::WinTypeKeywords;
 
15200
  friend class ::ExtGnu;
13079
15201
  friend class ::PragmaOnceUnitState;
13080
15202
  friend class ::PragmaOnce;
13081
 
  friend class ::CCExprResolve;
13082
 
  friend class ::CExprResolve;
 
15203
  friend class ::CMatchSyntax;
13083
15204
 
13084
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15205
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13085
15206
 
13086
15207
protected:
13087
15208
  CT_Declarator () {}
13096
15217
};
13097
15218
 
13098
15219
 
13099
 
#line 13100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15220
#line 15221 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13100
15221
} // closed Puma
 
15222
class CCExprResolve;
 
15223
class CExprResolve;
13101
15224
class WinIfExists;
13102
15225
class WinImportHandler;
13103
15226
class WinMacros;
13104
 
class CMatchSyntax;
13105
 
class ExtGnu;
 
15227
class WinAsm;
 
15228
class WinDeclSpecs;
 
15229
class WinMemberExplSpec;
 
15230
class WinTypeKeywords;
 
15231
class WinFriend;
13106
15232
class ExtAC;
13107
15233
class ExtACBuilderCoupling;
13108
15234
class ExtACSyntaxCoupling;
13109
15235
class ExtACTree;
13110
15236
class ExtACKeywords;
13111
 
class WinAsm;
13112
 
class WinDeclSpecs;
13113
 
class WinMemberExplSpec;
13114
 
class WinTypeKeywords;
 
15237
class ExtGnu;
13115
15238
class PragmaOnceUnitState;
13116
15239
class PragmaOnce;
13117
 
class CCExprResolve;
13118
 
class CExprResolve;
 
15240
class CMatchSyntax;
13119
15241
namespace Puma {
13120
15242
 
13121
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15243
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13122
15244
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
13123
 
#line 13124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15245
#line 15246 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
15246
  friend class ::CCExprResolve;
 
15247
  friend class ::CExprResolve;
13124
15248
  friend class ::WinIfExists;
13125
15249
  friend class ::WinImportHandler;
13126
15250
  friend class ::WinMacros;
13127
 
  friend class ::CMatchSyntax;
13128
 
  friend class ::ExtGnu;
 
15251
  friend class ::WinAsm;
 
15252
  friend class ::WinDeclSpecs;
 
15253
  friend class ::WinMemberExplSpec;
 
15254
  friend class ::WinTypeKeywords;
 
15255
  friend class ::WinFriend;
13129
15256
  friend class ::ExtAC;
13130
15257
  friend class ::ExtACBuilderCoupling;
13131
15258
  friend class ::ExtACSyntaxCoupling;
13132
15259
  friend class ::ExtACTree;
13133
15260
  friend class ::ExtACKeywords;
13134
 
  friend class ::WinAsm;
13135
 
  friend class ::WinDeclSpecs;
13136
 
  friend class ::WinMemberExplSpec;
13137
 
  friend class ::WinTypeKeywords;
 
15261
  friend class ::ExtGnu;
13138
15262
  friend class ::PragmaOnceUnitState;
13139
15263
  friend class ::PragmaOnce;
13140
 
  friend class ::CCExprResolve;
13141
 
  friend class ::CExprResolve;
13142
 
 
13143
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
13144
 
 
13145
 
  CTree *sons[2]; // declarator, init
 
15264
  friend class ::CMatchSyntax;
 
15265
 
 
15266
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15267
 
 
15268
  CTree *sons[3]; // declarator, ext, init
13146
15269
  CTree *obj_decl;
13147
15270
 
13148
15271
public:
13149
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
13150
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
15272
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
15273
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
15274
    AddSon (obj_decl, 0); 
13151
15275
  }
 
15276
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13152
15277
  static const char *NodeId ();
 
15278
  /** Get the name of the node. Can be compared with NodeId(). */
13153
15279
  const char *NodeName () const { return NodeId (); }
13154
 
  int Sons () const { return CTree::Sons (sons, 2); }
13155
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
15280
  /** Get the number of sons. */
 
15281
  int Sons () const { return CTree::Sons (sons, 3); }
 
15282
  /** Get the n-th son.
 
15283
   *  \param n The index of the son.
 
15284
   *  \return The n-th son or NULL. */
 
15285
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13156
15286
  CTree *Declarator () const { return sons[0]; }
13157
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
15287
  CTree *Extension () const { return sons[1]; }
 
15288
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
13158
15289
  CSemObject *SemObject () const { return (CSemObject*)this; }
13159
15290
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
13160
 
  void Initializer (CTree* i) { sons[1] = i; }
13161
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
15291
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
15292
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
15293
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
15294
  /** Replace a son.
 
15295
   *  \param old_son The son to replace.
 
15296
   *  \param new_son The new son. */
13162
15297
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13163
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
15298
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13164
15299
  }
13165
15300
};
13166
15301
 
13167
15302
 
13168
 
#line 13169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15303
#line 15304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13169
15304
} // closed Puma
 
15305
class CCExprResolve;
 
15306
class CExprResolve;
13170
15307
class WinIfExists;
13171
15308
class WinImportHandler;
13172
15309
class WinMacros;
13173
 
class CMatchSyntax;
13174
 
class ExtGnu;
 
15310
class WinAsm;
 
15311
class WinDeclSpecs;
 
15312
class WinMemberExplSpec;
 
15313
class WinTypeKeywords;
 
15314
class WinFriend;
13175
15315
class ExtAC;
13176
15316
class ExtACBuilderCoupling;
13177
15317
class ExtACSyntaxCoupling;
13178
15318
class ExtACTree;
13179
15319
class ExtACKeywords;
13180
 
class WinAsm;
13181
 
class WinDeclSpecs;
13182
 
class WinMemberExplSpec;
13183
 
class WinTypeKeywords;
 
15320
class ExtGnu;
13184
15321
class PragmaOnceUnitState;
13185
15322
class PragmaOnce;
13186
 
class CCExprResolve;
13187
 
class CExprResolve;
 
15323
class CMatchSyntax;
13188
15324
namespace Puma {
13189
15325
 
13190
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15326
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13191
15327
class CT_BracedDeclarator : public CT_Declarator {
13192
 
#line 13193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15328
#line 15329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
15329
  friend class ::CCExprResolve;
 
15330
  friend class ::CExprResolve;
13193
15331
  friend class ::WinIfExists;
13194
15332
  friend class ::WinImportHandler;
13195
15333
  friend class ::WinMacros;
13196
 
  friend class ::CMatchSyntax;
13197
 
  friend class ::ExtGnu;
 
15334
  friend class ::WinAsm;
 
15335
  friend class ::WinDeclSpecs;
 
15336
  friend class ::WinMemberExplSpec;
 
15337
  friend class ::WinTypeKeywords;
 
15338
  friend class ::WinFriend;
13198
15339
  friend class ::ExtAC;
13199
15340
  friend class ::ExtACBuilderCoupling;
13200
15341
  friend class ::ExtACSyntaxCoupling;
13201
15342
  friend class ::ExtACTree;
13202
15343
  friend class ::ExtACKeywords;
13203
 
  friend class ::WinAsm;
13204
 
  friend class ::WinDeclSpecs;
13205
 
  friend class ::WinMemberExplSpec;
13206
 
  friend class ::WinTypeKeywords;
 
15344
  friend class ::ExtGnu;
13207
15345
  friend class ::PragmaOnceUnitState;
13208
15346
  friend class ::PragmaOnce;
13209
 
  friend class ::CCExprResolve;
13210
 
  friend class ::CExprResolve;
 
15347
  friend class ::CMatchSyntax;
13211
15348
 
13212
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15349
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13213
15350
 
13214
15351
  CTree *sons[4]; // open, win_specs, declarator, close
13215
15352
 
13216
15353
public:
13217
15354
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
13218
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
15355
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
15356
    AddSon (sons[2], d); AddSon (sons[3], c); 
13219
15357
  }
13220
15358
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
13221
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
15359
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
15360
    AddSon (sons[2], d); AddSon (sons[3], c); 
13222
15361
  }
 
15362
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13223
15363
  static const char *NodeId ();
 
15364
  /** Get the name of the node. Can be compared with NodeId(). */
13224
15365
  const char *NodeName () const { return NodeId (); }
 
15366
  /** Get the number of sons. */
13225
15367
  int Sons () const { return CTree::Sons (sons, 4); }
 
15368
  /** Get the n-th son.
 
15369
   *  \param n The index of the son.
 
15370
   *  \return The n-th son or NULL. */
13226
15371
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
13227
15372
  CTree *Declarator () const { return sons[2]; }
 
15373
  /** Replace a son.
 
15374
   *  \param old_son The son to replace.
 
15375
   *  \param new_son The new son. */
13228
15376
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13229
15377
    CTree::ReplaceSon (sons, 4, old_son, new_son);
13230
15378
  }
13231
15379
};
13232
15380
 
13233
15381
 
13234
 
#line 13235 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15382
#line 15383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13235
15383
} // closed Puma
 
15384
class CCExprResolve;
 
15385
class CExprResolve;
13236
15386
class WinIfExists;
13237
15387
class WinImportHandler;
13238
15388
class WinMacros;
13239
 
class CMatchSyntax;
13240
 
class ExtGnu;
 
15389
class WinAsm;
 
15390
class WinDeclSpecs;
 
15391
class WinMemberExplSpec;
 
15392
class WinTypeKeywords;
 
15393
class WinFriend;
13241
15394
class ExtAC;
13242
15395
class ExtACBuilderCoupling;
13243
15396
class ExtACSyntaxCoupling;
13244
15397
class ExtACTree;
13245
15398
class ExtACKeywords;
13246
 
class WinAsm;
13247
 
class WinDeclSpecs;
13248
 
class WinMemberExplSpec;
13249
 
class WinTypeKeywords;
 
15399
class ExtGnu;
13250
15400
class PragmaOnceUnitState;
13251
15401
class PragmaOnce;
13252
 
class CCExprResolve;
13253
 
class CExprResolve;
 
15402
class CMatchSyntax;
13254
15403
namespace Puma {
13255
15404
 
13256
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15405
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13257
15406
class CT_ArrayDelimiter : public CTree {
13258
 
#line 13259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15407
#line 15408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
15408
  friend class ::CCExprResolve;
 
15409
  friend class ::CExprResolve;
13259
15410
  friend class ::WinIfExists;
13260
15411
  friend class ::WinImportHandler;
13261
15412
  friend class ::WinMacros;
13262
 
  friend class ::CMatchSyntax;
13263
 
  friend class ::ExtGnu;
 
15413
  friend class ::WinAsm;
 
15414
  friend class ::WinDeclSpecs;
 
15415
  friend class ::WinMemberExplSpec;
 
15416
  friend class ::WinTypeKeywords;
 
15417
  friend class ::WinFriend;
13264
15418
  friend class ::ExtAC;
13265
15419
  friend class ::ExtACBuilderCoupling;
13266
15420
  friend class ::ExtACSyntaxCoupling;
13267
15421
  friend class ::ExtACTree;
13268
15422
  friend class ::ExtACKeywords;
13269
 
  friend class ::WinAsm;
13270
 
  friend class ::WinDeclSpecs;
13271
 
  friend class ::WinMemberExplSpec;
13272
 
  friend class ::WinTypeKeywords;
 
15423
  friend class ::ExtGnu;
13273
15424
  friend class ::PragmaOnceUnitState;
13274
15425
  friend class ::PragmaOnce;
13275
 
  friend class ::CCExprResolve;
13276
 
  friend class ::CExprResolve;
 
15426
  friend class ::CMatchSyntax;
13277
15427
 
13278
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15428
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13279
15429
 
13280
15430
  CTree *sons[4]; // star, static, quals, expr
13281
15431
  bool pos0;
13282
15432
 
13283
15433
public:
13284
15434
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
13285
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
15435
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
15436
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
13286
15437
  }
 
15438
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13287
15439
  static const char *NodeId ();
 
15440
  /** Get the name of the node. Can be compared with NodeId(). */
13288
15441
  const char *NodeName () const { return NodeId (); }
 
15442
  /** Get the number of sons. */
13289
15443
  int Sons () const { return CTree::Sons (sons, 4); }
 
15444
  /** Get the n-th son.
 
15445
   *  \param n The index of the son.
 
15446
   *  \return The n-th son or NULL. */
13290
15447
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
13291
15448
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
13292
15449
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
13293
15450
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
13294
15451
  CTree *Expr () const { return sons[3]; }
 
15452
  /** Replace a son.
 
15453
   *  \param old_son The son to replace.
 
15454
   *  \param new_son The new son. */
13295
15455
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13296
15456
    CTree::ReplaceSon (sons, 4, old_son, new_son);
13297
15457
  }
13298
15458
};
13299
15459
 
13300
15460
 
13301
 
#line 13302 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15461
#line 15462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13302
15462
} // closed Puma
 
15463
class CCExprResolve;
 
15464
class CExprResolve;
13303
15465
class WinIfExists;
13304
15466
class WinImportHandler;
13305
15467
class WinMacros;
13306
 
class CMatchSyntax;
13307
 
class ExtGnu;
 
15468
class WinAsm;
 
15469
class WinDeclSpecs;
 
15470
class WinMemberExplSpec;
 
15471
class WinTypeKeywords;
 
15472
class WinFriend;
13308
15473
class ExtAC;
13309
15474
class ExtACBuilderCoupling;
13310
15475
class ExtACSyntaxCoupling;
13311
15476
class ExtACTree;
13312
15477
class ExtACKeywords;
13313
 
class WinAsm;
13314
 
class WinDeclSpecs;
13315
 
class WinMemberExplSpec;
13316
 
class WinTypeKeywords;
 
15478
class ExtGnu;
13317
15479
class PragmaOnceUnitState;
13318
15480
class PragmaOnce;
13319
 
class CCExprResolve;
13320
 
class CExprResolve;
 
15481
class CMatchSyntax;
13321
15482
namespace Puma {
13322
15483
 
13323
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15484
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13324
15485
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
13325
 
#line 13326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15486
#line 15487 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
15487
  friend class ::CCExprResolve;
 
15488
  friend class ::CExprResolve;
13326
15489
  friend class ::WinIfExists;
13327
15490
  friend class ::WinImportHandler;
13328
15491
  friend class ::WinMacros;
13329
 
  friend class ::CMatchSyntax;
13330
 
  friend class ::ExtGnu;
 
15492
  friend class ::WinAsm;
 
15493
  friend class ::WinDeclSpecs;
 
15494
  friend class ::WinMemberExplSpec;
 
15495
  friend class ::WinTypeKeywords;
 
15496
  friend class ::WinFriend;
13331
15497
  friend class ::ExtAC;
13332
15498
  friend class ::ExtACBuilderCoupling;
13333
15499
  friend class ::ExtACSyntaxCoupling;
13334
15500
  friend class ::ExtACTree;
13335
15501
  friend class ::ExtACKeywords;
13336
 
  friend class ::WinAsm;
13337
 
  friend class ::WinDeclSpecs;
13338
 
  friend class ::WinMemberExplSpec;
13339
 
  friend class ::WinTypeKeywords;
 
15502
  friend class ::ExtGnu;
13340
15503
  friend class ::PragmaOnceUnitState;
13341
15504
  friend class ::PragmaOnce;
13342
 
  friend class ::CCExprResolve;
13343
 
  friend class ::CExprResolve;
 
15505
  friend class ::CMatchSyntax;
13344
15506
 
13345
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15507
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13346
15508
 
13347
15509
  CTree *sons[4]; // declarator, open, delim, close
13348
15510
 
13349
15511
public:
13350
15512
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
13351
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
15513
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
15514
    AddSon (sons[2], ad); AddSon (sons[3], c); 
13352
15515
  }
 
15516
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13353
15517
  static const char *NodeId ();
 
15518
  /** Get the name of the node. Can be compared with NodeId(). */
13354
15519
  const char *NodeName () const { return NodeId (); }
 
15520
  /** Get the number of sons. */
13355
15521
  int Sons () const { return 4; }
 
15522
  /** Get the n-th son.
 
15523
   *  \param n The index of the son.
 
15524
   *  \return The n-th son or NULL. */
13356
15525
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
13357
15526
  CTree *Declarator () const { return sons[0]; }
13358
15527
  CT_ArrayDelimiter *Delimiter () const 
13359
15528
   { return (CT_ArrayDelimiter*)sons[2]; }
 
15529
  /** Replace a son.
 
15530
   *  \param old_son The son to replace.
 
15531
   *  \param new_son The new son. */
13360
15532
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13361
15533
    CTree::ReplaceSon (sons, 4, old_son, new_son);
13362
15534
  }
13366
15538
};
13367
15539
 
13368
15540
 
13369
 
#line 13370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15541
#line 15542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13370
15542
} // closed Puma
 
15543
class CCExprResolve;
 
15544
class CExprResolve;
13371
15545
class WinIfExists;
13372
15546
class WinImportHandler;
13373
15547
class WinMacros;
13374
 
class CMatchSyntax;
13375
 
class ExtGnu;
 
15548
class WinAsm;
 
15549
class WinDeclSpecs;
 
15550
class WinMemberExplSpec;
 
15551
class WinTypeKeywords;
 
15552
class WinFriend;
13376
15553
class ExtAC;
13377
15554
class ExtACBuilderCoupling;
13378
15555
class ExtACSyntaxCoupling;
13379
15556
class ExtACTree;
13380
15557
class ExtACKeywords;
13381
 
class WinAsm;
13382
 
class WinDeclSpecs;
13383
 
class WinMemberExplSpec;
13384
 
class WinTypeKeywords;
 
15558
class ExtGnu;
13385
15559
class PragmaOnceUnitState;
13386
15560
class PragmaOnce;
13387
 
class CCExprResolve;
13388
 
class CExprResolve;
 
15561
class CMatchSyntax;
13389
15562
namespace Puma {
13390
15563
 
13391
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15564
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13392
15565
class CT_FctDeclarator : public CT_Declarator {
13393
 
#line 13394 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15566
#line 15567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
15567
  friend class ::CCExprResolve;
 
15568
  friend class ::CExprResolve;
13394
15569
  friend class ::WinIfExists;
13395
15570
  friend class ::WinImportHandler;
13396
15571
  friend class ::WinMacros;
13397
 
  friend class ::CMatchSyntax;
13398
 
  friend class ::ExtGnu;
 
15572
  friend class ::WinAsm;
 
15573
  friend class ::WinDeclSpecs;
 
15574
  friend class ::WinMemberExplSpec;
 
15575
  friend class ::WinTypeKeywords;
 
15576
  friend class ::WinFriend;
13399
15577
  friend class ::ExtAC;
13400
15578
  friend class ::ExtACBuilderCoupling;
13401
15579
  friend class ::ExtACSyntaxCoupling;
13402
15580
  friend class ::ExtACTree;
13403
15581
  friend class ::ExtACKeywords;
13404
 
  friend class ::WinAsm;
13405
 
  friend class ::WinDeclSpecs;
13406
 
  friend class ::WinMemberExplSpec;
13407
 
  friend class ::WinTypeKeywords;
 
15582
  friend class ::ExtGnu;
13408
15583
  friend class ::PragmaOnceUnitState;
13409
15584
  friend class ::PragmaOnce;
13410
 
  friend class ::CCExprResolve;
13411
 
  friend class ::CExprResolve;
 
15585
  friend class ::CMatchSyntax;
13412
15586
 
13413
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15587
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13414
15588
 
13415
15589
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
13416
15590
 
13417
15591
public:
13418
15592
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
13419
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
15593
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
15594
    AddSon (sons[2], cv); AddSon (sons[3], es); 
13420
15595
  }
 
15596
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13421
15597
  static const char *NodeId ();
 
15598
  /** Get the name of the node. Can be compared with NodeId(). */
13422
15599
  const char *NodeName () const { return NodeId (); }
 
15600
  /** Get the number of sons. */
13423
15601
  int Sons () const { return CTree::Sons (sons, 4); }
 
15602
  /** Get the n-th son.
 
15603
   *  \param n The index of the son.
 
15604
   *  \return The n-th son or NULL. */
13424
15605
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
13425
15606
  CTree *Declarator () const { return sons[0]; }
13426
15607
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
13427
15608
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
13428
15609
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
15610
  /** Replace a son.
 
15611
   *  \param old_son The son to replace.
 
15612
   *  \param new_son The new son. */
13429
15613
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13430
15614
    CTree::ReplaceSon (sons, 4, old_son, new_son);
13431
15615
  }
13432
15616
};
13433
15617
 
13434
15618
 
13435
 
#line 13436 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15619
#line 15620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13436
15620
} // closed Puma
 
15621
class CCExprResolve;
 
15622
class CExprResolve;
13437
15623
class WinIfExists;
13438
15624
class WinImportHandler;
13439
15625
class WinMacros;
13440
 
class CMatchSyntax;
13441
 
class ExtGnu;
 
15626
class WinAsm;
 
15627
class WinDeclSpecs;
 
15628
class WinMemberExplSpec;
 
15629
class WinTypeKeywords;
 
15630
class WinFriend;
13442
15631
class ExtAC;
13443
15632
class ExtACBuilderCoupling;
13444
15633
class ExtACSyntaxCoupling;
13445
15634
class ExtACTree;
13446
15635
class ExtACKeywords;
13447
 
class WinAsm;
13448
 
class WinDeclSpecs;
13449
 
class WinMemberExplSpec;
13450
 
class WinTypeKeywords;
 
15636
class ExtGnu;
13451
15637
class PragmaOnceUnitState;
13452
15638
class PragmaOnce;
13453
 
class CCExprResolve;
13454
 
class CExprResolve;
 
15639
class CMatchSyntax;
13455
15640
namespace Puma {
13456
15641
 
13457
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15642
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13458
15643
class CT_RefDeclarator : public CT_Declarator {
13459
 
#line 13460 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15644
#line 15645 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
15645
  friend class ::CCExprResolve;
 
15646
  friend class ::CExprResolve;
13460
15647
  friend class ::WinIfExists;
13461
15648
  friend class ::WinImportHandler;
13462
15649
  friend class ::WinMacros;
13463
 
  friend class ::CMatchSyntax;
13464
 
  friend class ::ExtGnu;
 
15650
  friend class ::WinAsm;
 
15651
  friend class ::WinDeclSpecs;
 
15652
  friend class ::WinMemberExplSpec;
 
15653
  friend class ::WinTypeKeywords;
 
15654
  friend class ::WinFriend;
13465
15655
  friend class ::ExtAC;
13466
15656
  friend class ::ExtACBuilderCoupling;
13467
15657
  friend class ::ExtACSyntaxCoupling;
13468
15658
  friend class ::ExtACTree;
13469
15659
  friend class ::ExtACKeywords;
13470
 
  friend class ::WinAsm;
13471
 
  friend class ::WinDeclSpecs;
13472
 
  friend class ::WinMemberExplSpec;
13473
 
  friend class ::WinTypeKeywords;
 
15660
  friend class ::ExtGnu;
13474
15661
  friend class ::PragmaOnceUnitState;
13475
15662
  friend class ::PragmaOnce;
13476
 
  friend class ::CCExprResolve;
13477
 
  friend class ::CExprResolve;
 
15663
  friend class ::CMatchSyntax;
13478
15664
 
13479
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15665
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13480
15666
 
13481
15667
  CTree *sons[2]; // ref, declarator
13482
15668
 
13483
15669
public:
13484
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
15670
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
15671
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13485
15672
  static const char *NodeId ();
 
15673
  /** Get the name of the node. Can be compared with NodeId(). */
13486
15674
  const char *NodeName () const { return NodeId (); }
 
15675
  /** Get the number of sons. */
13487
15676
  int Sons () const { return 2; }
 
15677
  /** Get the n-th son.
 
15678
   *  \param n The index of the son.
 
15679
   *  \return The n-th son or NULL. */
13488
15680
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
13489
15681
  CTree *Declarator () const { return sons[1]; }
 
15682
  /** Replace a son.
 
15683
   *  \param old_son The son to replace.
 
15684
   *  \param new_son The new son. */
13490
15685
  void ReplaceSon (CTree *old_son, CTree *new_son) {
13491
15686
    CTree::ReplaceSon (sons, 2, old_son, new_son);
13492
15687
  }
13493
15688
};
13494
15689
 
13495
15690
 
13496
 
#line 13497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15691
#line 15692 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13497
15692
} // closed Puma
 
15693
class CCExprResolve;
 
15694
class CExprResolve;
13498
15695
class WinIfExists;
13499
15696
class WinImportHandler;
13500
15697
class WinMacros;
13501
 
class CMatchSyntax;
13502
 
class ExtGnu;
 
15698
class WinAsm;
 
15699
class WinDeclSpecs;
 
15700
class WinMemberExplSpec;
 
15701
class WinTypeKeywords;
 
15702
class WinFriend;
13503
15703
class ExtAC;
13504
15704
class ExtACBuilderCoupling;
13505
15705
class ExtACSyntaxCoupling;
13506
15706
class ExtACTree;
13507
15707
class ExtACKeywords;
13508
 
class WinAsm;
13509
 
class WinDeclSpecs;
13510
 
class WinMemberExplSpec;
13511
 
class WinTypeKeywords;
 
15708
class ExtGnu;
13512
15709
class PragmaOnceUnitState;
13513
15710
class PragmaOnce;
13514
 
class CCExprResolve;
13515
 
class CExprResolve;
 
15711
class CMatchSyntax;
13516
15712
namespace Puma {
13517
15713
 
13518
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15714
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13519
15715
class CT_PtrDeclarator : public CT_Declarator {
13520
 
#line 13521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15716
#line 15717 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
15717
  friend class ::CCExprResolve;
 
15718
  friend class ::CExprResolve;
13521
15719
  friend class ::WinIfExists;
13522
15720
  friend class ::WinImportHandler;
13523
15721
  friend class ::WinMacros;
13524
 
  friend class ::CMatchSyntax;
13525
 
  friend class ::ExtGnu;
 
15722
  friend class ::WinAsm;
 
15723
  friend class ::WinDeclSpecs;
 
15724
  friend class ::WinMemberExplSpec;
 
15725
  friend class ::WinTypeKeywords;
 
15726
  friend class ::WinFriend;
13526
15727
  friend class ::ExtAC;
13527
15728
  friend class ::ExtACBuilderCoupling;
13528
15729
  friend class ::ExtACSyntaxCoupling;
13529
15730
  friend class ::ExtACTree;
13530
15731
  friend class ::ExtACKeywords;
13531
 
  friend class ::WinAsm;
13532
 
  friend class ::WinDeclSpecs;
13533
 
  friend class ::WinMemberExplSpec;
13534
 
  friend class ::WinTypeKeywords;
 
15732
  friend class ::ExtGnu;
13535
15733
  friend class ::PragmaOnceUnitState;
13536
15734
  friend class ::PragmaOnce;
13537
 
  friend class ::CCExprResolve;
13538
 
  friend class ::CExprResolve;
 
15735
  friend class ::CMatchSyntax;
13539
15736
 
13540
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15737
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13541
15738
 
13542
15739
  CTree *sons[3]; // ptr, cv_quals, declarator
13543
15740
 
13544
15741
public:
13545
15742
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
13546
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
15743
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
13547
15744
  }
 
15745
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13548
15746
  static const char *NodeId ();
 
15747
  /** Get the name of the node. Can be compared with NodeId(). */
13549
15748
  const char *NodeName () const { return NodeId (); }
 
15749
  /** Get the number of sons. */
13550
15750
  int Sons () const { return CTree::Sons (sons, 3); }
 
15751
  /** Get the n-th son.
 
15752
   *  \param n The index of the son.
 
15753
   *  \return The n-th son or NULL. */
13551
15754
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13552
15755
  CTree *Declarator () const { return sons[2]; }
13553
15756
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
15757
  /** Replace a son.
 
15758
   *  \param old_son The son to replace.
 
15759
   *  \param new_son The new son. */
13554
15760
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13555
15761
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13556
15762
  }
13557
15763
};
13558
15764
 
13559
15765
 
13560
 
#line 13561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15766
#line 15767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13561
15767
} // closed Puma
 
15768
class CCExprResolve;
 
15769
class CExprResolve;
13562
15770
class WinIfExists;
13563
15771
class WinImportHandler;
13564
15772
class WinMacros;
13565
 
class CMatchSyntax;
13566
 
class ExtGnu;
 
15773
class WinAsm;
 
15774
class WinDeclSpecs;
 
15775
class WinMemberExplSpec;
 
15776
class WinTypeKeywords;
 
15777
class WinFriend;
13567
15778
class ExtAC;
13568
15779
class ExtACBuilderCoupling;
13569
15780
class ExtACSyntaxCoupling;
13570
15781
class ExtACTree;
13571
15782
class ExtACKeywords;
13572
 
class WinAsm;
13573
 
class WinDeclSpecs;
13574
 
class WinMemberExplSpec;
13575
 
class WinTypeKeywords;
 
15783
class ExtGnu;
13576
15784
class PragmaOnceUnitState;
13577
15785
class PragmaOnce;
13578
 
class CCExprResolve;
13579
 
class CExprResolve;
 
15786
class CMatchSyntax;
13580
15787
namespace Puma {
13581
15788
 
13582
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15789
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13583
15790
class CT_MembPtrDeclarator : public CT_Declarator {
13584
 
#line 13585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15791
#line 15792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
15792
  friend class ::CCExprResolve;
 
15793
  friend class ::CExprResolve;
13585
15794
  friend class ::WinIfExists;
13586
15795
  friend class ::WinImportHandler;
13587
15796
  friend class ::WinMacros;
13588
 
  friend class ::CMatchSyntax;
13589
 
  friend class ::ExtGnu;
 
15797
  friend class ::WinAsm;
 
15798
  friend class ::WinDeclSpecs;
 
15799
  friend class ::WinMemberExplSpec;
 
15800
  friend class ::WinTypeKeywords;
 
15801
  friend class ::WinFriend;
13590
15802
  friend class ::ExtAC;
13591
15803
  friend class ::ExtACBuilderCoupling;
13592
15804
  friend class ::ExtACSyntaxCoupling;
13593
15805
  friend class ::ExtACTree;
13594
15806
  friend class ::ExtACKeywords;
13595
 
  friend class ::WinAsm;
13596
 
  friend class ::WinDeclSpecs;
13597
 
  friend class ::WinMemberExplSpec;
13598
 
  friend class ::WinTypeKeywords;
 
15807
  friend class ::ExtGnu;
13599
15808
  friend class ::PragmaOnceUnitState;
13600
15809
  friend class ::PragmaOnce;
13601
 
  friend class ::CCExprResolve;
13602
 
  friend class ::CExprResolve;
 
15810
  friend class ::CMatchSyntax;
13603
15811
 
13604
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15812
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13605
15813
 
13606
15814
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
13607
15815
 
13608
15816
public:
13609
15817
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
13610
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
15818
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
15819
    AddSon (sons[3], q); AddSon (sons[4], d); 
13611
15820
  }
 
15821
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13612
15822
  static const char *NodeId ();
 
15823
  /** Get the name of the node. Can be compared with NodeId(). */
13613
15824
  const char *NodeName () const { return NodeId (); }
 
15825
  /** Get the number of sons. */
13614
15826
  int Sons () const { return CTree::Sons (sons, 5); }
 
15827
  /** Get the n-th son.
 
15828
   *  \param n The index of the son.
 
15829
   *  \return The n-th son or NULL. */
13615
15830
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
13616
15831
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
13617
15832
  CTree *Declarator () const { return sons[4]; }
13618
15833
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
15834
  /** Replace a son.
 
15835
   *  \param old_son The son to replace.
 
15836
   *  \param new_son The new son. */
13619
15837
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13620
15838
    CTree::ReplaceSon (sons, 5, old_son, new_son);
13621
15839
  }
13622
15840
};
13623
15841
 
13624
15842
 
13625
 
#line 13626 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15843
#line 15844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13626
15844
} // closed Puma
 
15845
class CCExprResolve;
 
15846
class CExprResolve;
13627
15847
class WinIfExists;
13628
15848
class WinImportHandler;
13629
15849
class WinMacros;
13630
 
class CMatchSyntax;
13631
 
class ExtGnu;
 
15850
class WinAsm;
 
15851
class WinDeclSpecs;
 
15852
class WinMemberExplSpec;
 
15853
class WinTypeKeywords;
 
15854
class WinFriend;
13632
15855
class ExtAC;
13633
15856
class ExtACBuilderCoupling;
13634
15857
class ExtACSyntaxCoupling;
13635
15858
class ExtACTree;
13636
15859
class ExtACKeywords;
13637
 
class WinAsm;
13638
 
class WinDeclSpecs;
13639
 
class WinMemberExplSpec;
13640
 
class WinTypeKeywords;
 
15860
class ExtGnu;
13641
15861
class PragmaOnceUnitState;
13642
15862
class PragmaOnce;
13643
 
class CCExprResolve;
13644
 
class CExprResolve;
 
15863
class CMatchSyntax;
13645
15864
namespace Puma {
13646
15865
 
13647
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15866
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13648
15867
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
13649
 
#line 13650 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15868
#line 15869 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
15869
  friend class ::CCExprResolve;
 
15870
  friend class ::CExprResolve;
13650
15871
  friend class ::WinIfExists;
13651
15872
  friend class ::WinImportHandler;
13652
15873
  friend class ::WinMacros;
13653
 
  friend class ::CMatchSyntax;
13654
 
  friend class ::ExtGnu;
 
15874
  friend class ::WinAsm;
 
15875
  friend class ::WinDeclSpecs;
 
15876
  friend class ::WinMemberExplSpec;
 
15877
  friend class ::WinTypeKeywords;
 
15878
  friend class ::WinFriend;
13655
15879
  friend class ::ExtAC;
13656
15880
  friend class ::ExtACBuilderCoupling;
13657
15881
  friend class ::ExtACSyntaxCoupling;
13658
15882
  friend class ::ExtACTree;
13659
15883
  friend class ::ExtACKeywords;
13660
 
  friend class ::WinAsm;
13661
 
  friend class ::WinDeclSpecs;
13662
 
  friend class ::WinMemberExplSpec;
13663
 
  friend class ::WinTypeKeywords;
 
15884
  friend class ::ExtGnu;
13664
15885
  friend class ::PragmaOnceUnitState;
13665
15886
  friend class ::PragmaOnce;
13666
 
  friend class ::CCExprResolve;
13667
 
  friend class ::CExprResolve;
 
15887
  friend class ::CMatchSyntax;
13668
15888
 
13669
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15889
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13670
15890
 
13671
15891
  CTree *sons[3]; // declarator, colon, expr
13672
15892
 
13673
15893
public:
13674
15894
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
13675
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
15895
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
13676
15896
  }
 
15897
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13677
15898
  static const char *NodeId ();
 
15899
  /** Get the name of the node. Can be compared with NodeId(). */
13678
15900
  const char *NodeName () const { return NodeId (); }
 
15901
  /** Get the number of sons. */
13679
15902
  int Sons () const { return CTree::Sons (sons, 3); }
 
15903
  /** Get the n-th son.
 
15904
   *  \param n The index of the son.
 
15905
   *  \return The n-th son or NULL. */
13680
15906
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13681
15907
  CTree *Declarator () const { return sons[0]; }
13682
15908
  CTree *Expr () const { return sons[2]; }
13683
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
15909
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
13684
15910
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
15911
  /** Replace a son.
 
15912
   *  \param old_son The son to replace.
 
15913
   *  \param new_son The new son. */
13685
15914
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13686
15915
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13687
15916
  }
13694
15923
/*****************************************************************************/
13695
15924
 
13696
15925
 
13697
 
#line 13698 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15926
#line 15927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13698
15927
} // closed Puma
 
15928
class CCExprResolve;
 
15929
class CExprResolve;
13699
15930
class WinIfExists;
13700
15931
class WinImportHandler;
13701
15932
class WinMacros;
13702
 
class CMatchSyntax;
13703
 
class ExtGnu;
 
15933
class WinAsm;
 
15934
class WinDeclSpecs;
 
15935
class WinMemberExplSpec;
 
15936
class WinTypeKeywords;
 
15937
class WinFriend;
13704
15938
class ExtAC;
13705
15939
class ExtACBuilderCoupling;
13706
15940
class ExtACSyntaxCoupling;
13707
15941
class ExtACTree;
13708
15942
class ExtACKeywords;
13709
 
class WinAsm;
13710
 
class WinDeclSpecs;
13711
 
class WinMemberExplSpec;
13712
 
class WinTypeKeywords;
 
15943
class ExtGnu;
13713
15944
class PragmaOnceUnitState;
13714
15945
class PragmaOnce;
13715
 
class CCExprResolve;
13716
 
class CExprResolve;
 
15946
class CMatchSyntax;
13717
15947
namespace Puma {
13718
15948
 
13719
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15949
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13720
15950
class CT_Statement : public CTree {
13721
 
#line 13722 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15951
#line 15952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
15952
  friend class ::CCExprResolve;
 
15953
  friend class ::CExprResolve;
13722
15954
  friend class ::WinIfExists;
13723
15955
  friend class ::WinImportHandler;
13724
15956
  friend class ::WinMacros;
13725
 
  friend class ::CMatchSyntax;
13726
 
  friend class ::ExtGnu;
 
15957
  friend class ::WinAsm;
 
15958
  friend class ::WinDeclSpecs;
 
15959
  friend class ::WinMemberExplSpec;
 
15960
  friend class ::WinTypeKeywords;
 
15961
  friend class ::WinFriend;
13727
15962
  friend class ::ExtAC;
13728
15963
  friend class ::ExtACBuilderCoupling;
13729
15964
  friend class ::ExtACSyntaxCoupling;
13730
15965
  friend class ::ExtACTree;
13731
15966
  friend class ::ExtACKeywords;
13732
 
  friend class ::WinAsm;
13733
 
  friend class ::WinDeclSpecs;
13734
 
  friend class ::WinMemberExplSpec;
13735
 
  friend class ::WinTypeKeywords;
 
15967
  friend class ::ExtGnu;
13736
15968
  friend class ::PragmaOnceUnitState;
13737
15969
  friend class ::PragmaOnce;
13738
 
  friend class ::CCExprResolve;
13739
 
  friend class ::CExprResolve;
 
15970
  friend class ::CMatchSyntax;
13740
15971
 
13741
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
15972
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13742
15973
 
13743
15974
protected:
13744
15975
  CT_Statement () {}
 
15976
  virtual CT_Statement *IsStatement () { return this; }
13745
15977
};
13746
15978
 
13747
15979
 
13748
 
#line 13749 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
15980
#line 15981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13749
15981
} // closed Puma
 
15982
class CCExprResolve;
 
15983
class CExprResolve;
13750
15984
class WinIfExists;
13751
15985
class WinImportHandler;
13752
15986
class WinMacros;
13753
 
class CMatchSyntax;
13754
 
class ExtGnu;
 
15987
class WinAsm;
 
15988
class WinDeclSpecs;
 
15989
class WinMemberExplSpec;
 
15990
class WinTypeKeywords;
 
15991
class WinFriend;
13755
15992
class ExtAC;
13756
15993
class ExtACBuilderCoupling;
13757
15994
class ExtACSyntaxCoupling;
13758
15995
class ExtACTree;
13759
15996
class ExtACKeywords;
13760
 
class WinAsm;
13761
 
class WinDeclSpecs;
13762
 
class WinMemberExplSpec;
13763
 
class WinTypeKeywords;
 
15997
class ExtGnu;
13764
15998
class PragmaOnceUnitState;
13765
15999
class PragmaOnce;
13766
 
class CCExprResolve;
13767
 
class CExprResolve;
 
16000
class CMatchSyntax;
13768
16001
namespace Puma {
13769
16002
 
13770
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16003
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13771
16004
class CT_LabelStmt : public CT_Statement {
13772
 
#line 13773 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16005
#line 16006 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
16006
  friend class ::CCExprResolve;
 
16007
  friend class ::CExprResolve;
13773
16008
  friend class ::WinIfExists;
13774
16009
  friend class ::WinImportHandler;
13775
16010
  friend class ::WinMacros;
13776
 
  friend class ::CMatchSyntax;
13777
 
  friend class ::ExtGnu;
 
16011
  friend class ::WinAsm;
 
16012
  friend class ::WinDeclSpecs;
 
16013
  friend class ::WinMemberExplSpec;
 
16014
  friend class ::WinTypeKeywords;
 
16015
  friend class ::WinFriend;
13778
16016
  friend class ::ExtAC;
13779
16017
  friend class ::ExtACBuilderCoupling;
13780
16018
  friend class ::ExtACSyntaxCoupling;
13781
16019
  friend class ::ExtACTree;
13782
16020
  friend class ::ExtACKeywords;
13783
 
  friend class ::WinAsm;
13784
 
  friend class ::WinDeclSpecs;
13785
 
  friend class ::WinMemberExplSpec;
13786
 
  friend class ::WinTypeKeywords;
 
16021
  friend class ::ExtGnu;
13787
16022
  friend class ::PragmaOnceUnitState;
13788
16023
  friend class ::PragmaOnce;
13789
 
  friend class ::CCExprResolve;
13790
 
  friend class ::CExprResolve;
 
16024
  friend class ::CMatchSyntax;
13791
16025
 
13792
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16026
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13793
16027
 
13794
16028
  CTree *sons[3]; // id, colon, stmt
13795
16029
 
13796
16030
public:
13797
16031
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
13798
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
16032
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
13799
16033
  }
 
16034
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13800
16035
  static const char *NodeId ();
 
16036
  /** Get the name of the node. Can be compared with NodeId(). */
13801
16037
  const char *NodeName () const { return NodeId (); }
 
16038
  /** Get the number of sons. */
13802
16039
  int Sons () const { return 3; }
 
16040
  /** Get the n-th son.
 
16041
   *  \param n The index of the son.
 
16042
   *  \return The n-th son or NULL. */
13803
16043
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13804
16044
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
13805
16045
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
16046
  /** Replace a son.
 
16047
   *  \param old_son The son to replace.
 
16048
   *  \param new_son The new son. */
13806
16049
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13807
16050
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13808
16051
  }
13809
16052
};
13810
16053
 
13811
16054
 
13812
 
#line 13813 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16055
#line 16056 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13813
16056
} // closed Puma
 
16057
class CCExprResolve;
 
16058
class CExprResolve;
13814
16059
class WinIfExists;
13815
16060
class WinImportHandler;
13816
16061
class WinMacros;
13817
 
class CMatchSyntax;
13818
 
class ExtGnu;
 
16062
class WinAsm;
 
16063
class WinDeclSpecs;
 
16064
class WinMemberExplSpec;
 
16065
class WinTypeKeywords;
 
16066
class WinFriend;
13819
16067
class ExtAC;
13820
16068
class ExtACBuilderCoupling;
13821
16069
class ExtACSyntaxCoupling;
13822
16070
class ExtACTree;
13823
16071
class ExtACKeywords;
13824
 
class WinAsm;
13825
 
class WinDeclSpecs;
13826
 
class WinMemberExplSpec;
13827
 
class WinTypeKeywords;
 
16072
class ExtGnu;
13828
16073
class PragmaOnceUnitState;
13829
16074
class PragmaOnce;
13830
 
class CCExprResolve;
13831
 
class CExprResolve;
 
16075
class CMatchSyntax;
13832
16076
namespace Puma {
13833
16077
 
13834
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16078
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13835
16079
class CT_DefaultStmt : public CT_Statement {
13836
 
#line 13837 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16080
#line 16081 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
16081
  friend class ::CCExprResolve;
 
16082
  friend class ::CExprResolve;
13837
16083
  friend class ::WinIfExists;
13838
16084
  friend class ::WinImportHandler;
13839
16085
  friend class ::WinMacros;
13840
 
  friend class ::CMatchSyntax;
13841
 
  friend class ::ExtGnu;
 
16086
  friend class ::WinAsm;
 
16087
  friend class ::WinDeclSpecs;
 
16088
  friend class ::WinMemberExplSpec;
 
16089
  friend class ::WinTypeKeywords;
 
16090
  friend class ::WinFriend;
13842
16091
  friend class ::ExtAC;
13843
16092
  friend class ::ExtACBuilderCoupling;
13844
16093
  friend class ::ExtACSyntaxCoupling;
13845
16094
  friend class ::ExtACTree;
13846
16095
  friend class ::ExtACKeywords;
13847
 
  friend class ::WinAsm;
13848
 
  friend class ::WinDeclSpecs;
13849
 
  friend class ::WinMemberExplSpec;
13850
 
  friend class ::WinTypeKeywords;
 
16096
  friend class ::ExtGnu;
13851
16097
  friend class ::PragmaOnceUnitState;
13852
16098
  friend class ::PragmaOnce;
13853
 
  friend class ::CCExprResolve;
13854
 
  friend class ::CExprResolve;
 
16099
  friend class ::CMatchSyntax;
13855
16100
 
13856
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16101
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13857
16102
 
13858
16103
  CTree *sons[3]; // keyword, colon, stmt
13859
16104
 
13860
16105
public:
13861
16106
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
13862
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
16107
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
13863
16108
  }
 
16109
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13864
16110
  static const char *NodeId ();
 
16111
  /** Get the name of the node. Can be compared with NodeId(). */
13865
16112
  const char *NodeName () const { return NodeId (); }
 
16113
  /** Get the number of sons. */
13866
16114
  int Sons () const { return 3; }
 
16115
  /** Get the n-th son.
 
16116
   *  \param n The index of the son.
 
16117
   *  \return The n-th son or NULL. */
13867
16118
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13868
16119
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
16120
  /** Replace a son.
 
16121
   *  \param old_son The son to replace.
 
16122
   *  \param new_son The new son. */
13869
16123
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13870
16124
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13871
16125
  }
13872
16126
};
13873
16127
 
13874
16128
 
13875
 
#line 13876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16129
#line 16130 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13876
16130
} // closed Puma
 
16131
class CCExprResolve;
 
16132
class CExprResolve;
13877
16133
class WinIfExists;
13878
16134
class WinImportHandler;
13879
16135
class WinMacros;
13880
 
class CMatchSyntax;
13881
 
class ExtGnu;
 
16136
class WinAsm;
 
16137
class WinDeclSpecs;
 
16138
class WinMemberExplSpec;
 
16139
class WinTypeKeywords;
 
16140
class WinFriend;
13882
16141
class ExtAC;
13883
16142
class ExtACBuilderCoupling;
13884
16143
class ExtACSyntaxCoupling;
13885
16144
class ExtACTree;
13886
16145
class ExtACKeywords;
13887
 
class WinAsm;
13888
 
class WinDeclSpecs;
13889
 
class WinMemberExplSpec;
13890
 
class WinTypeKeywords;
 
16146
class ExtGnu;
13891
16147
class PragmaOnceUnitState;
13892
16148
class PragmaOnce;
13893
 
class CCExprResolve;
13894
 
class CExprResolve;
 
16149
class CMatchSyntax;
13895
16150
namespace Puma {
13896
16151
 
13897
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16152
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13898
16153
class CT_TryStmt : public CT_Statement {
13899
 
#line 13900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16154
#line 16155 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
16155
  friend class ::CCExprResolve;
 
16156
  friend class ::CExprResolve;
13900
16157
  friend class ::WinIfExists;
13901
16158
  friend class ::WinImportHandler;
13902
16159
  friend class ::WinMacros;
13903
 
  friend class ::CMatchSyntax;
13904
 
  friend class ::ExtGnu;
 
16160
  friend class ::WinAsm;
 
16161
  friend class ::WinDeclSpecs;
 
16162
  friend class ::WinMemberExplSpec;
 
16163
  friend class ::WinTypeKeywords;
 
16164
  friend class ::WinFriend;
13905
16165
  friend class ::ExtAC;
13906
16166
  friend class ::ExtACBuilderCoupling;
13907
16167
  friend class ::ExtACSyntaxCoupling;
13908
16168
  friend class ::ExtACTree;
13909
16169
  friend class ::ExtACKeywords;
13910
 
  friend class ::WinAsm;
13911
 
  friend class ::WinDeclSpecs;
13912
 
  friend class ::WinMemberExplSpec;
13913
 
  friend class ::WinTypeKeywords;
 
16170
  friend class ::ExtGnu;
13914
16171
  friend class ::PragmaOnceUnitState;
13915
16172
  friend class ::PragmaOnce;
13916
 
  friend class ::CCExprResolve;
13917
 
  friend class ::CExprResolve;
 
16173
  friend class ::CMatchSyntax;
13918
16174
 
13919
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16175
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13920
16176
 
13921
16177
  CTree *sons[3]; // try, stmt, handlers
13922
16178
 
13923
16179
public:
13924
16180
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
13925
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
16181
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
13926
16182
  }
 
16183
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13927
16184
  static const char *NodeId ();
 
16185
  /** Get the name of the node. Can be compared with NodeId(). */
13928
16186
  const char *NodeName () const { return NodeId (); }
 
16187
  /** Get the number of sons. */
13929
16188
  int Sons () const { return 3; }
 
16189
  /** Get the n-th son.
 
16190
   *  \param n The index of the son.
 
16191
   *  \return The n-th son or NULL. */
13930
16192
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
13931
16193
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
13932
16194
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
16195
  /** Replace a son.
 
16196
   *  \param old_son The son to replace.
 
16197
   *  \param new_son The new son. */
13933
16198
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13934
16199
    CTree::ReplaceSon (sons, 3, old_son, new_son);
13935
16200
  }
13936
16201
};
13937
16202
 
13938
16203
 
13939
 
#line 13940 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16204
#line 16205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
13940
16205
} // closed Puma
 
16206
class CCExprResolve;
 
16207
class CExprResolve;
13941
16208
class WinIfExists;
13942
16209
class WinImportHandler;
13943
16210
class WinMacros;
13944
 
class CMatchSyntax;
13945
 
class ExtGnu;
 
16211
class WinAsm;
 
16212
class WinDeclSpecs;
 
16213
class WinMemberExplSpec;
 
16214
class WinTypeKeywords;
 
16215
class WinFriend;
13946
16216
class ExtAC;
13947
16217
class ExtACBuilderCoupling;
13948
16218
class ExtACSyntaxCoupling;
13949
16219
class ExtACTree;
13950
16220
class ExtACKeywords;
13951
 
class WinAsm;
13952
 
class WinDeclSpecs;
13953
 
class WinMemberExplSpec;
13954
 
class WinTypeKeywords;
 
16221
class ExtGnu;
13955
16222
class PragmaOnceUnitState;
13956
16223
class PragmaOnce;
13957
 
class CCExprResolve;
13958
 
class CExprResolve;
 
16224
class CMatchSyntax;
13959
16225
namespace Puma {
13960
16226
 
13961
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16227
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13962
16228
class CT_CaseStmt : public CT_Statement {
13963
 
#line 13964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16229
#line 16230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
16230
  friend class ::CCExprResolve;
 
16231
  friend class ::CExprResolve;
13964
16232
  friend class ::WinIfExists;
13965
16233
  friend class ::WinImportHandler;
13966
16234
  friend class ::WinMacros;
13967
 
  friend class ::CMatchSyntax;
13968
 
  friend class ::ExtGnu;
 
16235
  friend class ::WinAsm;
 
16236
  friend class ::WinDeclSpecs;
 
16237
  friend class ::WinMemberExplSpec;
 
16238
  friend class ::WinTypeKeywords;
 
16239
  friend class ::WinFriend;
13969
16240
  friend class ::ExtAC;
13970
16241
  friend class ::ExtACBuilderCoupling;
13971
16242
  friend class ::ExtACSyntaxCoupling;
13972
16243
  friend class ::ExtACTree;
13973
16244
  friend class ::ExtACKeywords;
13974
 
  friend class ::WinAsm;
13975
 
  friend class ::WinDeclSpecs;
13976
 
  friend class ::WinMemberExplSpec;
13977
 
  friend class ::WinTypeKeywords;
 
16245
  friend class ::ExtGnu;
13978
16246
  friend class ::PragmaOnceUnitState;
13979
16247
  friend class ::PragmaOnce;
13980
 
  friend class ::CCExprResolve;
13981
 
  friend class ::CExprResolve;
 
16248
  friend class ::CMatchSyntax;
13982
16249
 
13983
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16250
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
13984
16251
 
13985
16252
  CTree *sons[4]; // keyword, expr, colon, stmt
13986
16253
 
13987
16254
public:
13988
16255
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
13989
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
16256
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
16257
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
13990
16258
  }
 
16259
  /** Get the identifier for this node type. Can be compared with NodeName(). */
13991
16260
  static const char *NodeId ();
 
16261
  /** Get the name of the node. Can be compared with NodeId(). */
13992
16262
  const char *NodeName () const { return NodeId (); }
 
16263
  /** Get the number of sons. */
13993
16264
  int Sons () const { return 4; }
 
16265
  /** Get the n-th son.
 
16266
   *  \param n The index of the son.
 
16267
   *  \return The n-th son or NULL. */
13994
16268
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
13995
16269
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
13996
16270
  CTree *Expr () const { return sons[1]; }
 
16271
  /** Replace a son.
 
16272
   *  \param old_son The son to replace.
 
16273
   *  \param new_son The new son. */
13997
16274
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
13998
16275
    CTree::ReplaceSon (sons, 4, old_son, new_son);
13999
16276
  }
14000
16277
};
14001
16278
 
14002
16279
 
14003
 
#line 14004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16280
#line 16281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14004
16281
} // closed Puma
 
16282
class CCExprResolve;
 
16283
class CExprResolve;
14005
16284
class WinIfExists;
14006
16285
class WinImportHandler;
14007
16286
class WinMacros;
14008
 
class CMatchSyntax;
14009
 
class ExtGnu;
 
16287
class WinAsm;
 
16288
class WinDeclSpecs;
 
16289
class WinMemberExplSpec;
 
16290
class WinTypeKeywords;
 
16291
class WinFriend;
14010
16292
class ExtAC;
14011
16293
class ExtACBuilderCoupling;
14012
16294
class ExtACSyntaxCoupling;
14013
16295
class ExtACTree;
14014
16296
class ExtACKeywords;
14015
 
class WinAsm;
14016
 
class WinDeclSpecs;
14017
 
class WinMemberExplSpec;
14018
 
class WinTypeKeywords;
 
16297
class ExtGnu;
14019
16298
class PragmaOnceUnitState;
14020
16299
class PragmaOnce;
14021
 
class CCExprResolve;
14022
 
class CExprResolve;
 
16300
class CMatchSyntax;
14023
16301
namespace Puma {
14024
16302
 
14025
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16303
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14026
16304
class CT_ExprStmt : public CT_Statement {
14027
 
#line 14028 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16305
#line 16306 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
16306
  friend class ::CCExprResolve;
 
16307
  friend class ::CExprResolve;
14028
16308
  friend class ::WinIfExists;
14029
16309
  friend class ::WinImportHandler;
14030
16310
  friend class ::WinMacros;
14031
 
  friend class ::CMatchSyntax;
14032
 
  friend class ::ExtGnu;
 
16311
  friend class ::WinAsm;
 
16312
  friend class ::WinDeclSpecs;
 
16313
  friend class ::WinMemberExplSpec;
 
16314
  friend class ::WinTypeKeywords;
 
16315
  friend class ::WinFriend;
14033
16316
  friend class ::ExtAC;
14034
16317
  friend class ::ExtACBuilderCoupling;
14035
16318
  friend class ::ExtACSyntaxCoupling;
14036
16319
  friend class ::ExtACTree;
14037
16320
  friend class ::ExtACKeywords;
14038
 
  friend class ::WinAsm;
14039
 
  friend class ::WinDeclSpecs;
14040
 
  friend class ::WinMemberExplSpec;
14041
 
  friend class ::WinTypeKeywords;
 
16321
  friend class ::ExtGnu;
14042
16322
  friend class ::PragmaOnceUnitState;
14043
16323
  friend class ::PragmaOnce;
14044
 
  friend class ::CCExprResolve;
14045
 
  friend class ::CExprResolve;
 
16324
  friend class ::CMatchSyntax;
14046
16325
 
14047
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16326
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14048
16327
 
14049
16328
  CTree *sons[2]; // expr, semi_colon
14050
16329
 
14051
16330
public:
14052
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
16331
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
16332
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14053
16333
  static const char *NodeId ();
 
16334
  /** Get the name of the node. Can be compared with NodeId(). */
14054
16335
  const char *NodeName () const { return NodeId (); }
 
16336
  /** Get the number of sons. */
14055
16337
  int Sons () const { return CTree::Sons (sons, 2); }
 
16338
  /** Get the n-th son.
 
16339
   *  \param n The index of the son.
 
16340
   *  \return The n-th son or NULL. */
14056
16341
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
14057
16342
  CTree *Expr () const { return sons[0]; }
 
16343
  /** Replace a son.
 
16344
   *  \param old_son The son to replace.
 
16345
   *  \param new_son The new son. */
14058
16346
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14059
16347
    CTree::ReplaceSon (sons, 2, old_son, new_son);
14060
16348
  }
14061
16349
};
14062
16350
 
14063
16351
 
14064
 
#line 14065 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16352
#line 16353 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14065
16353
} // closed Puma
 
16354
class CCExprResolve;
 
16355
class CExprResolve;
14066
16356
class WinIfExists;
14067
16357
class WinImportHandler;
14068
16358
class WinMacros;
14069
 
class CMatchSyntax;
14070
 
class ExtGnu;
 
16359
class WinAsm;
 
16360
class WinDeclSpecs;
 
16361
class WinMemberExplSpec;
 
16362
class WinTypeKeywords;
 
16363
class WinFriend;
14071
16364
class ExtAC;
14072
16365
class ExtACBuilderCoupling;
14073
16366
class ExtACSyntaxCoupling;
14074
16367
class ExtACTree;
14075
16368
class ExtACKeywords;
14076
 
class WinAsm;
14077
 
class WinDeclSpecs;
14078
 
class WinMemberExplSpec;
14079
 
class WinTypeKeywords;
 
16369
class ExtGnu;
14080
16370
class PragmaOnceUnitState;
14081
16371
class PragmaOnce;
14082
 
class CCExprResolve;
14083
 
class CExprResolve;
 
16372
class CMatchSyntax;
14084
16373
namespace Puma {
14085
16374
 
14086
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16375
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14087
16376
class CT_DeclStmt : public CT_Statement {
14088
 
#line 14089 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16377
#line 16378 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
16378
  friend class ::CCExprResolve;
 
16379
  friend class ::CExprResolve;
14089
16380
  friend class ::WinIfExists;
14090
16381
  friend class ::WinImportHandler;
14091
16382
  friend class ::WinMacros;
14092
 
  friend class ::CMatchSyntax;
14093
 
  friend class ::ExtGnu;
 
16383
  friend class ::WinAsm;
 
16384
  friend class ::WinDeclSpecs;
 
16385
  friend class ::WinMemberExplSpec;
 
16386
  friend class ::WinTypeKeywords;
 
16387
  friend class ::WinFriend;
14094
16388
  friend class ::ExtAC;
14095
16389
  friend class ::ExtACBuilderCoupling;
14096
16390
  friend class ::ExtACSyntaxCoupling;
14097
16391
  friend class ::ExtACTree;
14098
16392
  friend class ::ExtACKeywords;
14099
 
  friend class ::WinAsm;
14100
 
  friend class ::WinDeclSpecs;
14101
 
  friend class ::WinMemberExplSpec;
14102
 
  friend class ::WinTypeKeywords;
 
16393
  friend class ::ExtGnu;
14103
16394
  friend class ::PragmaOnceUnitState;
14104
16395
  friend class ::PragmaOnce;
14105
 
  friend class ::CCExprResolve;
14106
 
  friend class ::CExprResolve;
 
16396
  friend class ::CMatchSyntax;
14107
16397
 
14108
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16398
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14109
16399
 
14110
16400
  CTree *_decl;
14111
16401
 
14112
16402
public:
14113
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
16403
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
16404
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14114
16405
  static const char *NodeId ();
 
16406
  /** Get the name of the node. Can be compared with NodeId(). */
14115
16407
  const char *NodeName () const { return NodeId (); }
 
16408
  /** Get the number of sons. */
14116
16409
  int Sons () const { return 1; }
 
16410
  /** Get the n-th son.
 
16411
   *  \param n The index of the son.
 
16412
   *  \return The n-th son or NULL. */
14117
16413
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
16414
  /** Replace a son.
 
16415
   *  \param old_son The son to replace.
 
16416
   *  \param new_son The new son. */
14118
16417
  void ReplaceSon (CTree *old_son, CTree *new_son) 
14119
 
   { if (old_son == _decl) _decl = new_son; }
 
16418
   { CTree::ReplaceSon (_decl, old_son, new_son); }
14120
16419
};
14121
16420
 
14122
16421
 
14123
 
#line 14124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16422
#line 16423 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14124
16423
} // closed Puma
 
16424
class CCExprResolve;
 
16425
class CExprResolve;
14125
16426
class WinIfExists;
14126
16427
class WinImportHandler;
14127
16428
class WinMacros;
14128
 
class CMatchSyntax;
14129
 
class ExtGnu;
 
16429
class WinAsm;
 
16430
class WinDeclSpecs;
 
16431
class WinMemberExplSpec;
 
16432
class WinTypeKeywords;
 
16433
class WinFriend;
14130
16434
class ExtAC;
14131
16435
class ExtACBuilderCoupling;
14132
16436
class ExtACSyntaxCoupling;
14133
16437
class ExtACTree;
14134
16438
class ExtACKeywords;
14135
 
class WinAsm;
14136
 
class WinDeclSpecs;
14137
 
class WinMemberExplSpec;
14138
 
class WinTypeKeywords;
 
16439
class ExtGnu;
14139
16440
class PragmaOnceUnitState;
14140
16441
class PragmaOnce;
14141
 
class CCExprResolve;
14142
 
class CExprResolve;
 
16442
class CMatchSyntax;
14143
16443
namespace Puma {
14144
16444
 
14145
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16445
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14146
16446
class CT_SwitchStmt : public CT_Statement, public CSemScope {
14147
 
#line 14148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16447
#line 16448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
16448
  friend class ::CCExprResolve;
 
16449
  friend class ::CExprResolve;
14148
16450
  friend class ::WinIfExists;
14149
16451
  friend class ::WinImportHandler;
14150
16452
  friend class ::WinMacros;
14151
 
  friend class ::CMatchSyntax;
14152
 
  friend class ::ExtGnu;
 
16453
  friend class ::WinAsm;
 
16454
  friend class ::WinDeclSpecs;
 
16455
  friend class ::WinMemberExplSpec;
 
16456
  friend class ::WinTypeKeywords;
 
16457
  friend class ::WinFriend;
14153
16458
  friend class ::ExtAC;
14154
16459
  friend class ::ExtACBuilderCoupling;
14155
16460
  friend class ::ExtACSyntaxCoupling;
14156
16461
  friend class ::ExtACTree;
14157
16462
  friend class ::ExtACKeywords;
14158
 
  friend class ::WinAsm;
14159
 
  friend class ::WinDeclSpecs;
14160
 
  friend class ::WinMemberExplSpec;
14161
 
  friend class ::WinTypeKeywords;
 
16463
  friend class ::ExtGnu;
14162
16464
  friend class ::PragmaOnceUnitState;
14163
16465
  friend class ::PragmaOnce;
14164
 
  friend class ::CCExprResolve;
14165
 
  friend class ::CExprResolve;
 
16466
  friend class ::CMatchSyntax;
14166
16467
 
14167
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16468
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14168
16469
 
14169
16470
  CTree *sons[5]; // keyword, open, cond, close, stmt
14170
16471
 
14171
16472
public:
14172
16473
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
14173
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
16474
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
16475
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
14174
16476
  }
 
16477
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14175
16478
  static const char *NodeId ();
 
16479
  /** Get the name of the node. Can be compared with NodeId(). */
14176
16480
  const char *NodeName () const { return NodeId (); }
 
16481
  /** Get the number of sons. */
14177
16482
  int Sons () const { return 5; }
 
16483
  /** Get the n-th son.
 
16484
   *  \param n The index of the son.
 
16485
   *  \return The n-th son or NULL. */
14178
16486
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
14179
16487
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
14180
16488
  CTree *Condition () const { return sons[2]; }
 
16489
  /** Replace a son.
 
16490
   *  \param old_son The son to replace.
 
16491
   *  \param new_son The new son. */
14181
16492
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14182
16493
    CTree::ReplaceSon (sons, 5, old_son, new_son);
14183
16494
  }
 
16495
  CSemScope *SemScope () const { return (CSemScope*)this; }
14184
16496
};
14185
16497
 
14186
16498
 
14187
 
#line 14188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16499
#line 16500 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14188
16500
} // closed Puma
 
16501
class CCExprResolve;
 
16502
class CExprResolve;
14189
16503
class WinIfExists;
14190
16504
class WinImportHandler;
14191
16505
class WinMacros;
14192
 
class CMatchSyntax;
14193
 
class ExtGnu;
 
16506
class WinAsm;
 
16507
class WinDeclSpecs;
 
16508
class WinMemberExplSpec;
 
16509
class WinTypeKeywords;
 
16510
class WinFriend;
14194
16511
class ExtAC;
14195
16512
class ExtACBuilderCoupling;
14196
16513
class ExtACSyntaxCoupling;
14197
16514
class ExtACTree;
14198
16515
class ExtACKeywords;
14199
 
class WinAsm;
14200
 
class WinDeclSpecs;
14201
 
class WinMemberExplSpec;
14202
 
class WinTypeKeywords;
 
16516
class ExtGnu;
14203
16517
class PragmaOnceUnitState;
14204
16518
class PragmaOnce;
14205
 
class CCExprResolve;
14206
 
class CExprResolve;
 
16519
class CMatchSyntax;
14207
16520
namespace Puma {
14208
16521
 
14209
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16522
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14210
16523
class CT_IfStmt : public CT_Statement, public CSemScope {
14211
 
#line 14212 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16524
#line 16525 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
16525
  friend class ::CCExprResolve;
 
16526
  friend class ::CExprResolve;
14212
16527
  friend class ::WinIfExists;
14213
16528
  friend class ::WinImportHandler;
14214
16529
  friend class ::WinMacros;
14215
 
  friend class ::CMatchSyntax;
14216
 
  friend class ::ExtGnu;
 
16530
  friend class ::WinAsm;
 
16531
  friend class ::WinDeclSpecs;
 
16532
  friend class ::WinMemberExplSpec;
 
16533
  friend class ::WinTypeKeywords;
 
16534
  friend class ::WinFriend;
14217
16535
  friend class ::ExtAC;
14218
16536
  friend class ::ExtACBuilderCoupling;
14219
16537
  friend class ::ExtACSyntaxCoupling;
14220
16538
  friend class ::ExtACTree;
14221
16539
  friend class ::ExtACKeywords;
14222
 
  friend class ::WinAsm;
14223
 
  friend class ::WinDeclSpecs;
14224
 
  friend class ::WinMemberExplSpec;
14225
 
  friend class ::WinTypeKeywords;
 
16540
  friend class ::ExtGnu;
14226
16541
  friend class ::PragmaOnceUnitState;
14227
16542
  friend class ::PragmaOnce;
14228
 
  friend class ::CCExprResolve;
14229
 
  friend class ::CExprResolve;
 
16543
  friend class ::CMatchSyntax;
14230
16544
 
14231
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16545
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14232
16546
 
14233
16547
  CTree *sons[5]; // keyword, open, cond, close, stmt
14234
16548
 
14235
16549
public:
14236
16550
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
14237
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
16551
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
16552
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
14238
16553
  }
 
16554
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14239
16555
  static const char *NodeId ();
 
16556
  /** Get the name of the node. Can be compared with NodeId(). */
14240
16557
  const char *NodeName () const { return NodeId (); }
 
16558
  /** Get the number of sons. */
14241
16559
  int Sons () const { return 5; }
 
16560
  /** Get the n-th son.
 
16561
   *  \param n The index of the son.
 
16562
   *  \return The n-th son or NULL. */
14242
16563
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
14243
16564
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
14244
16565
  CTree *Condition () const { return sons[2]; }
 
16566
  /** Replace a son.
 
16567
   *  \param old_son The son to replace.
 
16568
   *  \param new_son The new son. */
14245
16569
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14246
16570
    CTree::ReplaceSon (sons, 5, old_son, new_son);
14247
16571
  }
 
16572
  CSemScope *SemScope () const { return (CSemScope*)this; }
14248
16573
};
14249
16574
 
14250
16575
 
14251
 
#line 14252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16576
#line 16577 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14252
16577
} // closed Puma
 
16578
class CCExprResolve;
 
16579
class CExprResolve;
14253
16580
class WinIfExists;
14254
16581
class WinImportHandler;
14255
16582
class WinMacros;
14256
 
class CMatchSyntax;
14257
 
class ExtGnu;
 
16583
class WinAsm;
 
16584
class WinDeclSpecs;
 
16585
class WinMemberExplSpec;
 
16586
class WinTypeKeywords;
 
16587
class WinFriend;
14258
16588
class ExtAC;
14259
16589
class ExtACBuilderCoupling;
14260
16590
class ExtACSyntaxCoupling;
14261
16591
class ExtACTree;
14262
16592
class ExtACKeywords;
14263
 
class WinAsm;
14264
 
class WinDeclSpecs;
14265
 
class WinMemberExplSpec;
14266
 
class WinTypeKeywords;
 
16593
class ExtGnu;
14267
16594
class PragmaOnceUnitState;
14268
16595
class PragmaOnce;
14269
 
class CCExprResolve;
14270
 
class CExprResolve;
 
16596
class CMatchSyntax;
14271
16597
namespace Puma {
14272
16598
 
14273
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16599
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14274
16600
class CT_IfElseStmt : public CT_Statement, public CSemScope {
14275
 
#line 14276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16601
#line 16602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
16602
  friend class ::CCExprResolve;
 
16603
  friend class ::CExprResolve;
14276
16604
  friend class ::WinIfExists;
14277
16605
  friend class ::WinImportHandler;
14278
16606
  friend class ::WinMacros;
14279
 
  friend class ::CMatchSyntax;
14280
 
  friend class ::ExtGnu;
 
16607
  friend class ::WinAsm;
 
16608
  friend class ::WinDeclSpecs;
 
16609
  friend class ::WinMemberExplSpec;
 
16610
  friend class ::WinTypeKeywords;
 
16611
  friend class ::WinFriend;
14281
16612
  friend class ::ExtAC;
14282
16613
  friend class ::ExtACBuilderCoupling;
14283
16614
  friend class ::ExtACSyntaxCoupling;
14284
16615
  friend class ::ExtACTree;
14285
16616
  friend class ::ExtACKeywords;
14286
 
  friend class ::WinAsm;
14287
 
  friend class ::WinDeclSpecs;
14288
 
  friend class ::WinMemberExplSpec;
14289
 
  friend class ::WinTypeKeywords;
 
16617
  friend class ::ExtGnu;
14290
16618
  friend class ::PragmaOnceUnitState;
14291
16619
  friend class ::PragmaOnce;
14292
 
  friend class ::CCExprResolve;
14293
 
  friend class ::CExprResolve;
 
16620
  friend class ::CMatchSyntax;
14294
16621
 
14295
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16622
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14296
16623
 
14297
16624
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
14298
16625
 
14299
16626
public:
14300
16627
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
14301
16628
                 CTree *is, CTree *e, CTree *es) {
14302
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
14303
 
    sons[5] = e; sons[6] = es; 
 
16629
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
16630
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
16631
    AddSon (sons[6], es); 
14304
16632
  }
 
16633
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14305
16634
  static const char *NodeId ();
 
16635
  /** Get the name of the node. Can be compared with NodeId(). */
14306
16636
  const char *NodeName () const { return NodeId (); }
 
16637
  /** Get the number of sons. */
14307
16638
  int Sons () const { return 7; }
 
16639
  /** Get the n-th son.
 
16640
   *  \param n The index of the son.
 
16641
   *  \return The n-th son or NULL. */
14308
16642
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
14309
16643
  CTree *Condition () const { return sons[2]; }
14310
16644
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
14311
16645
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
16646
  /** Replace a son.
 
16647
   *  \param old_son The son to replace.
 
16648
   *  \param new_son The new son. */
14312
16649
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14313
16650
    CTree::ReplaceSon (sons, 7, old_son, new_son);
14314
16651
  }
 
16652
  CSemScope *SemScope () const { return (CSemScope*)this; }
14315
16653
};
14316
16654
 
14317
16655
 
14318
 
#line 14319 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16656
#line 16657 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14319
16657
} // closed Puma
 
16658
class CCExprResolve;
 
16659
class CExprResolve;
14320
16660
class WinIfExists;
14321
16661
class WinImportHandler;
14322
16662
class WinMacros;
14323
 
class CMatchSyntax;
14324
 
class ExtGnu;
 
16663
class WinAsm;
 
16664
class WinDeclSpecs;
 
16665
class WinMemberExplSpec;
 
16666
class WinTypeKeywords;
 
16667
class WinFriend;
14325
16668
class ExtAC;
14326
16669
class ExtACBuilderCoupling;
14327
16670
class ExtACSyntaxCoupling;
14328
16671
class ExtACTree;
14329
16672
class ExtACKeywords;
14330
 
class WinAsm;
14331
 
class WinDeclSpecs;
14332
 
class WinMemberExplSpec;
14333
 
class WinTypeKeywords;
 
16673
class ExtGnu;
14334
16674
class PragmaOnceUnitState;
14335
16675
class PragmaOnce;
14336
 
class CCExprResolve;
14337
 
class CExprResolve;
 
16676
class CMatchSyntax;
14338
16677
namespace Puma {
14339
16678
 
14340
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16679
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14341
16680
class CT_BreakStmt : public CT_Statement {
14342
 
#line 14343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16681
#line 16682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
16682
  friend class ::CCExprResolve;
 
16683
  friend class ::CExprResolve;
14343
16684
  friend class ::WinIfExists;
14344
16685
  friend class ::WinImportHandler;
14345
16686
  friend class ::WinMacros;
14346
 
  friend class ::CMatchSyntax;
14347
 
  friend class ::ExtGnu;
 
16687
  friend class ::WinAsm;
 
16688
  friend class ::WinDeclSpecs;
 
16689
  friend class ::WinMemberExplSpec;
 
16690
  friend class ::WinTypeKeywords;
 
16691
  friend class ::WinFriend;
14348
16692
  friend class ::ExtAC;
14349
16693
  friend class ::ExtACBuilderCoupling;
14350
16694
  friend class ::ExtACSyntaxCoupling;
14351
16695
  friend class ::ExtACTree;
14352
16696
  friend class ::ExtACKeywords;
14353
 
  friend class ::WinAsm;
14354
 
  friend class ::WinDeclSpecs;
14355
 
  friend class ::WinMemberExplSpec;
14356
 
  friend class ::WinTypeKeywords;
 
16697
  friend class ::ExtGnu;
14357
16698
  friend class ::PragmaOnceUnitState;
14358
16699
  friend class ::PragmaOnce;
14359
 
  friend class ::CCExprResolve;
14360
 
  friend class ::CExprResolve;
 
16700
  friend class ::CMatchSyntax;
14361
16701
 
14362
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16702
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14363
16703
 
14364
16704
  CTree *sons[2]; // key, semi_colon
14365
16705
 
14366
16706
public:
14367
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
16707
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
16708
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14368
16709
  static const char *NodeId ();
 
16710
  /** Get the name of the node. Can be compared with NodeId(). */
14369
16711
  const char *NodeName () const { return NodeId (); }
 
16712
  /** Get the number of sons. */
14370
16713
  int Sons () const { return 2; }
 
16714
  /** Get the n-th son.
 
16715
   *  \param n The index of the son.
 
16716
   *  \return The n-th son or NULL. */
14371
16717
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
16718
  /** Replace a son.
 
16719
   *  \param old_son The son to replace.
 
16720
   *  \param new_son The new son. */
14372
16721
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14373
16722
    CTree::ReplaceSon (sons, 2, old_son, new_son);
14374
16723
  }
14375
16724
};
14376
16725
 
14377
16726
 
14378
 
#line 14379 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16727
#line 16728 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14379
16728
} // closed Puma
 
16729
class CCExprResolve;
 
16730
class CExprResolve;
14380
16731
class WinIfExists;
14381
16732
class WinImportHandler;
14382
16733
class WinMacros;
14383
 
class CMatchSyntax;
14384
 
class ExtGnu;
 
16734
class WinAsm;
 
16735
class WinDeclSpecs;
 
16736
class WinMemberExplSpec;
 
16737
class WinTypeKeywords;
 
16738
class WinFriend;
14385
16739
class ExtAC;
14386
16740
class ExtACBuilderCoupling;
14387
16741
class ExtACSyntaxCoupling;
14388
16742
class ExtACTree;
14389
16743
class ExtACKeywords;
14390
 
class WinAsm;
14391
 
class WinDeclSpecs;
14392
 
class WinMemberExplSpec;
14393
 
class WinTypeKeywords;
 
16744
class ExtGnu;
14394
16745
class PragmaOnceUnitState;
14395
16746
class PragmaOnce;
14396
 
class CCExprResolve;
14397
 
class CExprResolve;
 
16747
class CMatchSyntax;
14398
16748
namespace Puma {
14399
16749
 
14400
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16750
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14401
16751
class CT_ContinueStmt : public CT_Statement {
14402
 
#line 14403 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16752
#line 16753 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
16753
  friend class ::CCExprResolve;
 
16754
  friend class ::CExprResolve;
14403
16755
  friend class ::WinIfExists;
14404
16756
  friend class ::WinImportHandler;
14405
16757
  friend class ::WinMacros;
14406
 
  friend class ::CMatchSyntax;
14407
 
  friend class ::ExtGnu;
 
16758
  friend class ::WinAsm;
 
16759
  friend class ::WinDeclSpecs;
 
16760
  friend class ::WinMemberExplSpec;
 
16761
  friend class ::WinTypeKeywords;
 
16762
  friend class ::WinFriend;
14408
16763
  friend class ::ExtAC;
14409
16764
  friend class ::ExtACBuilderCoupling;
14410
16765
  friend class ::ExtACSyntaxCoupling;
14411
16766
  friend class ::ExtACTree;
14412
16767
  friend class ::ExtACKeywords;
14413
 
  friend class ::WinAsm;
14414
 
  friend class ::WinDeclSpecs;
14415
 
  friend class ::WinMemberExplSpec;
14416
 
  friend class ::WinTypeKeywords;
 
16768
  friend class ::ExtGnu;
14417
16769
  friend class ::PragmaOnceUnitState;
14418
16770
  friend class ::PragmaOnce;
14419
 
  friend class ::CCExprResolve;
14420
 
  friend class ::CExprResolve;
 
16771
  friend class ::CMatchSyntax;
14421
16772
 
14422
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16773
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14423
16774
 
14424
16775
  CTree *sons[2]; // key, semi_colon
14425
16776
 
14426
16777
public:
14427
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
16778
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
16779
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14428
16780
  static const char *NodeId ();
 
16781
  /** Get the name of the node. Can be compared with NodeId(). */
14429
16782
  const char *NodeName () const { return NodeId (); }
 
16783
  /** Get the number of sons. */
14430
16784
  int Sons () const { return 2; }
 
16785
  /** Get the n-th son.
 
16786
   *  \param n The index of the son.
 
16787
   *  \return The n-th son or NULL. */
14431
16788
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
16789
  /** Replace a son.
 
16790
   *  \param old_son The son to replace.
 
16791
   *  \param new_son The new son. */
14432
16792
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14433
16793
    CTree::ReplaceSon (sons, 2, old_son, new_son);
14434
16794
  }
14435
16795
};
14436
16796
 
14437
16797
 
14438
 
#line 14439 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16798
#line 16799 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14439
16799
} // closed Puma
 
16800
class CCExprResolve;
 
16801
class CExprResolve;
14440
16802
class WinIfExists;
14441
16803
class WinImportHandler;
14442
16804
class WinMacros;
14443
 
class CMatchSyntax;
14444
 
class ExtGnu;
 
16805
class WinAsm;
 
16806
class WinDeclSpecs;
 
16807
class WinMemberExplSpec;
 
16808
class WinTypeKeywords;
 
16809
class WinFriend;
14445
16810
class ExtAC;
14446
16811
class ExtACBuilderCoupling;
14447
16812
class ExtACSyntaxCoupling;
14448
16813
class ExtACTree;
14449
16814
class ExtACKeywords;
14450
 
class WinAsm;
14451
 
class WinDeclSpecs;
14452
 
class WinMemberExplSpec;
14453
 
class WinTypeKeywords;
 
16815
class ExtGnu;
14454
16816
class PragmaOnceUnitState;
14455
16817
class PragmaOnce;
14456
 
class CCExprResolve;
14457
 
class CExprResolve;
 
16818
class CMatchSyntax;
14458
16819
namespace Puma {
14459
16820
 
14460
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16821
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14461
16822
class CT_GotoStmt : public CT_Statement {
14462
 
#line 14463 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16823
#line 16824 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
16824
  friend class ::CCExprResolve;
 
16825
  friend class ::CExprResolve;
14463
16826
  friend class ::WinIfExists;
14464
16827
  friend class ::WinImportHandler;
14465
16828
  friend class ::WinMacros;
14466
 
  friend class ::CMatchSyntax;
14467
 
  friend class ::ExtGnu;
 
16829
  friend class ::WinAsm;
 
16830
  friend class ::WinDeclSpecs;
 
16831
  friend class ::WinMemberExplSpec;
 
16832
  friend class ::WinTypeKeywords;
 
16833
  friend class ::WinFriend;
14468
16834
  friend class ::ExtAC;
14469
16835
  friend class ::ExtACBuilderCoupling;
14470
16836
  friend class ::ExtACSyntaxCoupling;
14471
16837
  friend class ::ExtACTree;
14472
16838
  friend class ::ExtACKeywords;
14473
 
  friend class ::WinAsm;
14474
 
  friend class ::WinDeclSpecs;
14475
 
  friend class ::WinMemberExplSpec;
14476
 
  friend class ::WinTypeKeywords;
 
16839
  friend class ::ExtGnu;
14477
16840
  friend class ::PragmaOnceUnitState;
14478
16841
  friend class ::PragmaOnce;
14479
 
  friend class ::CCExprResolve;
14480
 
  friend class ::CExprResolve;
 
16842
  friend class ::CMatchSyntax;
14481
16843
 
14482
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16844
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14483
16845
 
14484
16846
  CTree *sons[3]; // key, label, semi_colon
14485
16847
 
14486
16848
public:
14487
16849
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
14488
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
16850
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
14489
16851
  }
 
16852
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14490
16853
  static const char *NodeId ();
 
16854
  /** Get the name of the node. Can be compared with NodeId(). */
14491
16855
  const char *NodeName () const { return NodeId (); }
 
16856
  /** Get the number of sons. */
14492
16857
  int Sons () const { return 3; }
 
16858
  /** Get the n-th son.
 
16859
   *  \param n The index of the son.
 
16860
   *  \return The n-th son or NULL. */
14493
16861
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
14494
16862
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
16863
  /** Replace a son.
 
16864
   *  \param old_son The son to replace.
 
16865
   *  \param new_son The new son. */
14495
16866
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14496
16867
    CTree::ReplaceSon (sons, 3, old_son, new_son);
14497
16868
  }
14498
16869
};
14499
16870
 
14500
16871
 
14501
 
#line 14502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16872
#line 16873 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14502
16873
} // closed Puma
 
16874
class CCExprResolve;
 
16875
class CExprResolve;
14503
16876
class WinIfExists;
14504
16877
class WinImportHandler;
14505
16878
class WinMacros;
14506
 
class CMatchSyntax;
14507
 
class ExtGnu;
 
16879
class WinAsm;
 
16880
class WinDeclSpecs;
 
16881
class WinMemberExplSpec;
 
16882
class WinTypeKeywords;
 
16883
class WinFriend;
14508
16884
class ExtAC;
14509
16885
class ExtACBuilderCoupling;
14510
16886
class ExtACSyntaxCoupling;
14511
16887
class ExtACTree;
14512
16888
class ExtACKeywords;
14513
 
class WinAsm;
14514
 
class WinDeclSpecs;
14515
 
class WinMemberExplSpec;
14516
 
class WinTypeKeywords;
 
16889
class ExtGnu;
14517
16890
class PragmaOnceUnitState;
14518
16891
class PragmaOnce;
14519
 
class CCExprResolve;
14520
 
class CExprResolve;
 
16892
class CMatchSyntax;
14521
16893
namespace Puma {
14522
16894
 
14523
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16895
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14524
16896
class CT_ReturnStmt : public CT_Statement {
14525
 
#line 14526 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16897
#line 16898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
16898
  friend class ::CCExprResolve;
 
16899
  friend class ::CExprResolve;
14526
16900
  friend class ::WinIfExists;
14527
16901
  friend class ::WinImportHandler;
14528
16902
  friend class ::WinMacros;
14529
 
  friend class ::CMatchSyntax;
14530
 
  friend class ::ExtGnu;
 
16903
  friend class ::WinAsm;
 
16904
  friend class ::WinDeclSpecs;
 
16905
  friend class ::WinMemberExplSpec;
 
16906
  friend class ::WinTypeKeywords;
 
16907
  friend class ::WinFriend;
14531
16908
  friend class ::ExtAC;
14532
16909
  friend class ::ExtACBuilderCoupling;
14533
16910
  friend class ::ExtACSyntaxCoupling;
14534
16911
  friend class ::ExtACTree;
14535
16912
  friend class ::ExtACKeywords;
14536
 
  friend class ::WinAsm;
14537
 
  friend class ::WinDeclSpecs;
14538
 
  friend class ::WinMemberExplSpec;
14539
 
  friend class ::WinTypeKeywords;
 
16913
  friend class ::ExtGnu;
14540
16914
  friend class ::PragmaOnceUnitState;
14541
16915
  friend class ::PragmaOnce;
14542
 
  friend class ::CCExprResolve;
14543
 
  friend class ::CExprResolve;
 
16916
  friend class ::CMatchSyntax;
14544
16917
 
14545
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16918
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14546
16919
 
14547
16920
  CTree *sons[3]; // key, expr, semi_colon
14548
16921
 
14549
16922
public:
14550
16923
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
14551
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
16924
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
14552
16925
  }
 
16926
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14553
16927
  static const char *NodeId ();
 
16928
  /** Get the name of the node. Can be compared with NodeId(). */
14554
16929
  const char *NodeName () const { return NodeId (); }
 
16930
  /** Get the number of sons. */
14555
16931
  int Sons () const { return CTree::Sons (sons, 3); }
 
16932
  /** Get the n-th son.
 
16933
   *  \param n The index of the son.
 
16934
   *  \return The n-th son or NULL. */
14556
16935
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
14557
16936
  CTree *Expr () const { return sons[1]; }
 
16937
  /** Replace a son.
 
16938
   *  \param old_son The son to replace.
 
16939
   *  \param new_son The new son. */
14558
16940
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14559
16941
    CTree::ReplaceSon (sons, 3, old_son, new_son);
14560
16942
  }
14561
16943
};
14562
16944
 
14563
16945
 
14564
 
#line 14565 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16946
#line 16947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14565
16947
} // closed Puma
 
16948
class CCExprResolve;
 
16949
class CExprResolve;
14566
16950
class WinIfExists;
14567
16951
class WinImportHandler;
14568
16952
class WinMacros;
14569
 
class CMatchSyntax;
14570
 
class ExtGnu;
 
16953
class WinAsm;
 
16954
class WinDeclSpecs;
 
16955
class WinMemberExplSpec;
 
16956
class WinTypeKeywords;
 
16957
class WinFriend;
14571
16958
class ExtAC;
14572
16959
class ExtACBuilderCoupling;
14573
16960
class ExtACSyntaxCoupling;
14574
16961
class ExtACTree;
14575
16962
class ExtACKeywords;
14576
 
class WinAsm;
14577
 
class WinDeclSpecs;
14578
 
class WinMemberExplSpec;
14579
 
class WinTypeKeywords;
 
16963
class ExtGnu;
14580
16964
class PragmaOnceUnitState;
14581
16965
class PragmaOnce;
14582
 
class CCExprResolve;
14583
 
class CExprResolve;
 
16966
class CMatchSyntax;
14584
16967
namespace Puma {
14585
16968
 
14586
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16969
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14587
16970
class CT_WhileStmt : public CT_Statement, public CSemScope {
14588
 
#line 14589 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
16971
#line 16972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
16972
  friend class ::CCExprResolve;
 
16973
  friend class ::CExprResolve;
14589
16974
  friend class ::WinIfExists;
14590
16975
  friend class ::WinImportHandler;
14591
16976
  friend class ::WinMacros;
14592
 
  friend class ::CMatchSyntax;
14593
 
  friend class ::ExtGnu;
 
16977
  friend class ::WinAsm;
 
16978
  friend class ::WinDeclSpecs;
 
16979
  friend class ::WinMemberExplSpec;
 
16980
  friend class ::WinTypeKeywords;
 
16981
  friend class ::WinFriend;
14594
16982
  friend class ::ExtAC;
14595
16983
  friend class ::ExtACBuilderCoupling;
14596
16984
  friend class ::ExtACSyntaxCoupling;
14597
16985
  friend class ::ExtACTree;
14598
16986
  friend class ::ExtACKeywords;
14599
 
  friend class ::WinAsm;
14600
 
  friend class ::WinDeclSpecs;
14601
 
  friend class ::WinMemberExplSpec;
14602
 
  friend class ::WinTypeKeywords;
 
16987
  friend class ::ExtGnu;
14603
16988
  friend class ::PragmaOnceUnitState;
14604
16989
  friend class ::PragmaOnce;
14605
 
  friend class ::CCExprResolve;
14606
 
  friend class ::CExprResolve;
 
16990
  friend class ::CMatchSyntax;
14607
16991
 
14608
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
16992
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14609
16993
 
14610
16994
  CTree *sons[5]; // key, open, cond, close, stmt
14611
16995
 
14612
16996
public:
14613
16997
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
14614
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
16998
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
16999
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
14615
17000
  }
 
17001
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14616
17002
  static const char *NodeId ();
 
17003
  /** Get the name of the node. Can be compared with NodeId(). */
14617
17004
  const char *NodeName () const { return NodeId (); }
 
17005
  /** Get the number of sons. */
14618
17006
  int Sons () const { return 5; }
 
17007
  /** Get the n-th son.
 
17008
   *  \param n The index of the son.
 
17009
   *  \return The n-th son or NULL. */
14619
17010
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
14620
17011
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
14621
17012
  CTree *Condition () const { return sons[2]; }
 
17013
  /** Replace a son.
 
17014
   *  \param old_son The son to replace.
 
17015
   *  \param new_son The new son. */
14622
17016
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14623
17017
    CTree::ReplaceSon (sons, 5, old_son, new_son);
14624
17018
  }
 
17019
  CSemScope *SemScope () const { return (CSemScope*)this; }
14625
17020
};
14626
17021
 
14627
17022
 
14628
 
#line 14629 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17023
#line 17024 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14629
17024
} // closed Puma
 
17025
class CCExprResolve;
 
17026
class CExprResolve;
14630
17027
class WinIfExists;
14631
17028
class WinImportHandler;
14632
17029
class WinMacros;
14633
 
class CMatchSyntax;
14634
 
class ExtGnu;
 
17030
class WinAsm;
 
17031
class WinDeclSpecs;
 
17032
class WinMemberExplSpec;
 
17033
class WinTypeKeywords;
 
17034
class WinFriend;
14635
17035
class ExtAC;
14636
17036
class ExtACBuilderCoupling;
14637
17037
class ExtACSyntaxCoupling;
14638
17038
class ExtACTree;
14639
17039
class ExtACKeywords;
14640
 
class WinAsm;
14641
 
class WinDeclSpecs;
14642
 
class WinMemberExplSpec;
14643
 
class WinTypeKeywords;
 
17040
class ExtGnu;
14644
17041
class PragmaOnceUnitState;
14645
17042
class PragmaOnce;
14646
 
class CCExprResolve;
14647
 
class CExprResolve;
 
17043
class CMatchSyntax;
14648
17044
namespace Puma {
14649
17045
 
14650
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17046
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14651
17047
class CT_DoStmt : public CT_Statement {
14652
 
#line 14653 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17048
#line 17049 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17049
  friend class ::CCExprResolve;
 
17050
  friend class ::CExprResolve;
14653
17051
  friend class ::WinIfExists;
14654
17052
  friend class ::WinImportHandler;
14655
17053
  friend class ::WinMacros;
14656
 
  friend class ::CMatchSyntax;
14657
 
  friend class ::ExtGnu;
 
17054
  friend class ::WinAsm;
 
17055
  friend class ::WinDeclSpecs;
 
17056
  friend class ::WinMemberExplSpec;
 
17057
  friend class ::WinTypeKeywords;
 
17058
  friend class ::WinFriend;
14658
17059
  friend class ::ExtAC;
14659
17060
  friend class ::ExtACBuilderCoupling;
14660
17061
  friend class ::ExtACSyntaxCoupling;
14661
17062
  friend class ::ExtACTree;
14662
17063
  friend class ::ExtACKeywords;
14663
 
  friend class ::WinAsm;
14664
 
  friend class ::WinDeclSpecs;
14665
 
  friend class ::WinMemberExplSpec;
14666
 
  friend class ::WinTypeKeywords;
 
17064
  friend class ::ExtGnu;
14667
17065
  friend class ::PragmaOnceUnitState;
14668
17066
  friend class ::PragmaOnce;
14669
 
  friend class ::CCExprResolve;
14670
 
  friend class ::CExprResolve;
 
17067
  friend class ::CMatchSyntax;
14671
17068
 
14672
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17069
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14673
17070
 
14674
17071
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
14675
17072
 
14676
17073
public:
14677
17074
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
14678
17075
             CTree *c, CTree *sc) {
14679
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
14680
 
    sons[5] = c; sons[6] = sc; 
 
17076
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
17077
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
17078
    AddSon (sons[6], sc); 
14681
17079
  }
 
17080
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14682
17081
  static const char *NodeId ();
 
17082
  /** Get the name of the node. Can be compared with NodeId(). */
14683
17083
  const char *NodeName () const { return NodeId (); }
 
17084
  /** Get the number of sons. */
14684
17085
  int Sons () const { return 7; }
 
17086
  /** Get the n-th son.
 
17087
   *  \param n The index of the son.
 
17088
   *  \return The n-th son or NULL. */
14685
17089
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
14686
17090
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
14687
17091
  CTree *Expr () const { return sons[4]; }
 
17092
  /** Replace a son.
 
17093
   *  \param old_son The son to replace.
 
17094
   *  \param new_son The new son. */
14688
17095
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14689
17096
    CTree::ReplaceSon (sons, 7, old_son, new_son);
14690
17097
  }
14691
17098
};
14692
17099
 
14693
17100
 
14694
 
#line 14695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17101
#line 17102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14695
17102
} // closed Puma
 
17103
class CCExprResolve;
 
17104
class CExprResolve;
14696
17105
class WinIfExists;
14697
17106
class WinImportHandler;
14698
17107
class WinMacros;
14699
 
class CMatchSyntax;
14700
 
class ExtGnu;
 
17108
class WinAsm;
 
17109
class WinDeclSpecs;
 
17110
class WinMemberExplSpec;
 
17111
class WinTypeKeywords;
 
17112
class WinFriend;
14701
17113
class ExtAC;
14702
17114
class ExtACBuilderCoupling;
14703
17115
class ExtACSyntaxCoupling;
14704
17116
class ExtACTree;
14705
17117
class ExtACKeywords;
14706
 
class WinAsm;
14707
 
class WinDeclSpecs;
14708
 
class WinMemberExplSpec;
14709
 
class WinTypeKeywords;
 
17118
class ExtGnu;
14710
17119
class PragmaOnceUnitState;
14711
17120
class PragmaOnce;
14712
 
class CCExprResolve;
14713
 
class CExprResolve;
 
17121
class CMatchSyntax;
14714
17122
namespace Puma {
14715
17123
 
14716
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17124
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14717
17125
class CT_ForStmt : public CT_Statement, public CSemScope {
14718
 
#line 14719 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17126
#line 17127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17127
  friend class ::CCExprResolve;
 
17128
  friend class ::CExprResolve;
14719
17129
  friend class ::WinIfExists;
14720
17130
  friend class ::WinImportHandler;
14721
17131
  friend class ::WinMacros;
14722
 
  friend class ::CMatchSyntax;
14723
 
  friend class ::ExtGnu;
 
17132
  friend class ::WinAsm;
 
17133
  friend class ::WinDeclSpecs;
 
17134
  friend class ::WinMemberExplSpec;
 
17135
  friend class ::WinTypeKeywords;
 
17136
  friend class ::WinFriend;
14724
17137
  friend class ::ExtAC;
14725
17138
  friend class ::ExtACBuilderCoupling;
14726
17139
  friend class ::ExtACSyntaxCoupling;
14727
17140
  friend class ::ExtACTree;
14728
17141
  friend class ::ExtACKeywords;
14729
 
  friend class ::WinAsm;
14730
 
  friend class ::WinDeclSpecs;
14731
 
  friend class ::WinMemberExplSpec;
14732
 
  friend class ::WinTypeKeywords;
 
17142
  friend class ::ExtGnu;
14733
17143
  friend class ::PragmaOnceUnitState;
14734
17144
  friend class ::PragmaOnce;
14735
 
  friend class ::CCExprResolve;
14736
 
  friend class ::CExprResolve;
 
17145
  friend class ::CMatchSyntax;
14737
17146
 
14738
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17147
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14739
17148
 
14740
17149
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
14741
17150
 
14742
17151
public:
14743
17152
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
14744
17153
              CTree *e, CTree *c, CTree *stmt) {
14745
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
14746
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
17154
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
17155
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
17156
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
14747
17157
  }
 
17158
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14748
17159
  static const char *NodeId ();
 
17160
  /** Get the name of the node. Can be compared with NodeId(). */
14749
17161
  const char *NodeName () const { return NodeId (); }
 
17162
  /** Get the number of sons. */
14750
17163
  int Sons () const { return CTree::Sons (sons, 8); }
 
17164
  /** Get the n-th son.
 
17165
   *  \param n The index of the son.
 
17166
   *  \return The n-th son or NULL. */
14751
17167
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
14752
17168
  CTree *InitStmt () const { return sons[2]; }
14753
17169
  CTree *Condition () const { return sons[3]; }
14754
17170
  CTree *Expr () const { return sons[5]; }
14755
17171
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
17172
  /** Replace a son.
 
17173
   *  \param old_son The son to replace.
 
17174
   *  \param new_son The new son. */
14756
17175
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14757
17176
    CTree::ReplaceSon (sons, 8, old_son, new_son);
14758
17177
  }
 
17178
  CSemScope *SemScope () const { return (CSemScope*)this; }
14759
17179
};
14760
17180
 
14761
17181
 
14762
 
#line 14763 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17182
#line 17183 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14763
17183
} // closed Puma
 
17184
class CCExprResolve;
 
17185
class CExprResolve;
14764
17186
class WinIfExists;
14765
17187
class WinImportHandler;
14766
17188
class WinMacros;
14767
 
class CMatchSyntax;
14768
 
class ExtGnu;
 
17189
class WinAsm;
 
17190
class WinDeclSpecs;
 
17191
class WinMemberExplSpec;
 
17192
class WinTypeKeywords;
 
17193
class WinFriend;
14769
17194
class ExtAC;
14770
17195
class ExtACBuilderCoupling;
14771
17196
class ExtACSyntaxCoupling;
14772
17197
class ExtACTree;
14773
17198
class ExtACKeywords;
14774
 
class WinAsm;
14775
 
class WinDeclSpecs;
14776
 
class WinMemberExplSpec;
14777
 
class WinTypeKeywords;
 
17199
class ExtGnu;
14778
17200
class PragmaOnceUnitState;
14779
17201
class PragmaOnce;
14780
 
class CCExprResolve;
14781
 
class CExprResolve;
 
17202
class CMatchSyntax;
14782
17203
namespace Puma {
14783
17204
 
14784
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17205
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14785
17206
class CT_Condition : public CT_Decl, public CSemObject {
14786
 
#line 14787 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17207
#line 17208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17208
  friend class ::CCExprResolve;
 
17209
  friend class ::CExprResolve;
14787
17210
  friend class ::WinIfExists;
14788
17211
  friend class ::WinImportHandler;
14789
17212
  friend class ::WinMacros;
14790
 
  friend class ::CMatchSyntax;
14791
 
  friend class ::ExtGnu;
 
17213
  friend class ::WinAsm;
 
17214
  friend class ::WinDeclSpecs;
 
17215
  friend class ::WinMemberExplSpec;
 
17216
  friend class ::WinTypeKeywords;
 
17217
  friend class ::WinFriend;
14792
17218
  friend class ::ExtAC;
14793
17219
  friend class ::ExtACBuilderCoupling;
14794
17220
  friend class ::ExtACSyntaxCoupling;
14795
17221
  friend class ::ExtACTree;
14796
17222
  friend class ::ExtACKeywords;
14797
 
  friend class ::WinAsm;
14798
 
  friend class ::WinDeclSpecs;
14799
 
  friend class ::WinMemberExplSpec;
14800
 
  friend class ::WinTypeKeywords;
 
17223
  friend class ::ExtGnu;
14801
17224
  friend class ::PragmaOnceUnitState;
14802
17225
  friend class ::PragmaOnce;
14803
 
  friend class ::CCExprResolve;
14804
 
  friend class ::CExprResolve;
 
17226
  friend class ::CMatchSyntax;
14805
17227
 
14806
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17228
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14807
17229
 
14808
17230
  CTree *sons[3]; // declspecs, declarator, init
14809
17231
 
14810
17232
public:
14811
17233
  CT_Condition (CTree *dsl, CTree *d) {
14812
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
17234
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
14813
17235
  }
 
17236
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14814
17237
  static const char *NodeId ();
 
17238
  /** Get the name of the node. Can be compared with NodeId(). */
14815
17239
  const char *NodeName () const { return NodeId (); }
 
17240
  /** Get the number of sons. */
14816
17241
  int Sons () const { return CTree::Sons (sons, 3); }
 
17242
  /** Get the n-th son.
 
17243
   *  \param n The index of the son.
 
17244
   *  \return The n-th son or NULL. */
14817
17245
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
14818
17246
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
14819
17247
  CTree *Declarator () const { return sons[1]; }
14820
17248
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
14821
17249
  CSemObject *SemObject () const { return (CSemObject*)this; }
14822
 
  void Initializer (CTree *i) { sons[2] = i; }
 
17250
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
17251
  /** Replace a son.
 
17252
   *  \param old_son The son to replace.
 
17253
   *  \param new_son The new son. */
14823
17254
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
14824
17255
    CTree::ReplaceSon (sons, 3, old_son, new_son);
14825
17256
  }
14832
17263
/*****************************************************************************/
14833
17264
 
14834
17265
 
14835
 
#line 14836 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17266
#line 17267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14836
17267
} // closed Puma
 
17268
class CCExprResolve;
 
17269
class CExprResolve;
14837
17270
class WinIfExists;
14838
17271
class WinImportHandler;
14839
17272
class WinMacros;
14840
 
class CMatchSyntax;
14841
 
class ExtGnu;
 
17273
class WinAsm;
 
17274
class WinDeclSpecs;
 
17275
class WinMemberExplSpec;
 
17276
class WinTypeKeywords;
 
17277
class WinFriend;
14842
17278
class ExtAC;
14843
17279
class ExtACBuilderCoupling;
14844
17280
class ExtACSyntaxCoupling;
14845
17281
class ExtACTree;
14846
17282
class ExtACKeywords;
 
17283
class ExtGnu;
 
17284
class PragmaOnceUnitState;
 
17285
class PragmaOnce;
 
17286
class CMatchSyntax;
 
17287
namespace Puma {
 
17288
 
 
17289
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17290
 
 
17291
#line 17292 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17292
} // closed Puma
 
17293
 
 
17294
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
17295
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
17296
 
 
17297
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17298
// This file is part of PUMA.
 
17299
// Copyright (C) 1999-2003  The PUMA developer team.
 
17300
//                                                                
 
17301
// This program is free software;  you can redistribute it and/or 
 
17302
// modify it under the terms of the GNU General Public License as 
 
17303
// published by the Free Software Foundation; either version 2 of 
 
17304
// the License, or (at your option) any later version.            
 
17305
//                                                                
 
17306
// This program is distributed in the hope that it will be useful,
 
17307
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
17308
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
17309
// GNU General Public License for more details.                   
 
17310
//                                                                
 
17311
// You should have received a copy of the GNU General Public      
 
17312
// License along with this program; if not, write to the Free     
 
17313
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
17314
// MA  02111-1307  USA                                            
 
17315
 
 
17316
#ifndef __ExtACTree_ah__
 
17317
#define __ExtACTree_ah__
 
17318
 
 
17319
// TODO:
 
17320
// this shall be introduced by the ExtAC aspect as soon as the include cycle
 
17321
// problem is solved!
 
17322
 
 
17323
namespace Puma {
 
17324
  class CTree;
 
17325
}
 
17326
 
 
17327
 
 
17328
#line 17329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17329
class CCExprResolve;
 
17330
class CExprResolve;
 
17331
class WinIfExists;
 
17332
class WinImportHandler;
 
17333
class WinMacros;
14847
17334
class WinAsm;
14848
17335
class WinDeclSpecs;
14849
17336
class WinMemberExplSpec;
14850
17337
class WinTypeKeywords;
 
17338
class WinFriend;
 
17339
class ExtAC;
 
17340
class ExtACBuilderCoupling;
 
17341
class ExtACSyntaxCoupling;
 
17342
class ExtACKeywords;
 
17343
class ExtGnu;
14851
17344
class PragmaOnceUnitState;
14852
17345
class PragmaOnce;
14853
 
class CCExprResolve;
14854
 
class CExprResolve;
 
17346
class CMatchSyntax;
 
17347
 
 
17348
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17349
class ExtACTree {
 
17350
#line 17351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17351
 
 
17352
public:
 
17353
  static ExtACTree *aspectof () {
 
17354
    static ExtACTree __instance;
 
17355
    return &__instance;
 
17356
  }
 
17357
  static ExtACTree *aspectOf () {
 
17358
    return aspectof ();
 
17359
  }
 
17360
private:
 
17361
 
 
17362
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17363
 
 
17364
#line 17365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17365
  friend class ::CCExprResolve;
 
17366
  friend class ::CExprResolve;
 
17367
  friend class ::WinIfExists;
 
17368
  friend class ::WinImportHandler;
 
17369
  friend class ::WinMacros;
 
17370
  friend class ::WinAsm;
 
17371
  friend class ::WinDeclSpecs;
 
17372
  friend class ::WinMemberExplSpec;
 
17373
  friend class ::WinTypeKeywords;
 
17374
  friend class ::WinFriend;
 
17375
  friend class ::ExtAC;
 
17376
  friend class ::ExtACBuilderCoupling;
 
17377
  friend class ::ExtACSyntaxCoupling;
 
17378
  friend class ::ExtACKeywords;
 
17379
  friend class ::ExtGnu;
 
17380
  friend class ::PragmaOnceUnitState;
 
17381
  friend class ::PragmaOnce;
 
17382
  friend class ::CMatchSyntax;
 
17383
 
 
17384
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17385
 
 
17386
  
 
17387
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17388
 
 
17389
  
 
17390
  // implemented in a separate .cc file, because Builder.h is needed!
 
17391
  void delete_tree (Puma::CTree *t);
 
17392
  
 
17393
  
 
17394
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17395
 
 
17396
  
 
17397
  
 
17398
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17399
 
 
17400
public: template<class JoinPoint> void __a0_after 
 
17401
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17402
 
 
17403
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17404
(JoinPoint *tjp)
 
17405
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17406
 {
 
17407
#line 17408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17408
 
 
17409
  typedef typename JoinPoint::That __JP_That;
 
17410
  typedef typename JoinPoint::Target __JP_Target;
 
17411
  typedef typename JoinPoint::Result __JP_Result;
 
17412
 
 
17413
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17414
 
 
17415
    tjp->that ()->_intro_members = 0;
 
17416
    tjp->that ()->_base_intros = 0;
 
17417
  }
 
17418
#line 17419 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17419
 
 
17420
private:
 
17421
 
 
17422
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17423
 
 
17424
  
 
17425
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17426
 
 
17427
public: template<class JoinPoint> void __a1_before 
 
17428
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17429
 
 
17430
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17431
(JoinPoint *tjp)
 
17432
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17433
 {
 
17434
#line 17435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17435
 
 
17436
  typedef typename JoinPoint::That __JP_That;
 
17437
  typedef typename JoinPoint::Target __JP_Target;
 
17438
  typedef typename JoinPoint::Result __JP_Result;
 
17439
 
 
17440
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17441
 
 
17442
    delete_tree (tjp->that ()->_intro_members);
 
17443
    delete_tree (tjp->that ()->_base_intros);
 
17444
  }
 
17445
#line 17446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17446
 
 
17447
private:
 
17448
 
 
17449
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17450
 
 
17451
};
 
17452
#line 17453 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17453
 
 
17454
namespace AC {
 
17455
  template <class JoinPoint>
 
17456
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp) {
 
17457
    ::ExtACTree::aspectof()->__a0_after (tjp);
 
17458
  }
 
17459
  template <class JoinPoint>
 
17460
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp) {
 
17461
    ::ExtACTree::aspectof()->__a1_before (tjp);
 
17462
  }
 
17463
 
17464
 
 
17465
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17466
 
 
17467
 
 
17468
#endif // __ExtACTree_ah__
 
17469
 
 
17470
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17471
#endif
14855
17472
namespace Puma {
14856
17473
 
14857
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17474
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14858
17475
class CT_ClassDef : public CT_Decl, public CSemObject {
14859
 
#line 14860 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17476
#line 17477 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17477
  friend class ::CCExprResolve;
 
17478
  friend class ::CExprResolve;
14860
17479
  friend class ::WinIfExists;
14861
17480
  friend class ::WinImportHandler;
14862
17481
  friend class ::WinMacros;
14863
 
  friend class ::CMatchSyntax;
14864
 
  friend class ::ExtGnu;
 
17482
  friend class ::WinAsm;
 
17483
  friend class ::WinDeclSpecs;
 
17484
  friend class ::WinMemberExplSpec;
 
17485
  friend class ::WinTypeKeywords;
 
17486
  friend class ::WinFriend;
14865
17487
  friend class ::ExtAC;
14866
17488
  friend class ::ExtACBuilderCoupling;
14867
17489
  friend class ::ExtACSyntaxCoupling;
14868
17490
  friend class ::ExtACTree;
14869
17491
  friend class ::ExtACKeywords;
14870
 
  friend class ::WinAsm;
14871
 
  friend class ::WinDeclSpecs;
14872
 
  friend class ::WinMemberExplSpec;
14873
 
  friend class ::WinTypeKeywords;
 
17492
  friend class ::ExtGnu;
14874
17493
  friend class ::PragmaOnceUnitState;
14875
17494
  friend class ::PragmaOnce;
14876
 
  friend class ::CCExprResolve;
14877
 
  friend class ::CExprResolve;
 
17495
  friend class ::CMatchSyntax;
14878
17496
 
14879
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17497
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14880
17498
 
14881
17499
   
14882
 
#line 14883 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17500
#line 17501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14883
17501
 
14884
17502
  struct __ac_wrapper_sons {
14885
17503
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
14894
17512
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
14895
17513
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
14896
17514
  } sons
14897
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17515
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14898
17516
 
14899
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17517
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14900
17518
; // key, name, bases, members
14901
17519
  CTree *obj_decl;
14902
17520
 
14903
17521
public:
14904
17522
  
14905
 
#line 14906 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
14906
 
 
14907
 
 
14908
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
14909
 
  typedef void Result;
14910
 
  typedef ::Puma::CT_ClassDef That;
14911
 
  typedef ::Puma::CT_ClassDef Target;
14912
 
  static const int JPID = 4;
 
17523
#line 17524 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17524
 
 
17525
 
 
17526
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
17527
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
17528
  typedef TResult Result;
 
17529
  typedef TThat   That;
 
17530
  typedef TTarget Target;
 
17531
  enum { ARGS = TArgs::ARGS };
 
17532
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
17533
  static const int JPID = 55;
14913
17534
  static const AC::JPType JPTYPE = (AC::JPType)16;
14914
17535
  struct Res {
14915
17536
    typedef void Type;
14916
17537
    typedef void ReferredType;
14917
17538
  };
14918
 
  enum { ARGS = 3 };
14919
 
  template <int I, int DUMMY = 0> struct Arg {
14920
 
    typedef void Type;
14921
 
    typedef void ReferredType;
14922
 
  };
14923
 
  template <int DUMMY> struct Arg<0, DUMMY> {
14924
 
    typedef ::Puma::CTree * Type;
14925
 
    typedef ::Puma::CTree * ReferredType;
14926
 
  };
14927
 
  template <int DUMMY> struct Arg<1, DUMMY> {
14928
 
    typedef ::Puma::CTree * Type;
14929
 
    typedef ::Puma::CTree * ReferredType;
14930
 
  };
14931
 
  template <int DUMMY> struct Arg<2, DUMMY> {
14932
 
    typedef ::Puma::CTree * Type;
14933
 
    typedef ::Puma::CTree * ReferredType;
14934
 
  };
14935
17539
 
14936
17540
  That *_that;
14937
17541
 
14940
17544
};
14941
17545
 
14942
17546
 
14943
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17547
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14944
17548
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
14945
 
#line 14946 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17549
#line 17550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
14946
17550
{
14947
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
14948
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
14949
 
this->__exec_old_C1(arg0, arg1, arg2);
14950
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
14951
 
 
 
17551
  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;
 
17552
    __TJP tjp;
 
17553
  tjp._that =  (__TJP::That*)this;
 
17554
    this->__exec_old_C1(arg0, arg1, arg2);
 
17555
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
17556
  
14952
17557
}
14953
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
14954
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17558
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
17559
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
14955
17560
{
14956
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
17561
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
17562
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
14957
17563
  }
 
17564
  /** Get the identifier for this node type. Can be compared with NodeName(). */
14958
17565
  static const char *NodeId ();
 
17566
  /** Get the name of the node. Can be compared with NodeId(). */
14959
17567
  const char *NodeName () const { return NodeId (); }
 
17568
  /** Get the number of sons. */
14960
17569
  int Sons () const { return CTree::Sons (sons, 4); }
 
17570
  /** Get the n-th son.
 
17571
   *  \param n The index of the son.
 
17572
   *  \return The n-th son or NULL. */
14961
17573
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
14962
17574
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
14963
17575
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
14964
17576
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
14965
17577
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
14966
17578
  CSemObject *SemObject () const { return (CSemObject*)this; }
14967
 
  void Members (CTree *m) { sons[3] = m; }
14968
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
14969
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
17579
  void Members (CTree *m) { AddSon (sons[3], m); }
 
17580
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
17581
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
17582
  /** Replace a son.
 
17583
   *  \param old_son The son to replace.
 
17584
   *  \param new_son The new son. */
14970
17585
  void ReplaceSon (CTree *old_son, CTree *new_son) {
14971
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
14972
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
17586
    CTree::ReplaceSon (sons, 4, old_son, new_son);
14973
17587
  }
14974
17588
   private:
14975
17589
 
14976
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
14977
 
 CTree * _intro_members ;
 
17590
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
17591
 Puma :: CTree * _intro_members ;
 
17592
Puma :: CTree * _base_intros ;
14978
17593
public :
14979
 
CTree * IntroMembers ( ) const { return _intro_members ; }
14980
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
14981
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
14982
 
 
14983
 
#line 14984 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
14984
 
 
14985
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
14986
 
  typedef void Result;
14987
 
  typedef ::Puma::CT_ClassDef That;
14988
 
  typedef ::Puma::CT_ClassDef Target;
14989
 
  static const int JPID = 4;
 
17594
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
17595
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
17596
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
17597
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
17598
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17599
 
 
17600
#line 17601 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17601
 
 
17602
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
17603
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
17604
  typedef TResult Result;
 
17605
  typedef TThat   That;
 
17606
  typedef TTarget Target;
 
17607
  enum { ARGS = TArgs::ARGS };
 
17608
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
17609
  static const int JPID = 6550;
14990
17610
  static const AC::JPType JPTYPE = (AC::JPType)16;
14991
17611
  struct Res {
14992
17612
    typedef void Type;
14993
17613
    typedef void ReferredType;
14994
17614
  };
14995
 
  enum { ARGS = 1 };
14996
 
  template <int I, int DUMMY = 0> struct Arg {
14997
 
    typedef void Type;
14998
 
    typedef void ReferredType;
14999
 
  };
15000
 
  template <int DUMMY> struct Arg<0, DUMMY> {
15001
 
    typedef const ::Puma::CT_ClassDef & Type;
15002
 
    typedef const ::Puma::CT_ClassDef ReferredType;
15003
 
  };
15004
17615
 
15005
17616
  That *_that;
15006
17617
 
15009
17620
};
15010
17621
 
15011
17622
 
15012
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17623
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15013
17624
 
15014
 
#line 15015 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17625
#line 17626 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15015
17626
 
15016
17627
public:
15017
 
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) {
15018
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
15019
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
15020
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
17628
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) {
 
17629
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
17630
  __TJP tjp;
 
17631
  tjp._that =  (__TJP::That*)this;
 
17632
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
15021
17633
 
15022
17634
}
15023
17635
 
15024
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
15025
 
 
15026
 
#line 15027 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
15027
 
 
15028
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
15029
 
  typedef void Result;
15030
 
  typedef ::Puma::CT_ClassDef That;
15031
 
  typedef ::Puma::CT_ClassDef Target;
15032
 
  static const int JPID = 4;
 
17636
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17637
 
 
17638
#line 17639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17639
 
 
17640
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
17641
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
17642
  typedef TResult Result;
 
17643
  typedef TThat   That;
 
17644
  typedef TTarget Target;
 
17645
  enum { ARGS = TArgs::ARGS };
 
17646
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
17647
  static const int JPID = 6548;
15033
17648
  static const AC::JPType JPTYPE = (AC::JPType)32;
15034
17649
  struct Res {
15035
17650
    typedef void Type;
15036
17651
    typedef void ReferredType;
15037
17652
  };
15038
 
  enum { ARGS = 0 };
15039
 
  template <int I, int DUMMY = 0> struct Arg {
15040
 
    typedef void Type;
15041
 
    typedef void ReferredType;
15042
 
  };
15043
17653
 
15044
17654
  That *_that;
15045
17655
 
15048
17658
};
15049
17659
 
15050
17660
 
15051
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17661
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15052
17662
 
15053
 
#line 15054 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17663
#line 17664 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15054
17664
 
15055
17665
public:
15056
17666
inline ~CT_ClassDef () {
15057
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
15058
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
15059
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
17667
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
17668
  __TJP tjp;
 
17669
  tjp._that =  (__TJP::That*)this;
 
17670
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
15060
17671
 
15061
17672
}
15062
17673
 
15063
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17674
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15064
17675
};
15065
17676
      
15066
17677
 
15067
 
#line 15068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17678
#line 17679 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15068
17679
} // closed Puma
 
17680
class CCExprResolve;
 
17681
class CExprResolve;
15069
17682
class WinIfExists;
15070
17683
class WinImportHandler;
15071
17684
class WinMacros;
15072
 
class CMatchSyntax;
15073
 
class ExtGnu;
 
17685
class WinAsm;
 
17686
class WinDeclSpecs;
 
17687
class WinMemberExplSpec;
 
17688
class WinTypeKeywords;
 
17689
class WinFriend;
15074
17690
class ExtAC;
15075
17691
class ExtACBuilderCoupling;
15076
17692
class ExtACSyntaxCoupling;
15077
17693
class ExtACTree;
15078
17694
class ExtACKeywords;
15079
 
class WinAsm;
15080
 
class WinDeclSpecs;
15081
 
class WinMemberExplSpec;
15082
 
class WinTypeKeywords;
 
17695
class ExtGnu;
15083
17696
class PragmaOnceUnitState;
15084
17697
class PragmaOnce;
15085
 
class CCExprResolve;
15086
 
class CExprResolve;
 
17698
class CMatchSyntax;
15087
17699
namespace Puma {
15088
17700
 
15089
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17701
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15090
17702
class CT_UnionDef : public CT_ClassDef {
15091
 
#line 15092 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17703
#line 17704 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17704
  friend class ::CCExprResolve;
 
17705
  friend class ::CExprResolve;
15092
17706
  friend class ::WinIfExists;
15093
17707
  friend class ::WinImportHandler;
15094
17708
  friend class ::WinMacros;
15095
 
  friend class ::CMatchSyntax;
15096
 
  friend class ::ExtGnu;
 
17709
  friend class ::WinAsm;
 
17710
  friend class ::WinDeclSpecs;
 
17711
  friend class ::WinMemberExplSpec;
 
17712
  friend class ::WinTypeKeywords;
 
17713
  friend class ::WinFriend;
15097
17714
  friend class ::ExtAC;
15098
17715
  friend class ::ExtACBuilderCoupling;
15099
17716
  friend class ::ExtACSyntaxCoupling;
15100
17717
  friend class ::ExtACTree;
15101
17718
  friend class ::ExtACKeywords;
15102
 
  friend class ::WinAsm;
15103
 
  friend class ::WinDeclSpecs;
15104
 
  friend class ::WinMemberExplSpec;
15105
 
  friend class ::WinTypeKeywords;
 
17719
  friend class ::ExtGnu;
15106
17720
  friend class ::PragmaOnceUnitState;
15107
17721
  friend class ::PragmaOnce;
15108
 
  friend class ::CCExprResolve;
15109
 
  friend class ::CExprResolve;
 
17722
  friend class ::CMatchSyntax;
15110
17723
 
15111
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17724
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15112
17725
 
15113
17726
public:
15114
17727
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
15115
17728
  static const char *NodeId ();
 
17729
  /** Get the name of the node. Can be compared with NodeId(). */
15116
17730
  const char *NodeName () const { return NodeId (); }
15117
17731
};
15118
17732
      
15119
17733
 
15120
 
#line 15121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17734
#line 17735 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15121
17735
} // closed Puma
 
17736
class CCExprResolve;
 
17737
class CExprResolve;
15122
17738
class WinIfExists;
15123
17739
class WinImportHandler;
15124
17740
class WinMacros;
15125
 
class CMatchSyntax;
15126
 
class ExtGnu;
 
17741
class WinAsm;
 
17742
class WinDeclSpecs;
 
17743
class WinMemberExplSpec;
 
17744
class WinTypeKeywords;
 
17745
class WinFriend;
15127
17746
class ExtAC;
15128
17747
class ExtACBuilderCoupling;
15129
17748
class ExtACSyntaxCoupling;
15130
17749
class ExtACTree;
15131
17750
class ExtACKeywords;
15132
 
class WinAsm;
15133
 
class WinDeclSpecs;
15134
 
class WinMemberExplSpec;
15135
 
class WinTypeKeywords;
 
17751
class ExtGnu;
15136
17752
class PragmaOnceUnitState;
15137
17753
class PragmaOnce;
15138
 
class CCExprResolve;
15139
 
class CExprResolve;
 
17754
class CMatchSyntax;
15140
17755
namespace Puma {
15141
17756
 
15142
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17757
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15143
17758
class CT_MembList : public CT_DeclList, public CSemScope {
15144
 
#line 15145 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17759
#line 17760 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17760
  friend class ::CCExprResolve;
 
17761
  friend class ::CExprResolve;
15145
17762
  friend class ::WinIfExists;
15146
17763
  friend class ::WinImportHandler;
15147
17764
  friend class ::WinMacros;
15148
 
  friend class ::CMatchSyntax;
15149
 
  friend class ::ExtGnu;
 
17765
  friend class ::WinAsm;
 
17766
  friend class ::WinDeclSpecs;
 
17767
  friend class ::WinMemberExplSpec;
 
17768
  friend class ::WinTypeKeywords;
 
17769
  friend class ::WinFriend;
15150
17770
  friend class ::ExtAC;
15151
17771
  friend class ::ExtACBuilderCoupling;
15152
17772
  friend class ::ExtACSyntaxCoupling;
15153
17773
  friend class ::ExtACTree;
15154
17774
  friend class ::ExtACKeywords;
15155
 
  friend class ::WinAsm;
15156
 
  friend class ::WinDeclSpecs;
15157
 
  friend class ::WinMemberExplSpec;
15158
 
  friend class ::WinTypeKeywords;
 
17775
  friend class ::ExtGnu;
15159
17776
  friend class ::PragmaOnceUnitState;
15160
17777
  friend class ::PragmaOnce;
15161
 
  friend class ::CCExprResolve;
15162
 
  friend class ::CExprResolve;
 
17778
  friend class ::CMatchSyntax;
15163
17779
 
15164
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17780
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15165
17781
 
15166
17782
public:
15167
17783
  CT_MembList (int size = 10, int incr = 10) : 
15168
17784
    CT_DeclList (size, incr) {}
 
17785
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15169
17786
  static const char *NodeId ();
 
17787
  /** Get the name of the node. Can be compared with NodeId(). */
15170
17788
  const char *NodeName () const { return NodeId (); }
 
17789
  CSemScope *SemScope () const { return (CSemScope*)this; }
15171
17790
};
15172
17791
 
15173
17792
 
15174
 
#line 15175 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17793
#line 17794 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15175
17794
} // closed Puma
 
17795
class CCExprResolve;
 
17796
class CExprResolve;
15176
17797
class WinIfExists;
15177
17798
class WinImportHandler;
15178
17799
class WinMacros;
15179
 
class CMatchSyntax;
15180
 
class ExtGnu;
 
17800
class WinAsm;
 
17801
class WinDeclSpecs;
 
17802
class WinMemberExplSpec;
 
17803
class WinTypeKeywords;
 
17804
class WinFriend;
15181
17805
class ExtAC;
15182
17806
class ExtACBuilderCoupling;
15183
17807
class ExtACSyntaxCoupling;
15184
17808
class ExtACTree;
15185
17809
class ExtACKeywords;
15186
 
class WinAsm;
15187
 
class WinDeclSpecs;
15188
 
class WinMemberExplSpec;
15189
 
class WinTypeKeywords;
 
17810
class ExtGnu;
15190
17811
class PragmaOnceUnitState;
15191
17812
class PragmaOnce;
15192
 
class CCExprResolve;
15193
 
class CExprResolve;
 
17813
class CMatchSyntax;
15194
17814
namespace Puma {
15195
17815
 
15196
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17816
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15197
17817
class CT_MembInitList : public CT_List, public CSemScope {
15198
 
#line 15199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17818
#line 17819 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17819
  friend class ::CCExprResolve;
 
17820
  friend class ::CExprResolve;
15199
17821
  friend class ::WinIfExists;
15200
17822
  friend class ::WinImportHandler;
15201
17823
  friend class ::WinMacros;
15202
 
  friend class ::CMatchSyntax;
15203
 
  friend class ::ExtGnu;
 
17824
  friend class ::WinAsm;
 
17825
  friend class ::WinDeclSpecs;
 
17826
  friend class ::WinMemberExplSpec;
 
17827
  friend class ::WinTypeKeywords;
 
17828
  friend class ::WinFriend;
15204
17829
  friend class ::ExtAC;
15205
17830
  friend class ::ExtACBuilderCoupling;
15206
17831
  friend class ::ExtACSyntaxCoupling;
15207
17832
  friend class ::ExtACTree;
15208
17833
  friend class ::ExtACKeywords;
15209
 
  friend class ::WinAsm;
15210
 
  friend class ::WinDeclSpecs;
15211
 
  friend class ::WinMemberExplSpec;
15212
 
  friend class ::WinTypeKeywords;
 
17834
  friend class ::ExtGnu;
15213
17835
  friend class ::PragmaOnceUnitState;
15214
17836
  friend class ::PragmaOnce;
15215
 
  friend class ::CCExprResolve;
15216
 
  friend class ::CExprResolve;
 
17837
  friend class ::CMatchSyntax;
15217
17838
 
15218
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17839
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15219
17840
 
15220
17841
public:
15221
17842
  CT_MembInitList (int size = 2) : 
15222
17843
    CT_List (size, 2, CT_List::OPEN) {}
15223
17844
  static const char *NodeId ();
 
17845
  /** Get the name of the node. Can be compared with NodeId(). */
15224
17846
  const char *NodeName () const { return NodeId (); }
 
17847
  CSemScope *SemScope () const { return (CSemScope*)this; }
15225
17848
};
15226
17849
 
15227
17850
 
15228
 
#line 15229 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17851
#line 17852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15229
17852
} // closed Puma
 
17853
class CCExprResolve;
 
17854
class CExprResolve;
15230
17855
class WinIfExists;
15231
17856
class WinImportHandler;
15232
17857
class WinMacros;
15233
 
class CMatchSyntax;
15234
 
class ExtGnu;
 
17858
class WinAsm;
 
17859
class WinDeclSpecs;
 
17860
class WinMemberExplSpec;
 
17861
class WinTypeKeywords;
 
17862
class WinFriend;
15235
17863
class ExtAC;
15236
17864
class ExtACBuilderCoupling;
15237
17865
class ExtACSyntaxCoupling;
15238
17866
class ExtACTree;
15239
17867
class ExtACKeywords;
15240
 
class WinAsm;
15241
 
class WinDeclSpecs;
15242
 
class WinMemberExplSpec;
15243
 
class WinTypeKeywords;
 
17868
class ExtGnu;
15244
17869
class PragmaOnceUnitState;
15245
17870
class PragmaOnce;
15246
 
class CCExprResolve;
15247
 
class CExprResolve;
15248
 
namespace Puma {
15249
 
 
15250
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17871
class CMatchSyntax;
 
17872
namespace Puma {
 
17873
 
 
17874
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17875
 
 
17876
#line 17877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17877
} // closed Puma
 
17878
 
 
17879
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
17880
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
17881
#include "CCExprResolveH.ah"
 
17882
#endif
 
17883
namespace Puma {
 
17884
 
 
17885
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17886
 
 
17887
#line 17888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17888
} // closed Puma
 
17889
 
 
17890
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
17891
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
17892
#include "CExprResolveH.ah"
 
17893
#endif
 
17894
namespace Puma {
 
17895
 
 
17896
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15251
17897
class CT_MembInit : public CT_Expression, public CSemObject {
15252
 
#line 15253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17898
#line 17899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17899
  friend class ::CCExprResolve;
 
17900
  friend class ::CExprResolve;
15253
17901
  friend class ::WinIfExists;
15254
17902
  friend class ::WinImportHandler;
15255
17903
  friend class ::WinMacros;
15256
 
  friend class ::CMatchSyntax;
15257
 
  friend class ::ExtGnu;
 
17904
  friend class ::WinAsm;
 
17905
  friend class ::WinDeclSpecs;
 
17906
  friend class ::WinMemberExplSpec;
 
17907
  friend class ::WinTypeKeywords;
 
17908
  friend class ::WinFriend;
15258
17909
  friend class ::ExtAC;
15259
17910
  friend class ::ExtACBuilderCoupling;
15260
17911
  friend class ::ExtACSyntaxCoupling;
15261
17912
  friend class ::ExtACTree;
15262
17913
  friend class ::ExtACKeywords;
15263
 
  friend class ::WinAsm;
15264
 
  friend class ::WinDeclSpecs;
15265
 
  friend class ::WinMemberExplSpec;
15266
 
  friend class ::WinTypeKeywords;
 
17914
  friend class ::ExtGnu;
15267
17915
  friend class ::PragmaOnceUnitState;
15268
17916
  friend class ::PragmaOnce;
15269
 
  friend class ::CCExprResolve;
15270
 
  friend class ::CExprResolve;
 
17917
  friend class ::CMatchSyntax;
15271
17918
 
15272
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17919
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15273
17920
 
15274
17921
  CTree *sons[2]; // name, init
15275
17922
 
15276
17923
public:
15277
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
17924
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
17925
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15278
17926
  static const char *NodeId ();
 
17927
  /** Get the name of the node. Can be compared with NodeId(). */
15279
17928
  const char *NodeName () const { return NodeId (); }
 
17929
  /** Get the number of sons. */
15280
17930
  int Sons () const { return 2; }
 
17931
  /** Get the n-th son.
 
17932
   *  \param n The index of the son.
 
17933
   *  \return The n-th son or NULL. */
15281
17934
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
17935
  /** Replace a son.
 
17936
   *  \param old_son The son to replace.
 
17937
   *  \param new_son The new son. */
15282
17938
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
15283
17939
    CTree::ReplaceSon (sons, 2, old_son, new_son);
15284
17940
  }
15288
17944
   private:
15289
17945
  typedef CT_MembInit CCExprResolveExpr;
15290
17946
 
15291
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
17947
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
15292
17948
 public :
15293
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
17949
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
15294
17950
  typedef CT_MembInit CExprResolveExpr;
15295
17951
 
15296
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
17952
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
15297
17953
 public :
15298
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
15299
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17954
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
17955
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15300
17956
};
15301
17957
 
15302
17958
 
15303
 
#line 15304 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17959
#line 17960 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15304
17960
} // closed Puma
 
17961
class CCExprResolve;
 
17962
class CExprResolve;
15305
17963
class WinIfExists;
15306
17964
class WinImportHandler;
15307
17965
class WinMacros;
15308
 
class CMatchSyntax;
15309
 
class ExtGnu;
 
17966
class WinAsm;
 
17967
class WinDeclSpecs;
 
17968
class WinMemberExplSpec;
 
17969
class WinTypeKeywords;
 
17970
class WinFriend;
15310
17971
class ExtAC;
15311
17972
class ExtACBuilderCoupling;
15312
17973
class ExtACSyntaxCoupling;
15313
17974
class ExtACTree;
15314
17975
class ExtACKeywords;
15315
 
class WinAsm;
15316
 
class WinDeclSpecs;
15317
 
class WinMemberExplSpec;
15318
 
class WinTypeKeywords;
 
17976
class ExtGnu;
15319
17977
class PragmaOnceUnitState;
15320
17978
class PragmaOnce;
15321
 
class CCExprResolve;
15322
 
class CExprResolve;
 
17979
class CMatchSyntax;
15323
17980
namespace Puma {
15324
17981
 
15325
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
17982
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15326
17983
class CT_BaseSpecList : public CT_List {
15327
 
#line 15328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
17984
#line 17985 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
17985
  friend class ::CCExprResolve;
 
17986
  friend class ::CExprResolve;
15328
17987
  friend class ::WinIfExists;
15329
17988
  friend class ::WinImportHandler;
15330
17989
  friend class ::WinMacros;
15331
 
  friend class ::CMatchSyntax;
15332
 
  friend class ::ExtGnu;
 
17990
  friend class ::WinAsm;
 
17991
  friend class ::WinDeclSpecs;
 
17992
  friend class ::WinMemberExplSpec;
 
17993
  friend class ::WinTypeKeywords;
 
17994
  friend class ::WinFriend;
15333
17995
  friend class ::ExtAC;
15334
17996
  friend class ::ExtACBuilderCoupling;
15335
17997
  friend class ::ExtACSyntaxCoupling;
15336
17998
  friend class ::ExtACTree;
15337
17999
  friend class ::ExtACKeywords;
15338
 
  friend class ::WinAsm;
15339
 
  friend class ::WinDeclSpecs;
15340
 
  friend class ::WinMemberExplSpec;
15341
 
  friend class ::WinTypeKeywords;
 
18000
  friend class ::ExtGnu;
15342
18001
  friend class ::PragmaOnceUnitState;
15343
18002
  friend class ::PragmaOnce;
15344
 
  friend class ::CCExprResolve;
15345
 
  friend class ::CExprResolve;
 
18003
  friend class ::CMatchSyntax;
15346
18004
 
15347
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18005
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15348
18006
 
15349
18007
public:
15350
18008
  CT_BaseSpecList (int size = 2) : 
15351
18009
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
18010
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15352
18011
  static const char *NodeId ();
 
18012
  /** Get the name of the node. Can be compared with NodeId(). */
15353
18013
  const char *NodeName () const { return NodeId (); }
15354
18014
};
15355
18015
 
15356
18016
 
15357
 
#line 15358 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18017
#line 18018 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15358
18018
} // closed Puma
 
18019
class CCExprResolve;
 
18020
class CExprResolve;
15359
18021
class WinIfExists;
15360
18022
class WinImportHandler;
15361
18023
class WinMacros;
15362
 
class CMatchSyntax;
15363
 
class ExtGnu;
 
18024
class WinAsm;
 
18025
class WinDeclSpecs;
 
18026
class WinMemberExplSpec;
 
18027
class WinTypeKeywords;
 
18028
class WinFriend;
15364
18029
class ExtAC;
15365
18030
class ExtACBuilderCoupling;
15366
18031
class ExtACSyntaxCoupling;
15367
18032
class ExtACTree;
15368
18033
class ExtACKeywords;
15369
 
class WinAsm;
15370
 
class WinDeclSpecs;
15371
 
class WinMemberExplSpec;
15372
 
class WinTypeKeywords;
 
18034
class ExtGnu;
15373
18035
class PragmaOnceUnitState;
15374
18036
class PragmaOnce;
15375
 
class CCExprResolve;
15376
 
class CExprResolve;
 
18037
class CMatchSyntax;
15377
18038
namespace Puma {
15378
18039
 
15379
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18040
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15380
18041
class CT_AccessSpec : public CTree {
15381
 
#line 15382 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18042
#line 18043 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
18043
  friend class ::CCExprResolve;
 
18044
  friend class ::CExprResolve;
15382
18045
  friend class ::WinIfExists;
15383
18046
  friend class ::WinImportHandler;
15384
18047
  friend class ::WinMacros;
15385
 
  friend class ::CMatchSyntax;
15386
 
  friend class ::ExtGnu;
 
18048
  friend class ::WinAsm;
 
18049
  friend class ::WinDeclSpecs;
 
18050
  friend class ::WinMemberExplSpec;
 
18051
  friend class ::WinTypeKeywords;
 
18052
  friend class ::WinFriend;
15387
18053
  friend class ::ExtAC;
15388
18054
  friend class ::ExtACBuilderCoupling;
15389
18055
  friend class ::ExtACSyntaxCoupling;
15390
18056
  friend class ::ExtACTree;
15391
18057
  friend class ::ExtACKeywords;
15392
 
  friend class ::WinAsm;
15393
 
  friend class ::WinDeclSpecs;
15394
 
  friend class ::WinMemberExplSpec;
15395
 
  friend class ::WinTypeKeywords;
 
18058
  friend class ::ExtGnu;
15396
18059
  friend class ::PragmaOnceUnitState;
15397
18060
  friend class ::PragmaOnce;
15398
 
  friend class ::CCExprResolve;
15399
 
  friend class ::CExprResolve;
 
18061
  friend class ::CMatchSyntax;
15400
18062
 
15401
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18063
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15402
18064
 
15403
18065
  CTree *sons[2]; // access, colon
15404
18066
 
15405
18067
public:
15406
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
18068
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
18069
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15407
18070
  static const char *NodeId ();
 
18071
  /** Get the name of the node. Can be compared with NodeId(). */
15408
18072
  const char *NodeName () const { return NodeId (); }
 
18073
  /** Get the number of sons. */
15409
18074
  int Sons () const { return 2; }
 
18075
  /** Get the n-th son.
 
18076
   *  \param n The index of the son.
 
18077
   *  \return The n-th son or NULL. */
15410
18078
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
15411
18079
  int Access () const { return sons[0]->token ()->type (); }
 
18080
  /** Replace a son.
 
18081
   *  \param old_son The son to replace.
 
18082
   *  \param new_son The new son. */
15412
18083
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
15413
18084
    CTree::ReplaceSon (sons, 2, old_son, new_son);
15414
18085
  }
15415
18086
};
15416
18087
 
15417
18088
 
15418
 
#line 15419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18089
#line 18090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15419
18090
} // closed Puma
 
18091
class CCExprResolve;
 
18092
class CExprResolve;
15420
18093
class WinIfExists;
15421
18094
class WinImportHandler;
15422
18095
class WinMacros;
15423
 
class CMatchSyntax;
15424
 
class ExtGnu;
 
18096
class WinAsm;
 
18097
class WinDeclSpecs;
 
18098
class WinMemberExplSpec;
 
18099
class WinTypeKeywords;
 
18100
class WinFriend;
15425
18101
class ExtAC;
15426
18102
class ExtACBuilderCoupling;
15427
18103
class ExtACSyntaxCoupling;
15428
18104
class ExtACTree;
15429
18105
class ExtACKeywords;
15430
 
class WinAsm;
15431
 
class WinDeclSpecs;
15432
 
class WinMemberExplSpec;
15433
 
class WinTypeKeywords;
 
18106
class ExtGnu;
15434
18107
class PragmaOnceUnitState;
15435
18108
class PragmaOnce;
15436
 
class CCExprResolve;
15437
 
class CExprResolve;
 
18109
class CMatchSyntax;
15438
18110
namespace Puma {
15439
18111
 
15440
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18112
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15441
18113
class CT_BaseSpec : public CTree {
15442
 
#line 15443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18114
#line 18115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
18115
  friend class ::CCExprResolve;
 
18116
  friend class ::CExprResolve;
15443
18117
  friend class ::WinIfExists;
15444
18118
  friend class ::WinImportHandler;
15445
18119
  friend class ::WinMacros;
15446
 
  friend class ::CMatchSyntax;
15447
 
  friend class ::ExtGnu;
 
18120
  friend class ::WinAsm;
 
18121
  friend class ::WinDeclSpecs;
 
18122
  friend class ::WinMemberExplSpec;
 
18123
  friend class ::WinTypeKeywords;
 
18124
  friend class ::WinFriend;
15448
18125
  friend class ::ExtAC;
15449
18126
  friend class ::ExtACBuilderCoupling;
15450
18127
  friend class ::ExtACSyntaxCoupling;
15451
18128
  friend class ::ExtACTree;
15452
18129
  friend class ::ExtACKeywords;
15453
 
  friend class ::WinAsm;
15454
 
  friend class ::WinDeclSpecs;
15455
 
  friend class ::WinMemberExplSpec;
15456
 
  friend class ::WinTypeKeywords;
 
18130
  friend class ::ExtGnu;
15457
18131
  friend class ::PragmaOnceUnitState;
15458
18132
  friend class ::PragmaOnce;
15459
 
  friend class ::CCExprResolve;
15460
 
  friend class ::CExprResolve;
 
18133
  friend class ::CMatchSyntax;
15461
18134
 
15462
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18135
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15463
18136
 
15464
18137
  CTree *sons[3]; // virtual, access, name
15465
18138
 
15466
18139
public:
15467
18140
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
15468
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
18141
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
15469
18142
  }
 
18143
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15470
18144
  static const char *NodeId ();
 
18145
  /** Get the name of the node. Can be compared with NodeId(). */
15471
18146
  const char *NodeName () const { return NodeId (); }
 
18147
  /** Get the number of sons. */
15472
18148
  int Sons () const { return CTree::Sons (sons, 3); }
 
18149
  /** Get the n-th son.
 
18150
   *  \param n The index of the son.
 
18151
   *  \return The n-th son or NULL. */
15473
18152
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
15474
18153
  int Access () const { return sons[1]->token ()->type (); }
15475
18154
  CTree *AccessSpec () const { return sons[1]; }
15476
18155
  CTree *Virtual () const { return sons[0]; }
15477
18156
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
18157
  /** Replace a son.
 
18158
   *  \param old_son The son to replace.
 
18159
   *  \param new_son The new son. */
15478
18160
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
15479
18161
    CTree::ReplaceSon (sons, 3, old_son, new_son);
15480
18162
  }
15481
18163
};
15482
18164
 
15483
18165
 
15484
 
#line 15485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18166
#line 18167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15485
18167
} // closed Puma
 
18168
class CCExprResolve;
 
18169
class CExprResolve;
15486
18170
class WinIfExists;
15487
18171
class WinImportHandler;
15488
18172
class WinMacros;
15489
 
class CMatchSyntax;
15490
 
class ExtGnu;
 
18173
class WinAsm;
 
18174
class WinDeclSpecs;
 
18175
class WinMemberExplSpec;
 
18176
class WinTypeKeywords;
 
18177
class WinFriend;
15491
18178
class ExtAC;
15492
18179
class ExtACBuilderCoupling;
15493
18180
class ExtACSyntaxCoupling;
15494
18181
class ExtACTree;
15495
18182
class ExtACKeywords;
15496
 
class WinAsm;
15497
 
class WinDeclSpecs;
15498
 
class WinMemberExplSpec;
15499
 
class WinTypeKeywords;
 
18183
class ExtGnu;
15500
18184
class PragmaOnceUnitState;
15501
18185
class PragmaOnce;
15502
 
class CCExprResolve;
15503
 
class CExprResolve;
 
18186
class CMatchSyntax;
15504
18187
namespace Puma {
15505
18188
 
15506
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18189
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15507
18190
class CT_AccessDecl : public CT_Decl {
15508
 
#line 15509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18191
#line 18192 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
18192
  friend class ::CCExprResolve;
 
18193
  friend class ::CExprResolve;
15509
18194
  friend class ::WinIfExists;
15510
18195
  friend class ::WinImportHandler;
15511
18196
  friend class ::WinMacros;
15512
 
  friend class ::CMatchSyntax;
15513
 
  friend class ::ExtGnu;
 
18197
  friend class ::WinAsm;
 
18198
  friend class ::WinDeclSpecs;
 
18199
  friend class ::WinMemberExplSpec;
 
18200
  friend class ::WinTypeKeywords;
 
18201
  friend class ::WinFriend;
15514
18202
  friend class ::ExtAC;
15515
18203
  friend class ::ExtACBuilderCoupling;
15516
18204
  friend class ::ExtACSyntaxCoupling;
15517
18205
  friend class ::ExtACTree;
15518
18206
  friend class ::ExtACKeywords;
15519
 
  friend class ::WinAsm;
15520
 
  friend class ::WinDeclSpecs;
15521
 
  friend class ::WinMemberExplSpec;
15522
 
  friend class ::WinTypeKeywords;
 
18207
  friend class ::ExtGnu;
15523
18208
  friend class ::PragmaOnceUnitState;
15524
18209
  friend class ::PragmaOnce;
15525
 
  friend class ::CCExprResolve;
15526
 
  friend class ::CExprResolve;
 
18210
  friend class ::CMatchSyntax;
15527
18211
 
15528
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18212
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15529
18213
 
15530
18214
  CTree *sons[2]; // name, semi_colon
15531
18215
 
15532
18216
public:
15533
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
18217
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
18218
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15534
18219
  static const char *NodeId ();
 
18220
  /** Get the name of the node. Can be compared with NodeId(). */
15535
18221
  const char *NodeName () const { return NodeId (); }
 
18222
  /** Get the number of sons. */
15536
18223
  int Sons () const { return 2; }
 
18224
  /** Get the n-th son.
 
18225
   *  \param n The index of the son.
 
18226
   *  \return The n-th son or NULL. */
15537
18227
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
15538
18228
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
18229
  /** Replace a son.
 
18230
   *  \param old_son The son to replace.
 
18231
   *  \param new_son The new son. */
15539
18232
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
15540
18233
    CTree::ReplaceSon (sons, 2, old_son, new_son);
15541
18234
  }
15542
18235
};
15543
18236
 
15544
18237
 
15545
 
#line 15546 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18238
#line 18239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15546
18239
} // closed Puma
 
18240
class CCExprResolve;
 
18241
class CExprResolve;
15547
18242
class WinIfExists;
15548
18243
class WinImportHandler;
15549
18244
class WinMacros;
15550
 
class CMatchSyntax;
15551
 
class ExtGnu;
 
18245
class WinAsm;
 
18246
class WinDeclSpecs;
 
18247
class WinMemberExplSpec;
 
18248
class WinTypeKeywords;
 
18249
class WinFriend;
15552
18250
class ExtAC;
15553
18251
class ExtACBuilderCoupling;
15554
18252
class ExtACSyntaxCoupling;
15555
18253
class ExtACTree;
15556
18254
class ExtACKeywords;
15557
 
class WinAsm;
15558
 
class WinDeclSpecs;
15559
 
class WinMemberExplSpec;
15560
 
class WinTypeKeywords;
 
18255
class ExtGnu;
15561
18256
class PragmaOnceUnitState;
15562
18257
class PragmaOnce;
15563
 
class CCExprResolve;
15564
 
class CExprResolve;
 
18258
class CMatchSyntax;
15565
18259
namespace Puma {
15566
18260
 
15567
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18261
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15568
18262
class CT_UsingDecl : public CT_AccessDecl {
15569
 
#line 15570 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18263
#line 18264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
18264
  friend class ::CCExprResolve;
 
18265
  friend class ::CExprResolve;
15570
18266
  friend class ::WinIfExists;
15571
18267
  friend class ::WinImportHandler;
15572
18268
  friend class ::WinMacros;
15573
 
  friend class ::CMatchSyntax;
15574
 
  friend class ::ExtGnu;
 
18269
  friend class ::WinAsm;
 
18270
  friend class ::WinDeclSpecs;
 
18271
  friend class ::WinMemberExplSpec;
 
18272
  friend class ::WinTypeKeywords;
 
18273
  friend class ::WinFriend;
15575
18274
  friend class ::ExtAC;
15576
18275
  friend class ::ExtACBuilderCoupling;
15577
18276
  friend class ::ExtACSyntaxCoupling;
15578
18277
  friend class ::ExtACTree;
15579
18278
  friend class ::ExtACKeywords;
15580
 
  friend class ::WinAsm;
15581
 
  friend class ::WinDeclSpecs;
15582
 
  friend class ::WinMemberExplSpec;
15583
 
  friend class ::WinTypeKeywords;
 
18279
  friend class ::ExtGnu;
15584
18280
  friend class ::PragmaOnceUnitState;
15585
18281
  friend class ::PragmaOnce;
15586
 
  friend class ::CCExprResolve;
15587
 
  friend class ::CExprResolve;
 
18282
  friend class ::CMatchSyntax;
15588
18283
 
15589
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18284
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15590
18285
 
15591
18286
  CTree *sons[2]; // using, typename
15592
18287
 
15593
18288
public:
15594
18289
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
15595
 
    sons[0] = u; sons[1] = 0; 
 
18290
    AddSon (sons[0], u); AddSon (sons[1], 0); 
15596
18291
  }
15597
18292
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
15598
 
    sons[0] = u; sons[1] = t; 
 
18293
    AddSon (sons[0], u); AddSon (sons[1], t); 
15599
18294
  }
 
18295
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15600
18296
  static const char *NodeId ();
 
18297
  /** Get the name of the node. Can be compared with NodeId(). */
15601
18298
  const char *NodeName () const { return NodeId (); }
 
18299
  /** Get the number of sons. */
15602
18300
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
18301
  /** Get the n-th son.
 
18302
   *  \param n The index of the son.
 
18303
   *  \return The n-th son or NULL. */
15603
18304
  CTree *Son (int n) const {
15604
18305
    int num = CTree::Sons (sons, 2);
15605
18306
    CTree *result = CTree::Son (sons, 2, n);
15606
18307
    return result ? result : CT_AccessDecl::Son (n-num);
15607
18308
  }
15608
18309
  CTree *Typename () const { return sons[1]; }
 
18310
  /** Replace a son.
 
18311
   *  \param old_son The son to replace.
 
18312
   *  \param new_son The new son. */
15609
18313
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
15610
18314
    CTree::ReplaceSon (sons, 2, old_son, new_son);
15611
18315
    CT_AccessDecl::ReplaceSon (old_son, new_son);
15619
18323
/*****************************************************************************/
15620
18324
 
15621
18325
 
15622
 
#line 15623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18326
#line 18327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15623
18327
} // closed Puma
 
18328
class CCExprResolve;
 
18329
class CExprResolve;
15624
18330
class WinIfExists;
15625
18331
class WinImportHandler;
15626
18332
class WinMacros;
15627
 
class CMatchSyntax;
15628
 
class ExtGnu;
 
18333
class WinAsm;
 
18334
class WinDeclSpecs;
 
18335
class WinMemberExplSpec;
 
18336
class WinTypeKeywords;
 
18337
class WinFriend;
15629
18338
class ExtAC;
15630
18339
class ExtACBuilderCoupling;
15631
18340
class ExtACSyntaxCoupling;
15632
18341
class ExtACTree;
15633
18342
class ExtACKeywords;
15634
 
class WinAsm;
15635
 
class WinDeclSpecs;
15636
 
class WinMemberExplSpec;
15637
 
class WinTypeKeywords;
 
18343
class ExtGnu;
15638
18344
class PragmaOnceUnitState;
15639
18345
class PragmaOnce;
15640
 
class CCExprResolve;
15641
 
class CExprResolve;
 
18346
class CMatchSyntax;
15642
18347
namespace Puma {
15643
18348
 
15644
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18349
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15645
18350
class CT_Any : public CTree {
15646
 
#line 15647 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18351
#line 18352 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
18352
  friend class ::CCExprResolve;
 
18353
  friend class ::CExprResolve;
15647
18354
  friend class ::WinIfExists;
15648
18355
  friend class ::WinImportHandler;
15649
18356
  friend class ::WinMacros;
15650
 
  friend class ::CMatchSyntax;
15651
 
  friend class ::ExtGnu;
 
18357
  friend class ::WinAsm;
 
18358
  friend class ::WinDeclSpecs;
 
18359
  friend class ::WinMemberExplSpec;
 
18360
  friend class ::WinTypeKeywords;
 
18361
  friend class ::WinFriend;
15652
18362
  friend class ::ExtAC;
15653
18363
  friend class ::ExtACBuilderCoupling;
15654
18364
  friend class ::ExtACSyntaxCoupling;
15655
18365
  friend class ::ExtACTree;
15656
18366
  friend class ::ExtACKeywords;
15657
 
  friend class ::WinAsm;
15658
 
  friend class ::WinDeclSpecs;
15659
 
  friend class ::WinMemberExplSpec;
15660
 
  friend class ::WinTypeKeywords;
 
18367
  friend class ::ExtGnu;
15661
18368
  friend class ::PragmaOnceUnitState;
15662
18369
  friend class ::PragmaOnce;
15663
 
  friend class ::CCExprResolve;
15664
 
  friend class ::CExprResolve;
 
18370
  friend class ::CMatchSyntax;
15665
18371
 
15666
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18372
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15667
18373
 
15668
18374
  CTree *sons[2]; // keyword, extension
15669
18375
 
15670
18376
public:
15671
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
18377
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
18378
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15672
18379
  static const char *NodeId ();
 
18380
  /** Get the name of the node. Can be compared with NodeId(). */
15673
18381
  const char *NodeName () const { return NodeId (); }
 
18382
  /** Get the number of sons. */
15674
18383
  int Sons () const { return CTree::Sons (sons, 2); }
 
18384
  /** Get the n-th son.
 
18385
   *  \param n The index of the son.
 
18386
   *  \return The n-th son or NULL. */
15675
18387
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
18388
  /** Replace a son.
 
18389
   *  \param old_son The son to replace.
 
18390
   *  \param new_son The new son. */
15676
18391
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
15677
18392
    CTree::ReplaceSon (sons, 2, old_son, new_son);
15678
18393
  }
15681
18396
};
15682
18397
 
15683
18398
 
15684
 
#line 15685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18399
#line 18400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15685
18400
} // closed Puma
 
18401
class CCExprResolve;
 
18402
class CExprResolve;
15686
18403
class WinIfExists;
15687
18404
class WinImportHandler;
15688
18405
class WinMacros;
15689
 
class CMatchSyntax;
15690
 
class ExtGnu;
 
18406
class WinAsm;
 
18407
class WinDeclSpecs;
 
18408
class WinMemberExplSpec;
 
18409
class WinTypeKeywords;
 
18410
class WinFriend;
15691
18411
class ExtAC;
15692
18412
class ExtACBuilderCoupling;
15693
18413
class ExtACSyntaxCoupling;
15694
18414
class ExtACTree;
15695
18415
class ExtACKeywords;
15696
 
class WinAsm;
15697
 
class WinDeclSpecs;
15698
 
class WinMemberExplSpec;
15699
 
class WinTypeKeywords;
 
18416
class ExtGnu;
15700
18417
class PragmaOnceUnitState;
15701
18418
class PragmaOnce;
15702
 
class CCExprResolve;
15703
 
class CExprResolve;
 
18419
class CMatchSyntax;
15704
18420
namespace Puma {
15705
18421
 
15706
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18422
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15707
18423
class CT_AnyList : public CT_Any {
15708
 
#line 15709 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18424
#line 18425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
18425
  friend class ::CCExprResolve;
 
18426
  friend class ::CExprResolve;
15709
18427
  friend class ::WinIfExists;
15710
18428
  friend class ::WinImportHandler;
15711
18429
  friend class ::WinMacros;
15712
 
  friend class ::CMatchSyntax;
15713
 
  friend class ::ExtGnu;
 
18430
  friend class ::WinAsm;
 
18431
  friend class ::WinDeclSpecs;
 
18432
  friend class ::WinMemberExplSpec;
 
18433
  friend class ::WinTypeKeywords;
 
18434
  friend class ::WinFriend;
15714
18435
  friend class ::ExtAC;
15715
18436
  friend class ::ExtACBuilderCoupling;
15716
18437
  friend class ::ExtACSyntaxCoupling;
15717
18438
  friend class ::ExtACTree;
15718
18439
  friend class ::ExtACKeywords;
15719
 
  friend class ::WinAsm;
15720
 
  friend class ::WinDeclSpecs;
15721
 
  friend class ::WinMemberExplSpec;
15722
 
  friend class ::WinTypeKeywords;
 
18440
  friend class ::ExtGnu;
15723
18441
  friend class ::PragmaOnceUnitState;
15724
18442
  friend class ::PragmaOnce;
15725
 
  friend class ::CCExprResolve;
15726
 
  friend class ::CExprResolve;
 
18443
  friend class ::CMatchSyntax;
15727
18444
 
15728
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18445
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15729
18446
 
15730
18447
public:
15731
18448
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
18449
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15732
18450
  static const char *NodeId ();
 
18451
  /** Get the name of the node. Can be compared with NodeId(). */
15733
18452
  const char *NodeName () const { return NodeId (); }
15734
18453
};
15735
18454
 
15736
18455
 
15737
 
#line 15738 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18456
#line 18457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15738
18457
} // closed Puma
 
18458
class CCExprResolve;
 
18459
class CExprResolve;
15739
18460
class WinIfExists;
15740
18461
class WinImportHandler;
15741
18462
class WinMacros;
15742
 
class CMatchSyntax;
15743
 
class ExtGnu;
 
18463
class WinAsm;
 
18464
class WinDeclSpecs;
 
18465
class WinMemberExplSpec;
 
18466
class WinTypeKeywords;
 
18467
class WinFriend;
15744
18468
class ExtAC;
15745
18469
class ExtACBuilderCoupling;
15746
18470
class ExtACSyntaxCoupling;
15747
18471
class ExtACTree;
15748
18472
class ExtACKeywords;
15749
 
class WinAsm;
15750
 
class WinDeclSpecs;
15751
 
class WinMemberExplSpec;
15752
 
class WinTypeKeywords;
 
18473
class ExtGnu;
15753
18474
class PragmaOnceUnitState;
15754
18475
class PragmaOnce;
15755
 
class CCExprResolve;
15756
 
class CExprResolve;
 
18476
class CMatchSyntax;
15757
18477
namespace Puma {
15758
18478
 
15759
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18479
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15760
18480
class CT_AnyExtension : public CTree, public CSemValue {
15761
 
#line 15762 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18481
#line 18482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
18482
  friend class ::CCExprResolve;
 
18483
  friend class ::CExprResolve;
15762
18484
  friend class ::WinIfExists;
15763
18485
  friend class ::WinImportHandler;
15764
18486
  friend class ::WinMacros;
15765
 
  friend class ::CMatchSyntax;
15766
 
  friend class ::ExtGnu;
 
18487
  friend class ::WinAsm;
 
18488
  friend class ::WinDeclSpecs;
 
18489
  friend class ::WinMemberExplSpec;
 
18490
  friend class ::WinTypeKeywords;
 
18491
  friend class ::WinFriend;
15767
18492
  friend class ::ExtAC;
15768
18493
  friend class ::ExtACBuilderCoupling;
15769
18494
  friend class ::ExtACSyntaxCoupling;
15770
18495
  friend class ::ExtACTree;
15771
18496
  friend class ::ExtACKeywords;
15772
 
  friend class ::WinAsm;
15773
 
  friend class ::WinDeclSpecs;
15774
 
  friend class ::WinMemberExplSpec;
15775
 
  friend class ::WinTypeKeywords;
 
18497
  friend class ::ExtGnu;
15776
18498
  friend class ::PragmaOnceUnitState;
15777
18499
  friend class ::PragmaOnce;
15778
 
  friend class ::CCExprResolve;
15779
 
  friend class ::CExprResolve;
 
18500
  friend class ::CMatchSyntax;
15780
18501
 
15781
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18502
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15782
18503
 
15783
18504
  CTree *sons[5]; // open, string, comma, cond, close
15784
18505
 
15785
18506
public:
15786
18507
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
15787
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
18508
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
18509
    AddSon (sons[3], c); AddSon (sons[4], cr); 
15788
18510
  }
 
18511
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15789
18512
  static const char *NodeId ();
 
18513
  /** Get the name of the node. Can be compared with NodeId(). */
15790
18514
  const char *NodeName () const { return NodeId (); }
 
18515
  /** Get the number of sons. */
15791
18516
  int Sons () const { return CTree::Sons (sons, 5); }
 
18517
  /** Get the n-th son.
 
18518
   *  \param n The index of the son.
 
18519
   *  \return The n-th son or NULL. */
15792
18520
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
18521
  /** Replace a son.
 
18522
   *  \param old_son The son to replace.
 
18523
   *  \param new_son The new son. */
15793
18524
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
15794
18525
    CTree::ReplaceSon (sons, 5, old_son, new_son);
15795
18526
  }
15803
18534
};
15804
18535
 
15805
18536
 
15806
 
#line 15807 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18537
#line 18538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15807
18538
} // closed Puma
 
18539
class CCExprResolve;
 
18540
class CExprResolve;
15808
18541
class WinIfExists;
15809
18542
class WinImportHandler;
15810
18543
class WinMacros;
15811
 
class CMatchSyntax;
15812
 
class ExtGnu;
 
18544
class WinAsm;
 
18545
class WinDeclSpecs;
 
18546
class WinMemberExplSpec;
 
18547
class WinTypeKeywords;
 
18548
class WinFriend;
15813
18549
class ExtAC;
15814
18550
class ExtACBuilderCoupling;
15815
18551
class ExtACSyntaxCoupling;
15816
18552
class ExtACTree;
15817
18553
class ExtACKeywords;
15818
 
class WinAsm;
15819
 
class WinDeclSpecs;
15820
 
class WinMemberExplSpec;
15821
 
class WinTypeKeywords;
 
18554
class ExtGnu;
15822
18555
class PragmaOnceUnitState;
15823
18556
class PragmaOnce;
15824
 
class CCExprResolve;
15825
 
class CExprResolve;
 
18557
class CMatchSyntax;
15826
18558
namespace Puma {
15827
18559
 
15828
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18560
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15829
18561
class CT_AnyCondition : public CTree {
15830
 
#line 15831 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18562
#line 18563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
18563
  friend class ::CCExprResolve;
 
18564
  friend class ::CExprResolve;
15831
18565
  friend class ::WinIfExists;
15832
18566
  friend class ::WinImportHandler;
15833
18567
  friend class ::WinMacros;
15834
 
  friend class ::CMatchSyntax;
15835
 
  friend class ::ExtGnu;
 
18568
  friend class ::WinAsm;
 
18569
  friend class ::WinDeclSpecs;
 
18570
  friend class ::WinMemberExplSpec;
 
18571
  friend class ::WinTypeKeywords;
 
18572
  friend class ::WinFriend;
15836
18573
  friend class ::ExtAC;
15837
18574
  friend class ::ExtACBuilderCoupling;
15838
18575
  friend class ::ExtACSyntaxCoupling;
15839
18576
  friend class ::ExtACTree;
15840
18577
  friend class ::ExtACKeywords;
15841
 
  friend class ::WinAsm;
15842
 
  friend class ::WinDeclSpecs;
15843
 
  friend class ::WinMemberExplSpec;
15844
 
  friend class ::WinTypeKeywords;
 
18578
  friend class ::ExtGnu;
15845
18579
  friend class ::PragmaOnceUnitState;
15846
18580
  friend class ::PragmaOnce;
15847
 
  friend class ::CCExprResolve;
15848
 
  friend class ::CExprResolve;
 
18581
  friend class ::CMatchSyntax;
15849
18582
 
15850
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
18583
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
15851
18584
 
15852
18585
  CTree *sons[3]; // arg1, arg2, arg3
15853
18586
 
15854
18587
public:
15855
18588
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
15856
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
18589
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
15857
18590
  }
 
18591
  /** Get the identifier for this node type. Can be compared with NodeName(). */
15858
18592
  static const char *NodeId ();
 
18593
  /** Get the name of the node. Can be compared with NodeId(). */
15859
18594
  const char *NodeName () const { return NodeId (); }
 
18595
  /** Get the number of sons. */
15860
18596
  int Sons () const { return CTree::Sons (sons, 3); }
 
18597
  /** Get the n-th son.
 
18598
   *  \param n The index of the son.
 
18599
   *  \return The n-th son or NULL. */
15861
18600
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
18601
  /** Replace a son.
 
18602
   *  \param old_son The son to replace.
 
18603
   *  \param new_son The new son. */
15862
18604
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
15863
18605
    CTree::ReplaceSon (sons, 3, old_son, new_son);
15864
18606
  }
15869
18611
 
15870
18612
#endif /* __CTree_h__ */
15871
18613
 
15872
 
#line 15873 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
15873
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
15874
 
 
15875
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
15876
 
 
15877
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
18614
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
15878
18615
namespace Puma {
15879
18616
 
15880
18617
 
15881
18618
class Token;
15882
18619
 
15883
18620
 
15884
 
#line 15885 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18621
#line 18622 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
15885
18622
} // closed Puma
 
18623
class CCExprResolve;
 
18624
class CExprResolve;
15886
18625
class WinIfExists;
15887
18626
class WinImportHandler;
15888
18627
class WinMacros;
15889
 
class CMatchSyntax;
15890
 
class ExtGnu;
 
18628
class WinAsm;
 
18629
class WinDeclSpecs;
 
18630
class WinMemberExplSpec;
 
18631
class WinTypeKeywords;
 
18632
class WinFriend;
15891
18633
class ExtAC;
15892
18634
class ExtACBuilderCoupling;
15893
18635
class ExtACSyntaxCoupling;
15894
18636
class ExtACTree;
15895
18637
class ExtACKeywords;
15896
 
class WinAsm;
15897
 
class WinDeclSpecs;
15898
 
class WinMemberExplSpec;
15899
 
class WinTypeKeywords;
 
18638
class ExtGnu;
15900
18639
class PragmaOnceUnitState;
15901
18640
class PragmaOnce;
15902
 
class CCExprResolve;
15903
 
class CExprResolve;
 
18641
class CMatchSyntax;
15904
18642
namespace Puma {
15905
18643
 
15906
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
18644
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
15907
18645
class Builder : public PtrStack<CTree> {
15908
 
#line 15909 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18646
#line 18647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
18647
  friend class ::CCExprResolve;
 
18648
  friend class ::CExprResolve;
15909
18649
  friend class ::WinIfExists;
15910
18650
  friend class ::WinImportHandler;
15911
18651
  friend class ::WinMacros;
15912
 
  friend class ::CMatchSyntax;
15913
 
  friend class ::ExtGnu;
 
18652
  friend class ::WinAsm;
 
18653
  friend class ::WinDeclSpecs;
 
18654
  friend class ::WinMemberExplSpec;
 
18655
  friend class ::WinTypeKeywords;
 
18656
  friend class ::WinFriend;
15914
18657
  friend class ::ExtAC;
15915
18658
  friend class ::ExtACBuilderCoupling;
15916
18659
  friend class ::ExtACSyntaxCoupling;
15917
18660
  friend class ::ExtACTree;
15918
18661
  friend class ::ExtACKeywords;
15919
 
  friend class ::WinAsm;
15920
 
  friend class ::WinDeclSpecs;
15921
 
  friend class ::WinMemberExplSpec;
15922
 
  friend class ::WinTypeKeywords;
 
18662
  friend class ::ExtGnu;
15923
18663
  friend class ::PragmaOnceUnitState;
15924
18664
  friend class ::PragmaOnce;
15925
 
  friend class ::CCExprResolve;
15926
 
  friend class ::CExprResolve;
 
18665
  friend class ::CMatchSyntax;
15927
18666
 
15928
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
18667
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
15929
18668
 
15930
18669
protected:
15931
18670
  ErrorCollector ec;
15934
18673
public:
15935
18674
  // Container class to shift nodes from one level to another
15936
18675
  class Container : public CT_List {
15937
 
#line 15938 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18676
#line 18677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
18677
  friend class ::CCExprResolve;
 
18678
  friend class ::CExprResolve;
15938
18679
  friend class ::WinIfExists;
15939
18680
  friend class ::WinImportHandler;
15940
18681
  friend class ::WinMacros;
15941
 
  friend class ::CMatchSyntax;
15942
 
  friend class ::ExtGnu;
 
18682
  friend class ::WinAsm;
 
18683
  friend class ::WinDeclSpecs;
 
18684
  friend class ::WinMemberExplSpec;
 
18685
  friend class ::WinTypeKeywords;
 
18686
  friend class ::WinFriend;
15943
18687
  friend class ::ExtAC;
15944
18688
  friend class ::ExtACBuilderCoupling;
15945
18689
  friend class ::ExtACSyntaxCoupling;
15946
18690
  friend class ::ExtACTree;
15947
18691
  friend class ::ExtACKeywords;
15948
 
  friend class ::WinAsm;
15949
 
  friend class ::WinDeclSpecs;
15950
 
  friend class ::WinMemberExplSpec;
15951
 
  friend class ::WinTypeKeywords;
 
18692
  friend class ::ExtGnu;
15952
18693
  friend class ::PragmaOnceUnitState;
15953
18694
  friend class ::PragmaOnce;
15954
 
  friend class ::CCExprResolve;
15955
 
  friend class ::CExprResolve;
 
18695
  friend class ::CMatchSyntax;
15956
18696
 
15957
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Builder.h"
 
18697
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Builder.h"
15958
18698
 
15959
18699
  public:
15960
18700
    static const char *NodeId ();
16024
18764
 
16025
18765
#endif /* __Builder_h__ */
16026
18766
 
16027
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
18767
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
16028
18768
//#include "Puma/Semantic.h"
16029
18769
 
16030
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
 
18770
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
16031
18771
// This file is part of PUMA.
16032
18772
// Copyright (C) 1999-2003  The PUMA developer team.
16033
18773
//                                                                
16053
18793
// look ahead.
16054
18794
 
16055
18795
 
16056
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
18796
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
16057
18797
// This file is part of PUMA.
16058
18798
// Copyright (C) 1999-2003  The PUMA developer team.
16059
18799
//                                                                
16081
18821
class Token;
16082
18822
 
16083
18823
 
16084
 
#line 16085 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18824
#line 18825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
16085
18825
} // closed Puma
 
18826
class CCExprResolve;
 
18827
class CExprResolve;
16086
18828
class WinIfExists;
16087
18829
class WinImportHandler;
16088
18830
class WinMacros;
16089
 
class CMatchSyntax;
16090
 
class ExtGnu;
 
18831
class WinAsm;
 
18832
class WinDeclSpecs;
 
18833
class WinMemberExplSpec;
 
18834
class WinTypeKeywords;
 
18835
class WinFriend;
16091
18836
class ExtAC;
16092
18837
class ExtACBuilderCoupling;
16093
18838
class ExtACSyntaxCoupling;
16094
18839
class ExtACTree;
16095
18840
class ExtACKeywords;
16096
 
class WinAsm;
16097
 
class WinDeclSpecs;
16098
 
class WinMemberExplSpec;
16099
 
class WinTypeKeywords;
 
18841
class ExtGnu;
16100
18842
class PragmaOnceUnitState;
16101
18843
class PragmaOnce;
16102
 
class CCExprResolve;
16103
 
class CExprResolve;
 
18844
class CMatchSyntax;
16104
18845
namespace Puma {
16105
18846
 
16106
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
18847
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
16107
18848
class PumaTokenSource {
16108
 
#line 16109 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18849
#line 18850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
18850
  friend class ::CCExprResolve;
 
18851
  friend class ::CExprResolve;
16109
18852
  friend class ::WinIfExists;
16110
18853
  friend class ::WinImportHandler;
16111
18854
  friend class ::WinMacros;
16112
 
  friend class ::CMatchSyntax;
16113
 
  friend class ::ExtGnu;
 
18855
  friend class ::WinAsm;
 
18856
  friend class ::WinDeclSpecs;
 
18857
  friend class ::WinMemberExplSpec;
 
18858
  friend class ::WinTypeKeywords;
 
18859
  friend class ::WinFriend;
16114
18860
  friend class ::ExtAC;
16115
18861
  friend class ::ExtACBuilderCoupling;
16116
18862
  friend class ::ExtACSyntaxCoupling;
16117
18863
  friend class ::ExtACTree;
16118
18864
  friend class ::ExtACKeywords;
16119
 
  friend class ::WinAsm;
16120
 
  friend class ::WinDeclSpecs;
16121
 
  friend class ::WinMemberExplSpec;
16122
 
  friend class ::WinTypeKeywords;
 
18865
  friend class ::ExtGnu;
16123
18866
  friend class ::PragmaOnceUnitState;
16124
18867
  friend class ::PragmaOnce;
16125
 
  friend class ::CCExprResolve;
16126
 
  friend class ::CExprResolve;
 
18868
  friend class ::CMatchSyntax;
16127
18869
 
16128
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenSource.h"
 
18870
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenSource.h"
16129
18871
 
16130
18872
protected:
16131
18873
  PumaTokenSource () {}
16140
18882
 
16141
18883
#endif /* __Token_Source__ */
16142
18884
 
16143
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
 
18885
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
16144
18886
namespace Puma {
16145
18887
 
16146
18888
 
16147
 
#line 16148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18889
#line 18890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
16148
18890
} // closed Puma
 
18891
class CCExprResolve;
 
18892
class CExprResolve;
16149
18893
class WinIfExists;
16150
18894
class WinImportHandler;
16151
18895
class WinMacros;
16152
 
class CMatchSyntax;
16153
 
class ExtGnu;
 
18896
class WinAsm;
 
18897
class WinDeclSpecs;
 
18898
class WinMemberExplSpec;
 
18899
class WinTypeKeywords;
 
18900
class WinFriend;
16154
18901
class ExtAC;
16155
18902
class ExtACBuilderCoupling;
16156
18903
class ExtACSyntaxCoupling;
16157
18904
class ExtACTree;
16158
18905
class ExtACKeywords;
16159
 
class WinAsm;
16160
 
class WinDeclSpecs;
16161
 
class WinMemberExplSpec;
16162
 
class WinTypeKeywords;
 
18906
class ExtGnu;
16163
18907
class PragmaOnceUnitState;
16164
18908
class PragmaOnce;
16165
 
class CCExprResolve;
16166
 
class CExprResolve;
 
18909
class CMatchSyntax;
16167
18910
namespace Puma {
16168
18911
 
16169
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
 
18912
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
16170
18913
class TokenProvider {
16171
 
#line 16172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18914
#line 18915 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
18915
  friend class ::CCExprResolve;
 
18916
  friend class ::CExprResolve;
16172
18917
  friend class ::WinIfExists;
16173
18918
  friend class ::WinImportHandler;
16174
18919
  friend class ::WinMacros;
16175
 
  friend class ::CMatchSyntax;
16176
 
  friend class ::ExtGnu;
 
18920
  friend class ::WinAsm;
 
18921
  friend class ::WinDeclSpecs;
 
18922
  friend class ::WinMemberExplSpec;
 
18923
  friend class ::WinTypeKeywords;
 
18924
  friend class ::WinFriend;
16177
18925
  friend class ::ExtAC;
16178
18926
  friend class ::ExtACBuilderCoupling;
16179
18927
  friend class ::ExtACSyntaxCoupling;
16180
18928
  friend class ::ExtACTree;
16181
18929
  friend class ::ExtACKeywords;
16182
 
  friend class ::WinAsm;
16183
 
  friend class ::WinDeclSpecs;
16184
 
  friend class ::WinMemberExplSpec;
16185
 
  friend class ::WinTypeKeywords;
 
18930
  friend class ::ExtGnu;
16186
18931
  friend class ::PragmaOnceUnitState;
16187
18932
  friend class ::PragmaOnce;
16188
 
  friend class ::CCExprResolve;
16189
 
  friend class ::CExprResolve;
 
18933
  friend class ::CMatchSyntax;
16190
18934
 
16191
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
 
18935
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenProvider.h"
16192
18936
 
16193
18937
  
16194
18938
  typedef BCList<Token*, 8192> TokenStore;
16212
18956
    // go to the next read position
16213
18957
    ++_read_pos;
16214
18958
    // did we reach the end of the list?
16215
 
    if (_read_pos == _tokens.end ()) {
 
18959
    if (! _read_pos) {
16216
18960
      // add a new token to the token list
16217
18961
      Token *token = _source.next (); // get the next token from the source
16218
18962
      _read_pos = _tokens.add (token);
16232
18976
 
16233
18977
#endif /* __TokenProvider__ */
16234
18978
 
16235
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/TraceSyntax.ah"
16236
 
// This file is part of PUMA.
16237
 
// Copyright (C) 1999-2003  The PUMA developer team.
16238
 
//                                                                
16239
 
// This program is free software;  you can redistribute it and/or 
16240
 
// modify it under the terms of the GNU General Public License as 
16241
 
// published by the Free Software Foundation; either version 2 of 
16242
 
// the License, or (at your option) any later version.            
16243
 
//                                                                
16244
 
// This program is distributed in the hope that it will be useful,
16245
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
16246
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
16247
 
// GNU General Public License for more details.                   
16248
 
//                                                                
16249
 
// You should have received a copy of the GNU General Public      
16250
 
// License along with this program; if not, write to the Free     
16251
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
16252
 
// MA  02111-1307  USA                                            
16253
 
 
16254
 
#ifndef __TraceSyntax_ah__
16255
 
#define __TraceSyntax_ah__
16256
 
 
16257
 
#ifndef NDEBUG
16258
 
 
16259
 
#include "Puma/Tracing.h"
16260
 
//#include "Puma/TokenProvider.h"
16261
 
 
16262
 
 
16263
 
namespace Puma {
16264
 
  class CTree;
16265
 
} // namespace Puma
16266
 
 
16267
 
 
16268
 
using namespace Puma;
16269
 
 
16270
 
 
16271
 
aspect TraceSyntax : public Tracing {
16272
 
  int skipping;
16273
 
  
16274
 
  void trace_rule (const char *sig) {
16275
 
    char rule[256];
16276
 
    while (*sig != ' ') 
16277
 
      sig++;
16278
 
    sig += 1;
16279
 
    while (*sig != ':') 
16280
 
      sig++;
16281
 
    sig += 2;
16282
 
    char *rptr = rule;
16283
 
    while (*sig != '(')
16284
 
      *rptr++ = *sig++;
16285
 
    *rptr = '\0';
16286
 
    trace (rule);
16287
 
  }
16288
 
 
16289
 
public:
16290
 
  TraceSyntax () : skipping (0) {}
16291
 
 
16292
 
  // Create instances an define locator function
16293
 
  static TraceSyntax* aspectOf () 
16294
 
   { return thisJoinPoint->that ()->trace_aspect (); }
16295
 
 
16296
 
  // structural extensions
16297
 
  pointcut syntax () = "Puma::Syntax";
16298
 
  pointcut parser () = "Puma::Parser";
16299
 
 
16300
 
  advice syntax () : slice class {
16301
 
    TraceSyntax __trace;
16302
 
  public:
16303
 
    TraceSyntax *trace_aspect () { return &__trace; }
16304
 
    TokenProvider *__tp () { return token_provider; }
16305
 
  };
16306
 
  
16307
 
  // add initialization function to Parser
16308
 
  advice parser () : slice class {
16309
 
  public:
16310
 
    void trace (ostream &out, bool tokens = false) {
16311
 
      syntax->trace_aspect ()->trace (out, tokens);
16312
 
    }
16313
 
  };
16314
 
  
16315
 
  // advice code for rules
16316
 
  advice within (derived (syntax ()) && ! syntax ()) &&
16317
 
   execution ("%::CTree * Puma::%::%()") : before () 
16318
 
   { trace_rule (JoinPoint::signature ()); }
16319
 
 
16320
 
  advice within (syntax ()) && args (result, "%::Syntax::State") &&
16321
 
  execution ("bool Puma::%::accept(...)") : before (CTree *result) {
16322
 
    trace (result ? "ACCEPT" : "FAILED", -1);
16323
 
  }
16324
 
 
16325
 
  advice within (syntax ()) && execution ("% Puma::%::locate_token()") : after ()
16326
 
   { if (! skipping) this->trace (thisJoinPoint->that ()->
16327
 
                     __tp ()->current (), "INPUT", "INPUT END"); }
16328
 
 
16329
 
  // trace reset operations
16330
 
  // because of a problem in AspectC++ or PUMA we cannot expose 'state' here!!! fix me.
16331
 
  advice within (syntax ()) && call ("% Puma::TokenProvider::set_state(...)") /* &&
16332
 
    args (state) */ : around (/* TokenProvider::State state */) {
16333
 
    bool diff = (*tjp->arg<0>() != tjp->target ()->get_state ());
16334
 
    tjp->proceed ();
16335
 
    if (diff )
16336
 
      trace (**tjp->arg<0>(), "RESET", "INPUT END");
16337
 
  }
16338
 
 
16339
 
  // tracing for token provider calls within skip functions
16340
 
  advice within (syntax ()) && call ("% Puma::TokenProvider::next()") : before ()
16341
 
   { if (skipping && trace_mode ())
16342
 
       tos () << thisJoinPoint->target ()->current ()->text () << " "; }
16343
 
 
16344
 
  // trace token if required
16345
 
  advice within (syntax ()) && execution ("bool Puma::%::parse_token(...)") && 
16346
 
   args (tok) : around (int tok)
16347
 
   { if (trace_mode () == 2) trace (tok);
16348
 
     thisJoinPoint->action ().trigger ();
16349
 
     if (trace_mode () == 2)
16350
 
       trace (*(bool*)thisJoinPoint->result () ? "ACCEPT" : "FAILED", -1);}
16351
 
       
16352
 
  // trace consumed tokens
16353
 
  advice within (syntax ()) && execution ("bool Puma::%::consume()") : before () {
16354
 
    if (trace_mode () == 2) {
16355
 
      trace (tjp->that ()->token_provider->current ()->type ());
16356
 
      trace ("ACCEPT", -1);
16357
 
    }
16358
 
  }
16359
 
 
16360
 
  advice within (syntax ()) && execution ("% Puma::%::skip(...)") : around () {
16361
 
    skipping++;
16362
 
    if (trace_mode ()) tos () << "SKIP: ";
16363
 
    thisJoinPoint->action ().trigger ();
16364
 
    if (trace_mode ()) tos () << endl;
16365
 
    skipping--;
16366
 
  }
16367
 
 
16368
 
  advice within (syntax ()) && execution ("% Puma::%::skip_block()") : around () {
16369
 
    skipping++;
16370
 
    if (trace_mode ()) tos () << "SKIP_BLOCK: ";
16371
 
    thisJoinPoint->action ().trigger ();
16372
 
    if (trace_mode ()) tos () << endl;
16373
 
    skipping--;
16374
 
  }
16375
 
};
16376
 
 
16377
 
#endif
16378
 
 
16379
 
#endif /* __TraceSyntax_ah__ */
16380
 
 
16381
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
18979
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
16382
18980
namespace Puma {
16383
18981
 
16384
18982
class Semantic;
16386
18984
class CTree;
16387
18985
 
16388
18986
 
16389
 
#line 16390 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
18987
#line 18988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
16390
18988
} // closed Puma
 
18989
class CCExprResolve;
 
18990
class CExprResolve;
16391
18991
class WinIfExists;
16392
18992
class WinImportHandler;
16393
18993
class WinMacros;
16394
 
class CMatchSyntax;
16395
 
class ExtGnu;
 
18994
class WinAsm;
 
18995
class WinDeclSpecs;
 
18996
class WinMemberExplSpec;
 
18997
class WinTypeKeywords;
 
18998
class WinFriend;
16396
18999
class ExtAC;
16397
19000
class ExtACBuilderCoupling;
16398
19001
class ExtACSyntaxCoupling;
16399
19002
class ExtACTree;
16400
19003
class ExtACKeywords;
16401
 
class WinAsm;
16402
 
class WinDeclSpecs;
16403
 
class WinMemberExplSpec;
16404
 
class WinTypeKeywords;
 
19004
class ExtGnu;
16405
19005
class PragmaOnceUnitState;
16406
19006
class PragmaOnce;
16407
 
class CCExprResolve;
16408
 
class CExprResolve;
 
19007
class CMatchSyntax;
16409
19008
namespace Puma {
16410
19009
 
16411
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
19010
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
16412
19011
class Syntax {
16413
 
#line 16414 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
19012
#line 19013 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
19013
  friend class ::CCExprResolve;
 
19014
  friend class ::CExprResolve;
16414
19015
  friend class ::WinIfExists;
16415
19016
  friend class ::WinImportHandler;
16416
19017
  friend class ::WinMacros;
16417
 
  friend class ::CMatchSyntax;
16418
 
  friend class ::ExtGnu;
 
19018
  friend class ::WinAsm;
 
19019
  friend class ::WinDeclSpecs;
 
19020
  friend class ::WinMemberExplSpec;
 
19021
  friend class ::WinTypeKeywords;
 
19022
  friend class ::WinFriend;
16419
19023
  friend class ::ExtAC;
16420
19024
  friend class ::ExtACBuilderCoupling;
16421
19025
  friend class ::ExtACSyntaxCoupling;
16422
19026
  friend class ::ExtACTree;
16423
19027
  friend class ::ExtACKeywords;
16424
 
  friend class ::WinAsm;
16425
 
  friend class ::WinDeclSpecs;
16426
 
  friend class ::WinMemberExplSpec;
16427
 
  friend class ::WinTypeKeywords;
 
19028
  friend class ::ExtGnu;
16428
19029
  friend class ::PragmaOnceUnitState;
16429
19030
  friend class ::PragmaOnce;
16430
 
  friend class ::CCExprResolve;
16431
 
  friend class ::CExprResolve;
 
19031
  friend class ::CMatchSyntax;
16432
19032
 
16433
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
19033
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
16434
19034
 
16435
19035
  Token *_problem_token;
16436
19036
  bool _have_error;
16443
19043
 
16444
19044
public: 
16445
19045
  struct State : public TokenProvider::State {
16446
 
#line 16447 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
19046
#line 19047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
19047
  friend class ::CCExprResolve;
 
19048
  friend class ::CExprResolve;
16447
19049
  friend class ::WinIfExists;
16448
19050
  friend class ::WinImportHandler;
16449
19051
  friend class ::WinMacros;
16450
 
  friend class ::CMatchSyntax;
16451
 
  friend class ::ExtGnu;
 
19052
  friend class ::WinAsm;
 
19053
  friend class ::WinDeclSpecs;
 
19054
  friend class ::WinMemberExplSpec;
 
19055
  friend class ::WinTypeKeywords;
 
19056
  friend class ::WinFriend;
16452
19057
  friend class ::ExtAC;
16453
19058
  friend class ::ExtACBuilderCoupling;
16454
19059
  friend class ::ExtACSyntaxCoupling;
16455
19060
  friend class ::ExtACTree;
16456
19061
  friend class ::ExtACKeywords;
16457
 
  friend class ::WinAsm;
16458
 
  friend class ::WinDeclSpecs;
16459
 
  friend class ::WinMemberExplSpec;
16460
 
  friend class ::WinTypeKeywords;
 
19062
  friend class ::ExtGnu;
16461
19063
  friend class ::PragmaOnceUnitState;
16462
19064
  friend class ::PragmaOnce;
16463
 
  friend class ::CCExprResolve;
16464
 
  friend class ::CExprResolve;
 
19065
  friend class ::CMatchSyntax;
16465
19066
 
16466
 
#line 46 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
19067
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
16467
19068
 
16468
19069
    State () {}
16469
19070
    State (int) {}
16478
19079
  CTree *run (TokenProvider &);
16479
19080
  template <class T> CTree *run (TokenProvider &, CTree *(T::*)());
16480
19081
  
16481
 
#line 16482 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
16482
 
 
16483
 
 
16484
 
struct TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 {
16485
 
  typedef void Result;
16486
 
  typedef ::Puma::Syntax That;
16487
 
  typedef ::Puma::Syntax Target;
 
19082
#line 19083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
19083
 
 
19084
 
 
19085
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 {
 
19086
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 __TJP;
 
19087
  typedef TResult Result;
 
19088
  typedef TThat   That;
 
19089
  typedef TTarget Target;
 
19090
  enum { ARGS = TArgs::ARGS };
 
19091
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
16488
19092
  static const int JPID = 54;
16489
19093
  static const AC::JPType JPTYPE = (AC::JPType)8;
16490
19094
  struct Res {
16491
 
    typedef void Type;
16492
 
    typedef void ReferredType;
16493
 
  };
16494
 
  enum { ARGS = 1 };
16495
 
  template <int I, int DUMMY = 0> struct Arg {
16496
 
    typedef void Type;
16497
 
    typedef void ReferredType;
16498
 
  };
16499
 
  template <int DUMMY> struct Arg<0, DUMMY> {
16500
 
    typedef ::Puma::Config & Type;
16501
 
    typedef ::Puma::Config ReferredType;
 
19095
    typedef TResult Type;
 
19096
    typedef TResult ReferredType;
16502
19097
  };
16503
19098
 
16504
 
  void **_args;
 
19099
  void *_args[ARGS];
16505
19100
 
16506
19101
  inline void *arg (int n) {return _args[n];}
16507
19102
  template <int I> typename Arg<I>::ReferredType *arg () {
16508
19103
    return (typename Arg<I>::ReferredType*)arg (I);
16509
19104
  }
16510
19105
 
16511
 
};
16512
 
struct Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_CMatchSyntax_CMatchSyntax_a25_before {
16513
 
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 TJP;
16514
 
  template <int I, int DUMMY = 0> struct Arg {
16515
 
    void val (TJP *tjp) {} // for VC7
16516
 
  };
16517
 
  template <int DUMMY> struct Arg<0, DUMMY> {
16518
 
    static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
16519
 
  };
16520
 
};
16521
 
struct Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_ExtGnu_ExtGnu_a15_before {
16522
 
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 TJP;
16523
 
  template <int I, int DUMMY = 0> struct Arg {
16524
 
    void val (TJP *tjp) {} // for VC7
16525
 
  };
16526
 
  template <int DUMMY> struct Arg<0, DUMMY> {
16527
 
    static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
16528
 
  };
16529
 
};
16530
 
 
16531
 
 
16532
 
#line 59 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
19106
struct Binding_CMatchSyntax_CMatchSyntax_a25_before {
 
19107
  typedef __TJP TJP;
 
19108
  template <int I, int DUMMY = 0> struct Arg {
 
19109
    void val (TJP *tjp) {} // for VC7
 
19110
  };
 
19111
  template <int DUMMY> struct Arg<0, DUMMY> {
 
19112
    static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
 
19113
  };
 
19114
};
 
19115
struct Binding_ExtGnu_ExtGnu_a15_before {
 
19116
  typedef __TJP TJP;
 
19117
  template <int I, int DUMMY = 0> struct Arg {
 
19118
    void val (TJP *tjp) {} // for VC7
 
19119
  };
 
19120
  template <int DUMMY> struct Arg<0, DUMMY> {
 
19121
    static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
 
19122
  };
 
19123
};
 
19124
};
 
19125
 
 
19126
 
 
19127
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
16533
19128
virtual void configure (Config & arg0) 
16534
 
#line 16535 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
19129
#line 19130 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
16535
19130
{
16536
 
  void *args__ZN4Puma6Syntax9configureERN4PumaE6Config[] = { (void*)&arg0 };
16537
 
  TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 tjp;
16538
 
  tjp._args = args__ZN4Puma6Syntax9configureERN4PumaE6Config;
16539
 
  AC::invoke_CMatchSyntax_CMatchSyntax_a25_before<TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0, Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_CMatchSyntax_CMatchSyntax_a25_before> (&tjp);
16540
 
  AC::invoke_ExtGnu_ExtGnu_a15_before<TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0, Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_ExtGnu_ExtGnu_a15_before> (&tjp);
16541
 
this->__exec_old_configure(arg0);
16542
 
 
 
19131
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0< void, ::Puma::Syntax , ::Puma::Syntax ,  AC::TL< ::Puma::Config & , AC::TLE > > __TJP;
 
19132
    __TJP tjp;
 
19133
  tjp._args[0] = (void*)&arg0;
 
19134
  AC::invoke_CMatchSyntax_CMatchSyntax_a25_before<__TJP> (&tjp);
 
19135
  AC::invoke_ExtGnu_ExtGnu_a15_before<__TJP> (&tjp);
 
19136
    this->__exec_old_configure(arg0);
 
19137
  
16543
19138
}
16544
 
inline void __exec_old_configure(::Puma::Config & )
16545
 
#line 59 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
19139
__attribute__((always_inline)) inline void __exec_old_configure(::Puma::Config & )
 
19140
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
16546
19141
{}
16547
19142
  TokenProvider *provider () const { return token_provider; }
16548
19143
  Token *problem () const;
16752
19347
 
16753
19348
#endif /* __Syntax_h__ */
16754
19349
 
16755
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Semantic.h"
 
19350
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Semantic.h"
16756
19351
// This file is part of PUMA.
16757
19352
// Copyright (C) 1999-2003  The PUMA developer team.
16758
19353
//                                                                
16775
19370
#define __Semantic_h__
16776
19371
 
16777
19372
 
16778
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
19373
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
16779
19374
 
16780
 
#line 16781 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
19375
#line 19376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
16781
19376
 
16782
19377
#ifndef __ac_fwd_ExtAC__
16783
19378
#define __ac_fwd_ExtAC__
16784
19379
class ExtAC;
16785
19380
namespace AC {
16786
19381
  template <class JoinPoint>
16787
 
  inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp);
16788
 
  template <class JoinPoint>
16789
 
  inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp);
16790
 
  template <class JoinPoint>
16791
 
  inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp);
16792
 
  template <class JoinPoint>
16793
 
  inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp);
16794
 
  template <class JoinPoint>
16795
 
  inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp);
16796
 
  template <class JoinPoint, class Binding>
16797
 
  inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp);
16798
 
  template <class JoinPoint>
16799
 
  inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp);
16800
 
  template <class JoinPoint, class Binding>
16801
 
  inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp);
16802
 
  template <class JoinPoint>
16803
 
  inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp);
16804
 
  template <class JoinPoint>
16805
 
  inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp);
16806
 
  template <class JoinPoint>
16807
 
  inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp);
16808
 
}
16809
 
#endif
16810
 
 
16811
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
16812
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
16813
 
#endif
16814
 
 
16815
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
16816
 
 
16817
 
#line 16818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
16818
 
 
16819
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
16820
 
// This file is part of PUMA.
16821
 
// Copyright (C) 1999-2003  The PUMA developer team.
16822
 
//                                                                
16823
 
// This program is free software;  you can redistribute it and/or 
16824
 
// modify it under the terms of the GNU General Public License as 
16825
 
// published by the Free Software Foundation; either version 2 of 
16826
 
// the License, or (at your option) any later version.            
16827
 
//                                                                
16828
 
// This program is distributed in the hope that it will be useful,
16829
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
16830
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
16831
 
// GNU General Public License for more details.                   
16832
 
//                                                                
16833
 
// You should have received a copy of the GNU General Public      
16834
 
// License along with this program; if not, write to the Free     
16835
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
16836
 
// MA  02111-1307  USA                                            
16837
 
 
16838
 
#ifndef __ext_ac_ah__
16839
 
#define __ext_ac_ah__
16840
 
 
16841
 
 
16842
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
16843
 
// This file is part of PUMA.
16844
 
// Copyright (C) 1999-2003  The PUMA developer team.
16845
 
//                                                                
16846
 
// This program is free software;  you can redistribute it and/or 
16847
 
// modify it under the terms of the GNU General Public License as 
16848
 
// published by the Free Software Foundation; either version 2 of 
16849
 
// the License, or (at your option) any later version.            
16850
 
//                                                                
16851
 
// This program is distributed in the hope that it will be useful,
16852
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
16853
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
16854
 
// GNU General Public License for more details.                   
16855
 
//                                                                
16856
 
// You should have received a copy of the GNU General Public      
16857
 
// License along with this program; if not, write to the Free     
16858
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
16859
 
// MA  02111-1307  USA                                            
16860
 
 
16861
 
#ifndef __ACTree_h__
16862
 
#define __ACTree_h__
16863
 
 
16864
 
 
16865
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
16866
 
 
16867
 
#line 16868 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
16868
 
 
16869
 
#ifndef __ac_fwd_ExtACTree__
16870
 
#define __ac_fwd_ExtACTree__
16871
 
class ExtACTree;
16872
 
namespace AC {
16873
 
  template <class JoinPoint>
16874
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
16875
 
  template <class JoinPoint>
16876
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
16877
 
}
16878
 
#endif
16879
 
 
16880
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
16881
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
16882
 
#endif
16883
 
 
16884
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
16885
 
 
16886
 
#line 16887 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
16887
 
 
16888
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
16889
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
16890
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
16891
 
 
16892
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
16893
 
// This file is part of PUMA.
16894
 
// Copyright (C) 1999-2003  The PUMA developer team.
16895
 
//                                                                
16896
 
// This program is free software;  you can redistribute it and/or 
16897
 
// modify it under the terms of the GNU General Public License as 
16898
 
// published by the Free Software Foundation; either version 2 of 
16899
 
// the License, or (at your option) any later version.            
16900
 
//                                                                
16901
 
// This program is distributed in the hope that it will be useful,
16902
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
16903
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
16904
 
// GNU General Public License for more details.                   
16905
 
//                                                                
16906
 
// You should have received a copy of the GNU General Public      
16907
 
// License along with this program; if not, write to the Free     
16908
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
16909
 
// MA  02111-1307  USA                                            
16910
 
 
16911
 
#ifndef __CTree_h__
16912
 
#define __CTree_h__
16913
 
 
16914
 
namespace Puma {
16915
 
 
16916
 
 
16917
 
// Syntax tree node hierarchy:
16918
 
class CTree;
16919
 
class   CT_Statement;          
16920
 
class     CT_LabelStmt;
16921
 
class     CT_IfStmt;
16922
 
class     CT_IfElseStmt;
16923
 
class     CT_SwitchStmt;
16924
 
class     CT_BreakStmt;
16925
 
class     CT_ExprStmt;
16926
 
class     CT_WhileStmt;
16927
 
class     CT_DoStmt;
16928
 
class     CT_ForStmt;
16929
 
class     CT_ContinueStmt;
16930
 
class     CT_ReturnStmt;
16931
 
class     CT_GotoStmt;
16932
 
class     CT_DeclStmt;
16933
 
class     CT_CaseStmt;
16934
 
class     CT_DefaultStmt;
16935
 
class     CT_TryStmt;
16936
 
class   CT_Expression;
16937
 
class     CT_ThrowExpr;
16938
 
class     CT_NewExpr;
16939
 
class     CT_DeleteExpr;
16940
 
class     CT_ConstructExpr;
16941
 
class     CT_Integer;
16942
 
class     CT_Character;
16943
 
class       CT_WideCharacter;
16944
 
class     CT_Float;
16945
 
class     CT_Bool;
16946
 
class     CT_BracedExpr;
16947
 
class     CT_BinaryExpr;
16948
 
class       CT_MembPtrExpr;
16949
 
class         CT_MembRefExpr;
16950
 
class     CT_UnaryExpr;
16951
 
class       CT_PostfixExpr;
16952
 
class       CT_AddrExpr;
16953
 
class       CT_DerefExpr;
16954
 
class     CT_IfThenExpr;
16955
 
class     CT_CmpdLiteral;
16956
 
class     CT_IndexExpr;
16957
 
class     CT_CallExpr;
16958
 
class     CT_CastExpr;
16959
 
class     CT_StaticCast;
16960
 
class       CT_ConstCast;
16961
 
class       CT_ReintCast;
16962
 
class       CT_DynamicCast;
16963
 
class     CT_TypeidExpr;
16964
 
class     CT_SizeofExpr;
16965
 
class     CT_MembDesignator;
16966
 
class     CT_IndexDesignator;
16967
 
class     CT_ImplicitCast;
16968
 
class   CT_DeclSpec;
16969
 
class     CT_PrimDeclSpec;
16970
 
class     CT_NamedType;
16971
 
class     CT_ClassSpec;
16972
 
class       CT_UnionSpec;
16973
 
class       CT_EnumSpec;
16974
 
class     CT_ExceptionSpec;
16975
 
class   CT_Declarator;
16976
 
class     CT_InitDeclarator;
16977
 
class     CT_BracedDeclarator;
16978
 
class     CT_ArrayDeclarator;
16979
 
class     CT_FctDeclarator;
16980
 
class     CT_RefDeclarator;
16981
 
class     CT_PtrDeclarator;
16982
 
class     CT_MembPtrDeclarator;
16983
 
class     CT_BitFieldDeclarator;
16984
 
class   CT_Decl;
16985
 
class     CT_ObjDecl;
16986
 
class     CT_ArgDecl;
16987
 
class     CT_AccessDecl;
16988
 
class       CT_UsingDecl;
16989
 
class     CT_FctDef;
16990
 
class     CT_AsmDef;
16991
 
class     CT_EnumDef;
16992
 
class     CT_ClassDef;
16993
 
class       CT_UnionDef;
16994
 
class     CT_Enumerator;
16995
 
class     CT_LinkageSpec;
16996
 
class     CT_Handler;
16997
 
class     CT_TemplateDecl;
16998
 
class     CT_TemplateParamDecl;
16999
 
class       CT_TypeParamDecl;
17000
 
class       CT_NonTypeParamDecl;
17001
 
class     CT_NamespaceDef;
17002
 
class     CT_NamespaceAliasDef;
17003
 
class     CT_UsingDirective;
17004
 
class   CT_List;
17005
 
class     CT_CmpdStmt;
17006
 
class     CT_DeclSpecSeq;
17007
 
class     CT_HandlerSeq;
17008
 
class     CT_DesignatorSeq;
17009
 
class     CT_DeclList;
17010
 
class       CT_Program;
17011
 
class       CT_ArgDeclList;
17012
 
class         CT_ArgNameList;
17013
 
class       CT_ArgDeclSeq;
17014
 
class       CT_MembList;
17015
 
class     CT_ExprList;
17016
 
class     CT_DeclaratorList;
17017
 
class     CT_BaseSpecList;
17018
 
class     CT_MembInitList;
17019
 
class     CT_SimpleName;
17020
 
class       CT_SpecialName;
17021
 
class         CT_PrivateName;
17022
 
class         CT_OperatorName;
17023
 
class         CT_DestructorName;
17024
 
class         CT_ConversionName;
17025
 
class         CT_TemplateName;
17026
 
class       CT_QualName;
17027
 
class         CT_RootQualName;
17028
 
class     CT_String;
17029
 
class       CT_WideString;
17030
 
class     CT_TemplateParamList;
17031
 
class     CT_TemplateArgList;
17032
 
class   CT_Token;
17033
 
class   CT_Error;
17034
 
class   CT_Condition;
17035
 
class   CT_BaseSpec;
17036
 
class   CT_AccessSpec;
17037
 
class   CT_ArrayDelimiter;
17038
 
class   CT_Any;
17039
 
class   CT_AnyList;
17040
 
class   CT_AnyExtension;
17041
 
class   CT_AnyCondition;
17042
 
 
17043
 
 
17044
 
} // namespace Puma
17045
 
 
17046
 
#include "Puma/ErrorSeverity.h"
17047
 
#include "Puma/CSemObject.h"
17048
 
#include "Puma/CSemScope.h"
17049
 
#include "Puma/CSemValue.h"
17050
 
#include "Puma/CExprValue.h"
17051
 
#include "Puma/CStrLiteral.h"
17052
 
#include "Puma/CTypeInfo.h"
17053
 
#include "Puma/Printable.h"
17054
 
#include "Puma/CTokens.h"
17055
 
#include "Puma/Token.h"
17056
 
 
17057
 
#include <iostream>
17058
 
#include <string.h>
17059
 
using namespace std;
17060
 
 
17061
 
namespace Puma {
17062
 
 
17063
 
 
17064
 
class ErrorStream;
17065
 
class CObjectInfo;
17066
 
class CStructure;
17067
 
 
17068
 
/*****************************************************************************/
17069
 
/*                                                                           */
17070
 
/*                    S y n t a x  t r e e  n o d e s                        */
17071
 
/*                                                                           */
17072
 
/*****************************************************************************/
17073
 
 
17074
 
 
17075
 
#line 17076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17076
 
} // closed Puma
17077
 
class WinIfExists;
17078
 
class WinImportHandler;
17079
 
class WinMacros;
17080
 
class CMatchSyntax;
17081
 
class ExtGnu;
17082
 
class ExtAC;
17083
 
class ExtACBuilderCoupling;
17084
 
class ExtACSyntaxCoupling;
17085
 
class ExtACTree;
17086
 
class ExtACKeywords;
17087
 
class WinAsm;
17088
 
class WinDeclSpecs;
17089
 
class WinMemberExplSpec;
17090
 
class WinTypeKeywords;
17091
 
class PragmaOnceUnitState;
17092
 
class PragmaOnce;
17093
 
class CCExprResolve;
17094
 
class CExprResolve;
17095
 
namespace Puma {
17096
 
 
17097
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17098
 
class CTree {
17099
 
#line 17100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17100
 
  friend class ::WinIfExists;
17101
 
  friend class ::WinImportHandler;
17102
 
  friend class ::WinMacros;
17103
 
  friend class ::CMatchSyntax;
17104
 
  friend class ::ExtGnu;
17105
 
  friend class ::ExtAC;
17106
 
  friend class ::ExtACBuilderCoupling;
17107
 
  friend class ::ExtACSyntaxCoupling;
17108
 
  friend class ::ExtACTree;
17109
 
  friend class ::ExtACKeywords;
17110
 
  friend class ::WinAsm;
17111
 
  friend class ::WinDeclSpecs;
17112
 
  friend class ::WinMemberExplSpec;
17113
 
  friend class ::WinTypeKeywords;
17114
 
  friend class ::PragmaOnceUnitState;
17115
 
  friend class ::PragmaOnce;
17116
 
  friend class ::CCExprResolve;
17117
 
  friend class ::CExprResolve;
17118
 
 
17119
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17120
 
 
17121
 
public:
17122
 
  /*DEBUG*/static int alloc;
17123
 
  /*DEBUG*/static int release;
17124
 
 
17125
 
protected:
17126
 
  CTree *Son (CTree * const *, int, int) const;
17127
 
  int Sons (CTree * const *, int) const;
17128
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
17129
 
  
17130
 
protected:
17131
 
  CTree () { /*DEBUG*/alloc++; }
17132
 
 
17133
 
public:
17134
 
  virtual ~CTree () { /*DEBUG*/release++; }
17135
 
  virtual int Sons () const = 0;
17136
 
  virtual CTree *Son (int n) const { return (CTree*)0; }
17137
 
  virtual const char *NodeName () const = 0;
17138
 
  virtual Token *token () const;
17139
 
  virtual Token *end_token () const;
17140
 
  virtual CT_Token *token_node () const;
17141
 
  virtual CT_Token *end_token_node () const;
17142
 
  virtual void ReplaceSon (CTree *, CTree *) {}
17143
 
 
17144
 
public: // semantic information
17145
 
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
17146
 
  virtual CExprValue *Value () const { return (CExprValue*)0; }
17147
 
  
17148
 
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
17149
 
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
17150
 
  
17151
 
public: // node classification function
17152
 
  virtual CT_SimpleName *IsSimpleName () { return 0; }
17153
 
  virtual CT_Declarator *IsDeclarator () { return 0; }
17154
 
   private:
17155
 
  typedef CTree CCExprResolveCTree;
17156
 
 
17157
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17158
 
 public :
17159
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
17160
 
  typedef CTree CExprResolveCTree;
17161
 
 
17162
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17163
 
 public :
17164
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17165
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17166
 
};
17167
 
 
17168
 
 
17169
 
#line 17170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17170
 
} // closed Puma
17171
 
class WinIfExists;
17172
 
class WinImportHandler;
17173
 
class WinMacros;
17174
 
class CMatchSyntax;
17175
 
class ExtGnu;
17176
 
class ExtAC;
17177
 
class ExtACBuilderCoupling;
17178
 
class ExtACSyntaxCoupling;
17179
 
class ExtACTree;
17180
 
class ExtACKeywords;
17181
 
class WinAsm;
17182
 
class WinDeclSpecs;
17183
 
class WinMemberExplSpec;
17184
 
class WinTypeKeywords;
17185
 
class PragmaOnceUnitState;
17186
 
class PragmaOnce;
17187
 
class CCExprResolve;
17188
 
class CExprResolve;
17189
 
namespace Puma {
17190
 
 
17191
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17192
 
class CT_Error : public CTree {
17193
 
#line 17194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17194
 
  friend class ::WinIfExists;
17195
 
  friend class ::WinImportHandler;
17196
 
  friend class ::WinMacros;
17197
 
  friend class ::CMatchSyntax;
17198
 
  friend class ::ExtGnu;
17199
 
  friend class ::ExtAC;
17200
 
  friend class ::ExtACBuilderCoupling;
17201
 
  friend class ::ExtACSyntaxCoupling;
17202
 
  friend class ::ExtACTree;
17203
 
  friend class ::ExtACKeywords;
17204
 
  friend class ::WinAsm;
17205
 
  friend class ::WinDeclSpecs;
17206
 
  friend class ::WinMemberExplSpec;
17207
 
  friend class ::WinTypeKeywords;
17208
 
  friend class ::PragmaOnceUnitState;
17209
 
  friend class ::PragmaOnce;
17210
 
  friend class ::CCExprResolve;
17211
 
  friend class ::CExprResolve;
17212
 
 
17213
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17214
 
 
17215
 
public:
17216
 
  static const char *NodeId ();
17217
 
  const char *NodeName () const { return NodeId (); }
17218
 
  int Sons () const { return 0; }
17219
 
};
17220
 
 
17221
 
 
17222
 
#line 17223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17223
 
} // closed Puma
17224
 
class WinIfExists;
17225
 
class WinImportHandler;
17226
 
class WinMacros;
17227
 
class CMatchSyntax;
17228
 
class ExtGnu;
17229
 
class ExtAC;
17230
 
class ExtACBuilderCoupling;
17231
 
class ExtACSyntaxCoupling;
17232
 
class ExtACTree;
17233
 
class ExtACKeywords;
17234
 
class WinAsm;
17235
 
class WinDeclSpecs;
17236
 
class WinMemberExplSpec;
17237
 
class WinTypeKeywords;
17238
 
class PragmaOnceUnitState;
17239
 
class PragmaOnce;
17240
 
class CCExprResolve;
17241
 
class CExprResolve;
17242
 
namespace Puma {
17243
 
 
17244
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17245
 
class CT_Token : public CTree {
17246
 
#line 17247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17247
 
  friend class ::WinIfExists;
17248
 
  friend class ::WinImportHandler;
17249
 
  friend class ::WinMacros;
17250
 
  friend class ::CMatchSyntax;
17251
 
  friend class ::ExtGnu;
17252
 
  friend class ::ExtAC;
17253
 
  friend class ::ExtACBuilderCoupling;
17254
 
  friend class ::ExtACSyntaxCoupling;
17255
 
  friend class ::ExtACTree;
17256
 
  friend class ::ExtACKeywords;
17257
 
  friend class ::WinAsm;
17258
 
  friend class ::WinDeclSpecs;
17259
 
  friend class ::WinMemberExplSpec;
17260
 
  friend class ::WinTypeKeywords;
17261
 
  friend class ::PragmaOnceUnitState;
17262
 
  friend class ::PragmaOnce;
17263
 
  friend class ::CCExprResolve;
17264
 
  friend class ::CExprResolve;
17265
 
 
17266
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17267
 
 
17268
 
  Token *_token;
17269
 
  unsigned long int _number;
17270
 
  
17271
 
public:
17272
 
  CT_Token (Token *t, unsigned long int n = 0) : 
17273
 
    _token (t), _number (n) {}
17274
 
  static const char *NodeId ();
17275
 
  const char *NodeName () const { return NodeId (); }
17276
 
  int Sons () const { return 0; }
17277
 
  Token *token () const { return _token; }
17278
 
  Token *end_token () const { return _token; }
17279
 
  CT_Token *token_node () const { return (CT_Token*)this; }
17280
 
  CT_Token *end_token_node () const { return (CT_Token*)this; }
17281
 
  void Number (unsigned long int n) { _number = n; }
17282
 
  unsigned long int Number () const { return _number; }
17283
 
  // special new / delete with reusing memory
17284
 
  void *operator new (size_t);
17285
 
  void  operator delete (void *);
17286
 
};
17287
 
 
17288
 
/*****************************************************************************/
17289
 
/*                                                                           */
17290
 
/*                              List nodes                                   */
17291
 
/*                                                                           */
17292
 
/*****************************************************************************/
17293
 
 
17294
 
 
17295
 
#line 17296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17296
 
} // closed Puma
17297
 
class WinIfExists;
17298
 
class WinImportHandler;
17299
 
class WinMacros;
17300
 
class CMatchSyntax;
17301
 
class ExtGnu;
17302
 
class ExtAC;
17303
 
class ExtACBuilderCoupling;
17304
 
class ExtACSyntaxCoupling;
17305
 
class ExtACTree;
17306
 
class ExtACKeywords;
17307
 
class WinAsm;
17308
 
class WinDeclSpecs;
17309
 
class WinMemberExplSpec;
17310
 
class WinTypeKeywords;
17311
 
class PragmaOnceUnitState;
17312
 
class PragmaOnce;
17313
 
class CCExprResolve;
17314
 
class CExprResolve;
17315
 
namespace Puma {
17316
 
 
17317
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17318
 
class CT_List : public CTree {
17319
 
#line 17320 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17320
 
  friend class ::WinIfExists;
17321
 
  friend class ::WinImportHandler;
17322
 
  friend class ::WinMacros;
17323
 
  friend class ::CMatchSyntax;
17324
 
  friend class ::ExtGnu;
17325
 
  friend class ::ExtAC;
17326
 
  friend class ::ExtACBuilderCoupling;
17327
 
  friend class ::ExtACSyntaxCoupling;
17328
 
  friend class ::ExtACTree;
17329
 
  friend class ::ExtACKeywords;
17330
 
  friend class ::WinAsm;
17331
 
  friend class ::WinDeclSpecs;
17332
 
  friend class ::WinMemberExplSpec;
17333
 
  friend class ::WinTypeKeywords;
17334
 
  friend class ::PragmaOnceUnitState;
17335
 
  friend class ::PragmaOnce;
17336
 
  friend class ::CCExprResolve;
17337
 
  friend class ::CExprResolve;
17338
 
 
17339
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17340
 
 
17341
 
  Array<CTree*> _sons;
17342
 
  int _properties;
17343
 
 
17344
 
protected:
17345
 
  CT_List(int size = 5, int incr = 5, int props = 0) : 
17346
 
    _sons (size, incr), _properties (props) {}
17347
 
 
17348
 
public:
17349
 
  enum {
17350
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
17351
 
    CLOSE = 2,
17352
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
17353
 
    SEPARATORS = 4,   // the list has separators like ','
17354
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
17355
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
17356
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
17357
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
17358
 
  };
17359
 
 
17360
 
  int Entries () const;
17361
 
  CTree *Entry (int no) const;
17362
 
  int Sons () const { return _sons.length (); }
17363
 
  CTree *Son (int n) const { return _sons.lookup (n); }
17364
 
  int GetProperties () const { return _properties; }
17365
 
  void AddProperties (int p) { _properties |= p; }
17366
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
17367
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
17368
 
  void InsertSon (CTree *, CTree *);  // before given son
17369
 
  void ReplaceSon (CTree *, CTree *);
17370
 
  void RemoveSon (CTree *);
17371
 
  void InsertSon (int idx, CTree *s)
17372
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
17373
 
  void ReplaceSon (int idx, CTree *s) 
17374
 
   { if (idx < Sons ()) _sons[idx] = s; }
17375
 
  void RemoveSon (int idx) 
17376
 
   { if (idx < Sons ()) _sons.remove (idx); }
17377
 
};
17378
 
 
17379
 
 
17380
 
#line 17381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17381
 
} // closed Puma
17382
 
class WinIfExists;
17383
 
class WinImportHandler;
17384
 
class WinMacros;
17385
 
class CMatchSyntax;
17386
 
class ExtGnu;
17387
 
class ExtAC;
17388
 
class ExtACBuilderCoupling;
17389
 
class ExtACSyntaxCoupling;
17390
 
class ExtACTree;
17391
 
class ExtACKeywords;
17392
 
class WinAsm;
17393
 
class WinDeclSpecs;
17394
 
class WinMemberExplSpec;
17395
 
class WinTypeKeywords;
17396
 
class PragmaOnceUnitState;
17397
 
class PragmaOnce;
17398
 
class CCExprResolve;
17399
 
class CExprResolve;
17400
 
namespace Puma {
17401
 
 
17402
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17403
 
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
17404
 
#line 17405 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17405
 
  friend class ::WinIfExists;
17406
 
  friend class ::WinImportHandler;
17407
 
  friend class ::WinMacros;
17408
 
  friend class ::CMatchSyntax;
17409
 
  friend class ::ExtGnu;
17410
 
  friend class ::ExtAC;
17411
 
  friend class ::ExtACBuilderCoupling;
17412
 
  friend class ::ExtACSyntaxCoupling;
17413
 
  friend class ::ExtACTree;
17414
 
  friend class ::ExtACKeywords;
17415
 
  friend class ::WinAsm;
17416
 
  friend class ::WinDeclSpecs;
17417
 
  friend class ::WinMemberExplSpec;
17418
 
  friend class ::WinTypeKeywords;
17419
 
  friend class ::PragmaOnceUnitState;
17420
 
  friend class ::PragmaOnce;
17421
 
  friend class ::CCExprResolve;
17422
 
  friend class ::CExprResolve;
17423
 
 
17424
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17425
 
 
17426
 
public:
17427
 
  CT_ExprList () { AddProperties (SEPARATORS); }
17428
 
  static const char *NodeId ();
17429
 
  const char *NodeName () const { return NodeId (); }
17430
 
 
17431
 
  CTypeInfo *Type () const { return type; }
17432
 
  CExprValue *Value () const { return value; }
17433
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
17434
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
17435
 
};
17436
 
 
17437
 
 
17438
 
#line 17439 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17439
 
} // closed Puma
17440
 
class WinIfExists;
17441
 
class WinImportHandler;
17442
 
class WinMacros;
17443
 
class CMatchSyntax;
17444
 
class ExtGnu;
17445
 
class ExtAC;
17446
 
class ExtACBuilderCoupling;
17447
 
class ExtACSyntaxCoupling;
17448
 
class ExtACTree;
17449
 
class ExtACKeywords;
17450
 
class WinAsm;
17451
 
class WinDeclSpecs;
17452
 
class WinMemberExplSpec;
17453
 
class WinTypeKeywords;
17454
 
class PragmaOnceUnitState;
17455
 
class PragmaOnce;
17456
 
class CCExprResolve;
17457
 
class CExprResolve;
17458
 
namespace Puma {
17459
 
 
17460
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17461
 
class CT_DeclaratorList : public CT_List {
17462
 
#line 17463 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17463
 
  friend class ::WinIfExists;
17464
 
  friend class ::WinImportHandler;
17465
 
  friend class ::WinMacros;
17466
 
  friend class ::CMatchSyntax;
17467
 
  friend class ::ExtGnu;
17468
 
  friend class ::ExtAC;
17469
 
  friend class ::ExtACBuilderCoupling;
17470
 
  friend class ::ExtACSyntaxCoupling;
17471
 
  friend class ::ExtACTree;
17472
 
  friend class ::ExtACKeywords;
17473
 
  friend class ::WinAsm;
17474
 
  friend class ::WinDeclSpecs;
17475
 
  friend class ::WinMemberExplSpec;
17476
 
  friend class ::WinTypeKeywords;
17477
 
  friend class ::PragmaOnceUnitState;
17478
 
  friend class ::PragmaOnce;
17479
 
  friend class ::CCExprResolve;
17480
 
  friend class ::CExprResolve;
17481
 
 
17482
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17483
 
 
17484
 
public:
17485
 
  static const char *NodeId ();
17486
 
  const char *NodeName () const { return NodeId (); }
17487
 
};
17488
 
 
17489
 
 
17490
 
#line 17491 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17491
 
} // closed Puma
17492
 
class WinIfExists;
17493
 
class WinImportHandler;
17494
 
class WinMacros;
17495
 
class CMatchSyntax;
17496
 
class ExtGnu;
17497
 
class ExtAC;
17498
 
class ExtACBuilderCoupling;
17499
 
class ExtACSyntaxCoupling;
17500
 
class ExtACTree;
17501
 
class ExtACKeywords;
17502
 
class WinAsm;
17503
 
class WinDeclSpecs;
17504
 
class WinMemberExplSpec;
17505
 
class WinTypeKeywords;
17506
 
class PragmaOnceUnitState;
17507
 
class PragmaOnce;
17508
 
class CCExprResolve;
17509
 
class CExprResolve;
17510
 
namespace Puma {
17511
 
 
17512
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17513
 
class CT_EnumeratorList : public CT_List {
17514
 
#line 17515 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17515
 
  friend class ::WinIfExists;
17516
 
  friend class ::WinImportHandler;
17517
 
  friend class ::WinMacros;
17518
 
  friend class ::CMatchSyntax;
17519
 
  friend class ::ExtGnu;
17520
 
  friend class ::ExtAC;
17521
 
  friend class ::ExtACBuilderCoupling;
17522
 
  friend class ::ExtACSyntaxCoupling;
17523
 
  friend class ::ExtACTree;
17524
 
  friend class ::ExtACKeywords;
17525
 
  friend class ::WinAsm;
17526
 
  friend class ::WinDeclSpecs;
17527
 
  friend class ::WinMemberExplSpec;
17528
 
  friend class ::WinTypeKeywords;
17529
 
  friend class ::PragmaOnceUnitState;
17530
 
  friend class ::PragmaOnce;
17531
 
  friend class ::CCExprResolve;
17532
 
  friend class ::CExprResolve;
17533
 
 
17534
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17535
 
 
17536
 
public:
17537
 
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
17538
 
  static const char *NodeId ();
17539
 
  const char *NodeName () const { return NodeId (); }
17540
 
};
17541
 
   
17542
 
 
17543
 
#line 17544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17544
 
} // closed Puma
17545
 
class WinIfExists;
17546
 
class WinImportHandler;
17547
 
class WinMacros;
17548
 
class CMatchSyntax;
17549
 
class ExtGnu;
17550
 
class ExtAC;
17551
 
class ExtACBuilderCoupling;
17552
 
class ExtACSyntaxCoupling;
17553
 
class ExtACTree;
17554
 
class ExtACKeywords;
17555
 
class WinAsm;
17556
 
class WinDeclSpecs;
17557
 
class WinMemberExplSpec;
17558
 
class WinTypeKeywords;
17559
 
class PragmaOnceUnitState;
17560
 
class PragmaOnce;
17561
 
class CCExprResolve;
17562
 
class CExprResolve;
17563
 
namespace Puma {
17564
 
 
17565
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17566
 
class CT_DeclList : public CT_List {
17567
 
#line 17568 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17568
 
  friend class ::WinIfExists;
17569
 
  friend class ::WinImportHandler;
17570
 
  friend class ::WinMacros;
17571
 
  friend class ::CMatchSyntax;
17572
 
  friend class ::ExtGnu;
17573
 
  friend class ::ExtAC;
17574
 
  friend class ::ExtACBuilderCoupling;
17575
 
  friend class ::ExtACSyntaxCoupling;
17576
 
  friend class ::ExtACTree;
17577
 
  friend class ::ExtACKeywords;
17578
 
  friend class ::WinAsm;
17579
 
  friend class ::WinDeclSpecs;
17580
 
  friend class ::WinMemberExplSpec;
17581
 
  friend class ::WinTypeKeywords;
17582
 
  friend class ::PragmaOnceUnitState;
17583
 
  friend class ::PragmaOnce;
17584
 
  friend class ::CCExprResolve;
17585
 
  friend class ::CExprResolve;
17586
 
 
17587
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17588
 
 
17589
 
public:
17590
 
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
17591
 
  static const char *NodeId ();
17592
 
  const char *NodeName () const { return NodeId (); }
17593
 
  void Linkage (CT_LinkageSpec *l);
17594
 
};
17595
 
 
17596
 
 
17597
 
#line 17598 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17598
 
} // closed Puma
17599
 
class WinIfExists;
17600
 
class WinImportHandler;
17601
 
class WinMacros;
17602
 
class CMatchSyntax;
17603
 
class ExtGnu;
17604
 
class ExtAC;
17605
 
class ExtACBuilderCoupling;
17606
 
class ExtACSyntaxCoupling;
17607
 
class ExtACTree;
17608
 
class ExtACKeywords;
17609
 
class WinAsm;
17610
 
class WinDeclSpecs;
17611
 
class WinMemberExplSpec;
17612
 
class WinTypeKeywords;
17613
 
class PragmaOnceUnitState;
17614
 
class PragmaOnce;
17615
 
class CCExprResolve;
17616
 
class CExprResolve;
17617
 
namespace Puma {
17618
 
 
17619
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17620
 
class CT_DeclSpecSeq : public CT_List {
17621
 
#line 17622 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17622
 
  friend class ::WinIfExists;
17623
 
  friend class ::WinImportHandler;
17624
 
  friend class ::WinMacros;
17625
 
  friend class ::CMatchSyntax;
17626
 
  friend class ::ExtGnu;
17627
 
  friend class ::ExtAC;
17628
 
  friend class ::ExtACBuilderCoupling;
17629
 
  friend class ::ExtACSyntaxCoupling;
17630
 
  friend class ::ExtACTree;
17631
 
  friend class ::ExtACKeywords;
17632
 
  friend class ::WinAsm;
17633
 
  friend class ::WinDeclSpecs;
17634
 
  friend class ::WinMemberExplSpec;
17635
 
  friend class ::WinTypeKeywords;
17636
 
  friend class ::PragmaOnceUnitState;
17637
 
  friend class ::PragmaOnce;
17638
 
  friend class ::CCExprResolve;
17639
 
  friend class ::CExprResolve;
17640
 
 
17641
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17642
 
 
17643
 
public:
17644
 
  static const char *NodeId ();
17645
 
  const char *NodeName () const { return NodeId (); }
17646
 
};
17647
 
 
17648
 
 
17649
 
#line 17650 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17650
 
} // closed Puma
17651
 
class WinIfExists;
17652
 
class WinImportHandler;
17653
 
class WinMacros;
17654
 
class CMatchSyntax;
17655
 
class ExtGnu;
17656
 
class ExtAC;
17657
 
class ExtACBuilderCoupling;
17658
 
class ExtACSyntaxCoupling;
17659
 
class ExtACTree;
17660
 
class ExtACKeywords;
17661
 
class WinAsm;
17662
 
class WinDeclSpecs;
17663
 
class WinMemberExplSpec;
17664
 
class WinTypeKeywords;
17665
 
class PragmaOnceUnitState;
17666
 
class PragmaOnce;
17667
 
class CCExprResolve;
17668
 
class CExprResolve;
17669
 
namespace Puma {
17670
 
 
17671
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17672
 
class CT_CmpdStmt : public CT_List, public CSemScope {
17673
 
#line 17674 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17674
 
  friend class ::WinIfExists;
17675
 
  friend class ::WinImportHandler;
17676
 
  friend class ::WinMacros;
17677
 
  friend class ::CMatchSyntax;
17678
 
  friend class ::ExtGnu;
17679
 
  friend class ::ExtAC;
17680
 
  friend class ::ExtACBuilderCoupling;
17681
 
  friend class ::ExtACSyntaxCoupling;
17682
 
  friend class ::ExtACTree;
17683
 
  friend class ::ExtACKeywords;
17684
 
  friend class ::WinAsm;
17685
 
  friend class ::WinDeclSpecs;
17686
 
  friend class ::WinMemberExplSpec;
17687
 
  friend class ::WinTypeKeywords;
17688
 
  friend class ::PragmaOnceUnitState;
17689
 
  friend class ::PragmaOnce;
17690
 
  friend class ::CCExprResolve;
17691
 
  friend class ::CExprResolve;
17692
 
 
17693
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17694
 
 
17695
 
public:
17696
 
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
17697
 
  static const char *NodeId ();
17698
 
  const char *NodeName () const { return NodeId (); }
17699
 
};
17700
 
 
17701
 
 
17702
 
#line 17703 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17703
 
} // closed Puma
17704
 
class WinIfExists;
17705
 
class WinImportHandler;
17706
 
class WinMacros;
17707
 
class CMatchSyntax;
17708
 
class ExtGnu;
17709
 
class ExtAC;
17710
 
class ExtACBuilderCoupling;
17711
 
class ExtACSyntaxCoupling;
17712
 
class ExtACTree;
17713
 
class ExtACKeywords;
17714
 
class WinAsm;
17715
 
class WinDeclSpecs;
17716
 
class WinMemberExplSpec;
17717
 
class WinTypeKeywords;
17718
 
class PragmaOnceUnitState;
17719
 
class PragmaOnce;
17720
 
class CCExprResolve;
17721
 
class CExprResolve;
17722
 
namespace Puma {
17723
 
 
17724
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17725
 
class CT_HandlerSeq : public CT_List {
17726
 
#line 17727 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17727
 
  friend class ::WinIfExists;
17728
 
  friend class ::WinImportHandler;
17729
 
  friend class ::WinMacros;
17730
 
  friend class ::CMatchSyntax;
17731
 
  friend class ::ExtGnu;
17732
 
  friend class ::ExtAC;
17733
 
  friend class ::ExtACBuilderCoupling;
17734
 
  friend class ::ExtACSyntaxCoupling;
17735
 
  friend class ::ExtACTree;
17736
 
  friend class ::ExtACKeywords;
17737
 
  friend class ::WinAsm;
17738
 
  friend class ::WinDeclSpecs;
17739
 
  friend class ::WinMemberExplSpec;
17740
 
  friend class ::WinTypeKeywords;
17741
 
  friend class ::PragmaOnceUnitState;
17742
 
  friend class ::PragmaOnce;
17743
 
  friend class ::CCExprResolve;
17744
 
  friend class ::CExprResolve;
17745
 
 
17746
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17747
 
 
17748
 
public:
17749
 
  static const char *NodeId ();
17750
 
  const char *NodeName () const { return NodeId (); }
17751
 
};
17752
 
 
17753
 
 
17754
 
#line 17755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17755
 
} // closed Puma
17756
 
class WinIfExists;
17757
 
class WinImportHandler;
17758
 
class WinMacros;
17759
 
class CMatchSyntax;
17760
 
class ExtGnu;
17761
 
class ExtAC;
17762
 
class ExtACBuilderCoupling;
17763
 
class ExtACSyntaxCoupling;
17764
 
class ExtACTree;
17765
 
class ExtACKeywords;
17766
 
class WinAsm;
17767
 
class WinDeclSpecs;
17768
 
class WinMemberExplSpec;
17769
 
class WinTypeKeywords;
17770
 
class PragmaOnceUnitState;
17771
 
class PragmaOnce;
17772
 
class CCExprResolve;
17773
 
class CExprResolve;
17774
 
namespace Puma {
17775
 
 
17776
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17777
 
class CT_TemplateParamList : public CT_List, public CSemScope {
17778
 
#line 17779 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17779
 
  friend class ::WinIfExists;
17780
 
  friend class ::WinImportHandler;
17781
 
  friend class ::WinMacros;
17782
 
  friend class ::CMatchSyntax;
17783
 
  friend class ::ExtGnu;
17784
 
  friend class ::ExtAC;
17785
 
  friend class ::ExtACBuilderCoupling;
17786
 
  friend class ::ExtACSyntaxCoupling;
17787
 
  friend class ::ExtACTree;
17788
 
  friend class ::ExtACKeywords;
17789
 
  friend class ::WinAsm;
17790
 
  friend class ::WinDeclSpecs;
17791
 
  friend class ::WinMemberExplSpec;
17792
 
  friend class ::WinTypeKeywords;
17793
 
  friend class ::PragmaOnceUnitState;
17794
 
  friend class ::PragmaOnce;
17795
 
  friend class ::CCExprResolve;
17796
 
  friend class ::CExprResolve;
17797
 
 
17798
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17799
 
 
17800
 
public:
17801
 
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
17802
 
  static const char *NodeId ();
17803
 
  const char *NodeName () const { return NodeId (); }
17804
 
};
17805
 
 
17806
 
 
17807
 
#line 17808 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17808
 
} // closed Puma
17809
 
class WinIfExists;
17810
 
class WinImportHandler;
17811
 
class WinMacros;
17812
 
class CMatchSyntax;
17813
 
class ExtGnu;
17814
 
class ExtAC;
17815
 
class ExtACBuilderCoupling;
17816
 
class ExtACSyntaxCoupling;
17817
 
class ExtACTree;
17818
 
class ExtACKeywords;
17819
 
class WinAsm;
17820
 
class WinDeclSpecs;
17821
 
class WinMemberExplSpec;
17822
 
class WinTypeKeywords;
17823
 
class PragmaOnceUnitState;
17824
 
class PragmaOnce;
17825
 
class CCExprResolve;
17826
 
class CExprResolve;
17827
 
namespace Puma {
17828
 
 
17829
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17830
 
class CT_TemplateArgList : public CT_List {
17831
 
#line 17832 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17832
 
  friend class ::WinIfExists;
17833
 
  friend class ::WinImportHandler;
17834
 
  friend class ::WinMacros;
17835
 
  friend class ::CMatchSyntax;
17836
 
  friend class ::ExtGnu;
17837
 
  friend class ::ExtAC;
17838
 
  friend class ::ExtACBuilderCoupling;
17839
 
  friend class ::ExtACSyntaxCoupling;
17840
 
  friend class ::ExtACTree;
17841
 
  friend class ::ExtACKeywords;
17842
 
  friend class ::WinAsm;
17843
 
  friend class ::WinDeclSpecs;
17844
 
  friend class ::WinMemberExplSpec;
17845
 
  friend class ::WinTypeKeywords;
17846
 
  friend class ::PragmaOnceUnitState;
17847
 
  friend class ::PragmaOnce;
17848
 
  friend class ::CCExprResolve;
17849
 
  friend class ::CExprResolve;
17850
 
 
17851
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17852
 
 
17853
 
public:
17854
 
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
17855
 
  static const char *NodeId ();
17856
 
  const char *NodeName () const { return NodeId (); }
17857
 
};
17858
 
 
17859
 
/*****************************************************************************/
17860
 
/*                                                                           */
17861
 
/*                              Expressions                                  */
17862
 
/*                                                                           */
17863
 
/*****************************************************************************/
17864
 
 
17865
 
 
17866
 
#line 17867 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17867
 
} // closed Puma
17868
 
class WinIfExists;
17869
 
class WinImportHandler;
17870
 
class WinMacros;
17871
 
class CMatchSyntax;
17872
 
class ExtGnu;
17873
 
class ExtAC;
17874
 
class ExtACBuilderCoupling;
17875
 
class ExtACSyntaxCoupling;
17876
 
class ExtACTree;
17877
 
class ExtACKeywords;
17878
 
class WinAsm;
17879
 
class WinDeclSpecs;
17880
 
class WinMemberExplSpec;
17881
 
class WinTypeKeywords;
17882
 
class PragmaOnceUnitState;
17883
 
class PragmaOnce;
17884
 
class CCExprResolve;
17885
 
class CExprResolve;
17886
 
namespace Puma {
17887
 
 
17888
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17889
 
class CT_Expression : public CTree, public CSemValue {
17890
 
#line 17891 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17891
 
  friend class ::WinIfExists;
17892
 
  friend class ::WinImportHandler;
17893
 
  friend class ::WinMacros;
17894
 
  friend class ::CMatchSyntax;
17895
 
  friend class ::ExtGnu;
17896
 
  friend class ::ExtAC;
17897
 
  friend class ::ExtACBuilderCoupling;
17898
 
  friend class ::ExtACSyntaxCoupling;
17899
 
  friend class ::ExtACTree;
17900
 
  friend class ::ExtACKeywords;
17901
 
  friend class ::WinAsm;
17902
 
  friend class ::WinDeclSpecs;
17903
 
  friend class ::WinMemberExplSpec;
17904
 
  friend class ::WinTypeKeywords;
17905
 
  friend class ::PragmaOnceUnitState;
17906
 
  friend class ::PragmaOnce;
17907
 
  friend class ::CCExprResolve;
17908
 
  friend class ::CExprResolve;
17909
 
 
17910
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17911
 
 
17912
 
protected:
17913
 
  CT_Expression () {}
17914
 
 
17915
 
public:
17916
 
  static const char *NodeId ();
17917
 
  const char *NodeName () const { return NodeId (); }
17918
 
  CTypeInfo *Type () const { return type; }
17919
 
  CExprValue *Value () const { return value; }
17920
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
17921
 
   private:
17922
 
  typedef CT_Expression CCExprResolveExpr;
17923
 
 
17924
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17925
 
 public :
17926
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
17927
 
  typedef CT_Expression CExprResolveExpr;
17928
 
 
17929
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17930
 
 public :
17931
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
17932
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17933
 
};
17934
 
 
17935
 
 
17936
 
#line 17937 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17937
 
} // closed Puma
17938
 
class WinIfExists;
17939
 
class WinImportHandler;
17940
 
class WinMacros;
17941
 
class CMatchSyntax;
17942
 
class ExtGnu;
17943
 
class ExtAC;
17944
 
class ExtACBuilderCoupling;
17945
 
class ExtACSyntaxCoupling;
17946
 
class ExtACTree;
17947
 
class ExtACKeywords;
17948
 
class WinAsm;
17949
 
class WinDeclSpecs;
17950
 
class WinMemberExplSpec;
17951
 
class WinTypeKeywords;
17952
 
class PragmaOnceUnitState;
17953
 
class PragmaOnce;
17954
 
class CCExprResolve;
17955
 
class CExprResolve;
17956
 
namespace Puma {
17957
 
 
17958
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17959
 
class CT_String : public CT_List, public CSemValue {
17960
 
#line 17961 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
17961
 
  friend class ::WinIfExists;
17962
 
  friend class ::WinImportHandler;
17963
 
  friend class ::WinMacros;
17964
 
  friend class ::CMatchSyntax;
17965
 
  friend class ::ExtGnu;
17966
 
  friend class ::ExtAC;
17967
 
  friend class ::ExtACBuilderCoupling;
17968
 
  friend class ::ExtACSyntaxCoupling;
17969
 
  friend class ::ExtACTree;
17970
 
  friend class ::ExtACKeywords;
17971
 
  friend class ::WinAsm;
17972
 
  friend class ::WinDeclSpecs;
17973
 
  friend class ::WinMemberExplSpec;
17974
 
  friend class ::WinTypeKeywords;
17975
 
  friend class ::PragmaOnceUnitState;
17976
 
  friend class ::PragmaOnce;
17977
 
  friend class ::CCExprResolve;
17978
 
  friend class ::CExprResolve;
17979
 
 
17980
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
17981
 
 
17982
 
public:
17983
 
  CT_String (int size) : CT_List (size, 1) {}
17984
 
  static const char *NodeId ();
17985
 
  const char *NodeName () const { return NodeId (); }
17986
 
 
17987
 
  CTypeInfo *Type () const { return type; }
17988
 
  CExprValue *Value () const { return value; }
17989
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
17990
 
   private:
17991
 
  typedef CT_String CCExprResolveExpr;
17992
 
 
17993
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
17994
 
 public :
17995
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
17996
 
  typedef CT_String CExprResolveExpr;
17997
 
 
17998
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
17999
 
 public :
18000
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18001
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18002
 
};
18003
 
 
18004
 
 
18005
 
#line 18006 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18006
 
} // closed Puma
18007
 
class WinIfExists;
18008
 
class WinImportHandler;
18009
 
class WinMacros;
18010
 
class CMatchSyntax;
18011
 
class ExtGnu;
18012
 
class ExtAC;
18013
 
class ExtACBuilderCoupling;
18014
 
class ExtACSyntaxCoupling;
18015
 
class ExtACTree;
18016
 
class ExtACKeywords;
18017
 
class WinAsm;
18018
 
class WinDeclSpecs;
18019
 
class WinMemberExplSpec;
18020
 
class WinTypeKeywords;
18021
 
class PragmaOnceUnitState;
18022
 
class PragmaOnce;
18023
 
class CCExprResolve;
18024
 
class CExprResolve;
18025
 
namespace Puma {
18026
 
 
18027
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18028
 
class CT_WideString : public CT_String {
18029
 
#line 18030 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18030
 
  friend class ::WinIfExists;
18031
 
  friend class ::WinImportHandler;
18032
 
  friend class ::WinMacros;
18033
 
  friend class ::CMatchSyntax;
18034
 
  friend class ::ExtGnu;
18035
 
  friend class ::ExtAC;
18036
 
  friend class ::ExtACBuilderCoupling;
18037
 
  friend class ::ExtACSyntaxCoupling;
18038
 
  friend class ::ExtACTree;
18039
 
  friend class ::ExtACKeywords;
18040
 
  friend class ::WinAsm;
18041
 
  friend class ::WinDeclSpecs;
18042
 
  friend class ::WinMemberExplSpec;
18043
 
  friend class ::WinTypeKeywords;
18044
 
  friend class ::PragmaOnceUnitState;
18045
 
  friend class ::PragmaOnce;
18046
 
  friend class ::CCExprResolve;
18047
 
  friend class ::CExprResolve;
18048
 
 
18049
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18050
 
 
18051
 
public:
18052
 
  CT_WideString (int size) : CT_String (size) {}
18053
 
  static const char *NodeId ();
18054
 
  const char *NodeName () const { return NodeId (); }
18055
 
   private:
18056
 
  typedef CT_WideString CCExprResolveExpr;
18057
 
 
18058
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18059
 
 public :
18060
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18061
 
  typedef CT_WideString CExprResolveExpr;
18062
 
 
18063
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18064
 
 public :
18065
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18066
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18067
 
};
18068
 
 
18069
 
 
18070
 
#line 18071 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18071
 
} // closed Puma
18072
 
class WinIfExists;
18073
 
class WinImportHandler;
18074
 
class WinMacros;
18075
 
class CMatchSyntax;
18076
 
class ExtGnu;
18077
 
class ExtAC;
18078
 
class ExtACBuilderCoupling;
18079
 
class ExtACSyntaxCoupling;
18080
 
class ExtACTree;
18081
 
class ExtACKeywords;
18082
 
class WinAsm;
18083
 
class WinDeclSpecs;
18084
 
class WinMemberExplSpec;
18085
 
class WinTypeKeywords;
18086
 
class PragmaOnceUnitState;
18087
 
class PragmaOnce;
18088
 
class CCExprResolve;
18089
 
class CExprResolve;
18090
 
namespace Puma {
18091
 
 
18092
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18093
 
class CT_Integer : public CT_Expression {
18094
 
#line 18095 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18095
 
  friend class ::WinIfExists;
18096
 
  friend class ::WinImportHandler;
18097
 
  friend class ::WinMacros;
18098
 
  friend class ::CMatchSyntax;
18099
 
  friend class ::ExtGnu;
18100
 
  friend class ::ExtAC;
18101
 
  friend class ::ExtACBuilderCoupling;
18102
 
  friend class ::ExtACSyntaxCoupling;
18103
 
  friend class ::ExtACTree;
18104
 
  friend class ::ExtACKeywords;
18105
 
  friend class ::WinAsm;
18106
 
  friend class ::WinDeclSpecs;
18107
 
  friend class ::WinMemberExplSpec;
18108
 
  friend class ::WinTypeKeywords;
18109
 
  friend class ::PragmaOnceUnitState;
18110
 
  friend class ::PragmaOnce;
18111
 
  friend class ::CCExprResolve;
18112
 
  friend class ::CExprResolve;
18113
 
 
18114
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18115
 
 
18116
 
  CTree *_value;  // CT_Token
18117
 
 
18118
 
public:
18119
 
  CT_Integer (CTree *t) : _value (t) {}
18120
 
  static const char *NodeId ();
18121
 
  const char *NodeName () const { return NodeId (); }
18122
 
  int Sons () const { return _value ? 1 : 0; }
18123
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
18124
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18125
 
   { if (old_son == _value) _value = new_son; }
18126
 
   private:
18127
 
  typedef CT_Integer CCExprResolveExpr;
18128
 
 
18129
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18130
 
 public :
18131
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18132
 
  typedef CT_Integer CExprResolveExpr;
18133
 
 
18134
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18135
 
 public :
18136
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18137
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18138
 
};
18139
 
 
18140
 
 
18141
 
#line 18142 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18142
 
} // closed Puma
18143
 
class WinIfExists;
18144
 
class WinImportHandler;
18145
 
class WinMacros;
18146
 
class CMatchSyntax;
18147
 
class ExtGnu;
18148
 
class ExtAC;
18149
 
class ExtACBuilderCoupling;
18150
 
class ExtACSyntaxCoupling;
18151
 
class ExtACTree;
18152
 
class ExtACKeywords;
18153
 
class WinAsm;
18154
 
class WinDeclSpecs;
18155
 
class WinMemberExplSpec;
18156
 
class WinTypeKeywords;
18157
 
class PragmaOnceUnitState;
18158
 
class PragmaOnce;
18159
 
class CCExprResolve;
18160
 
class CExprResolve;
18161
 
namespace Puma {
18162
 
 
18163
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18164
 
class CT_Character : public CT_Expression {
18165
 
#line 18166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18166
 
  friend class ::WinIfExists;
18167
 
  friend class ::WinImportHandler;
18168
 
  friend class ::WinMacros;
18169
 
  friend class ::CMatchSyntax;
18170
 
  friend class ::ExtGnu;
18171
 
  friend class ::ExtAC;
18172
 
  friend class ::ExtACBuilderCoupling;
18173
 
  friend class ::ExtACSyntaxCoupling;
18174
 
  friend class ::ExtACTree;
18175
 
  friend class ::ExtACKeywords;
18176
 
  friend class ::WinAsm;
18177
 
  friend class ::WinDeclSpecs;
18178
 
  friend class ::WinMemberExplSpec;
18179
 
  friend class ::WinTypeKeywords;
18180
 
  friend class ::PragmaOnceUnitState;
18181
 
  friend class ::PragmaOnce;
18182
 
  friend class ::CCExprResolve;
18183
 
  friend class ::CExprResolve;
18184
 
 
18185
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18186
 
 
18187
 
  CTree *_value;  // CT_Token
18188
 
 
18189
 
public:
18190
 
  CT_Character (CTree *t) : _value (t) {}
18191
 
  static const char *NodeId ();
18192
 
  const char *NodeName () const { return NodeId (); }
18193
 
  int Sons () const { return 1; }
18194
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
18195
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18196
 
   { if (old_son == _value) _value = new_son; }
18197
 
   private:
18198
 
  typedef CT_Character CCExprResolveExpr;
18199
 
 
18200
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18201
 
 public :
18202
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18203
 
  typedef CT_Character CExprResolveExpr;
18204
 
 
18205
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18206
 
 public :
18207
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18208
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18209
 
};
18210
 
 
18211
 
 
18212
 
#line 18213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18213
 
} // closed Puma
18214
 
class WinIfExists;
18215
 
class WinImportHandler;
18216
 
class WinMacros;
18217
 
class CMatchSyntax;
18218
 
class ExtGnu;
18219
 
class ExtAC;
18220
 
class ExtACBuilderCoupling;
18221
 
class ExtACSyntaxCoupling;
18222
 
class ExtACTree;
18223
 
class ExtACKeywords;
18224
 
class WinAsm;
18225
 
class WinDeclSpecs;
18226
 
class WinMemberExplSpec;
18227
 
class WinTypeKeywords;
18228
 
class PragmaOnceUnitState;
18229
 
class PragmaOnce;
18230
 
class CCExprResolve;
18231
 
class CExprResolve;
18232
 
namespace Puma {
18233
 
 
18234
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18235
 
class CT_WideCharacter : public CT_Character {
18236
 
#line 18237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18237
 
  friend class ::WinIfExists;
18238
 
  friend class ::WinImportHandler;
18239
 
  friend class ::WinMacros;
18240
 
  friend class ::CMatchSyntax;
18241
 
  friend class ::ExtGnu;
18242
 
  friend class ::ExtAC;
18243
 
  friend class ::ExtACBuilderCoupling;
18244
 
  friend class ::ExtACSyntaxCoupling;
18245
 
  friend class ::ExtACTree;
18246
 
  friend class ::ExtACKeywords;
18247
 
  friend class ::WinAsm;
18248
 
  friend class ::WinDeclSpecs;
18249
 
  friend class ::WinMemberExplSpec;
18250
 
  friend class ::WinTypeKeywords;
18251
 
  friend class ::PragmaOnceUnitState;
18252
 
  friend class ::PragmaOnce;
18253
 
  friend class ::CCExprResolve;
18254
 
  friend class ::CExprResolve;
18255
 
 
18256
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18257
 
 
18258
 
  CTree *_value;  // CT_Token
18259
 
 
18260
 
public:
18261
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
18262
 
  static const char *NodeId ();
18263
 
  const char *NodeName () const { return NodeId (); }
18264
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18265
 
   { if (old_son == _value) _value = new_son; }
18266
 
   private:
18267
 
  typedef CT_WideCharacter CCExprResolveExpr;
18268
 
 
18269
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18270
 
 public :
18271
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18272
 
  typedef CT_WideCharacter CExprResolveExpr;
18273
 
 
18274
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18275
 
 public :
18276
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18277
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18278
 
};
18279
 
 
18280
 
 
18281
 
#line 18282 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18282
 
} // closed Puma
18283
 
class WinIfExists;
18284
 
class WinImportHandler;
18285
 
class WinMacros;
18286
 
class CMatchSyntax;
18287
 
class ExtGnu;
18288
 
class ExtAC;
18289
 
class ExtACBuilderCoupling;
18290
 
class ExtACSyntaxCoupling;
18291
 
class ExtACTree;
18292
 
class ExtACKeywords;
18293
 
class WinAsm;
18294
 
class WinDeclSpecs;
18295
 
class WinMemberExplSpec;
18296
 
class WinTypeKeywords;
18297
 
class PragmaOnceUnitState;
18298
 
class PragmaOnce;
18299
 
class CCExprResolve;
18300
 
class CExprResolve;
18301
 
namespace Puma {
18302
 
 
18303
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18304
 
class CT_Float : public CT_Expression {
18305
 
#line 18306 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18306
 
  friend class ::WinIfExists;
18307
 
  friend class ::WinImportHandler;
18308
 
  friend class ::WinMacros;
18309
 
  friend class ::CMatchSyntax;
18310
 
  friend class ::ExtGnu;
18311
 
  friend class ::ExtAC;
18312
 
  friend class ::ExtACBuilderCoupling;
18313
 
  friend class ::ExtACSyntaxCoupling;
18314
 
  friend class ::ExtACTree;
18315
 
  friend class ::ExtACKeywords;
18316
 
  friend class ::WinAsm;
18317
 
  friend class ::WinDeclSpecs;
18318
 
  friend class ::WinMemberExplSpec;
18319
 
  friend class ::WinTypeKeywords;
18320
 
  friend class ::PragmaOnceUnitState;
18321
 
  friend class ::PragmaOnce;
18322
 
  friend class ::CCExprResolve;
18323
 
  friend class ::CExprResolve;
18324
 
 
18325
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18326
 
 
18327
 
  CTree *_value;  // CT_Token
18328
 
 
18329
 
public:
18330
 
  CT_Float (CTree *t) : _value (t) {}
18331
 
  static const char *NodeId ();
18332
 
  const char *NodeName () const { return NodeId (); }
18333
 
  int Sons () const { return 1; }
18334
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
18335
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18336
 
   { if (old_son == _value) _value = new_son; }
18337
 
   private:
18338
 
  typedef CT_Float CCExprResolveExpr;
18339
 
 
18340
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18341
 
 public :
18342
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18343
 
  typedef CT_Float CExprResolveExpr;
18344
 
 
18345
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18346
 
 public :
18347
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18348
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18349
 
};
18350
 
 
18351
 
 
18352
 
#line 18353 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18353
 
} // closed Puma
18354
 
class WinIfExists;
18355
 
class WinImportHandler;
18356
 
class WinMacros;
18357
 
class CMatchSyntax;
18358
 
class ExtGnu;
18359
 
class ExtAC;
18360
 
class ExtACBuilderCoupling;
18361
 
class ExtACSyntaxCoupling;
18362
 
class ExtACTree;
18363
 
class ExtACKeywords;
18364
 
class WinAsm;
18365
 
class WinDeclSpecs;
18366
 
class WinMemberExplSpec;
18367
 
class WinTypeKeywords;
18368
 
class PragmaOnceUnitState;
18369
 
class PragmaOnce;
18370
 
class CCExprResolve;
18371
 
class CExprResolve;
18372
 
namespace Puma {
18373
 
 
18374
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18375
 
class CT_Bool : public CT_Expression {
18376
 
#line 18377 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18377
 
  friend class ::WinIfExists;
18378
 
  friend class ::WinImportHandler;
18379
 
  friend class ::WinMacros;
18380
 
  friend class ::CMatchSyntax;
18381
 
  friend class ::ExtGnu;
18382
 
  friend class ::ExtAC;
18383
 
  friend class ::ExtACBuilderCoupling;
18384
 
  friend class ::ExtACSyntaxCoupling;
18385
 
  friend class ::ExtACTree;
18386
 
  friend class ::ExtACKeywords;
18387
 
  friend class ::WinAsm;
18388
 
  friend class ::WinDeclSpecs;
18389
 
  friend class ::WinMemberExplSpec;
18390
 
  friend class ::WinTypeKeywords;
18391
 
  friend class ::PragmaOnceUnitState;
18392
 
  friend class ::PragmaOnce;
18393
 
  friend class ::CCExprResolve;
18394
 
  friend class ::CExprResolve;
18395
 
 
18396
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18397
 
 
18398
 
  CTree *_value;  // CT_Token
18399
 
 
18400
 
public:
18401
 
  CT_Bool (CTree *t) : _value (t) {}
18402
 
  static const char *NodeId ();
18403
 
  const char *NodeName () const { return NodeId (); }
18404
 
  int Sons () const { return 1; }
18405
 
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
18406
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
18407
 
   { if (old_son == _value) _value = new_son; }
18408
 
   private:
18409
 
  typedef CT_Bool CCExprResolveExpr;
18410
 
 
18411
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18412
 
 public :
18413
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18414
 
  typedef CT_Bool CExprResolveExpr;
18415
 
 
18416
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18417
 
 public :
18418
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18419
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18420
 
};
18421
 
 
18422
 
 
18423
 
#line 18424 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18424
 
} // closed Puma
18425
 
class WinIfExists;
18426
 
class WinImportHandler;
18427
 
class WinMacros;
18428
 
class CMatchSyntax;
18429
 
class ExtGnu;
18430
 
class ExtAC;
18431
 
class ExtACBuilderCoupling;
18432
 
class ExtACSyntaxCoupling;
18433
 
class ExtACTree;
18434
 
class ExtACKeywords;
18435
 
class WinAsm;
18436
 
class WinDeclSpecs;
18437
 
class WinMemberExplSpec;
18438
 
class WinTypeKeywords;
18439
 
class PragmaOnceUnitState;
18440
 
class PragmaOnce;
18441
 
class CCExprResolve;
18442
 
class CExprResolve;
18443
 
namespace Puma {
18444
 
 
18445
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18446
 
class CT_BracedExpr : public CT_Expression {
18447
 
#line 18448 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18448
 
  friend class ::WinIfExists;
18449
 
  friend class ::WinImportHandler;
18450
 
  friend class ::WinMacros;
18451
 
  friend class ::CMatchSyntax;
18452
 
  friend class ::ExtGnu;
18453
 
  friend class ::ExtAC;
18454
 
  friend class ::ExtACBuilderCoupling;
18455
 
  friend class ::ExtACSyntaxCoupling;
18456
 
  friend class ::ExtACTree;
18457
 
  friend class ::ExtACKeywords;
18458
 
  friend class ::WinAsm;
18459
 
  friend class ::WinDeclSpecs;
18460
 
  friend class ::WinMemberExplSpec;
18461
 
  friend class ::WinTypeKeywords;
18462
 
  friend class ::PragmaOnceUnitState;
18463
 
  friend class ::PragmaOnce;
18464
 
  friend class ::CCExprResolve;
18465
 
  friend class ::CExprResolve;
18466
 
 
18467
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18468
 
 
18469
 
  CTree *sons[3]; // open, expr, close
18470
 
 
18471
 
public:
18472
 
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
18473
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
18474
 
  }
18475
 
  static const char *NodeId ();
18476
 
  const char *NodeName () const { return NodeId (); }
18477
 
  int Sons () const { return 3; }
18478
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
18479
 
  CTree *Expr () const { return sons[1]; }
18480
 
  CTypeInfo *Type () const { return Expr ()->Type (); }
18481
 
  CExprValue *Value () const { return Expr ()->Value (); }
18482
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
18483
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
18484
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
18485
 
  }
18486
 
   private:
18487
 
  typedef CT_BracedExpr CCExprResolveExpr;
18488
 
 
18489
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18490
 
 public :
18491
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18492
 
  typedef CT_BracedExpr CExprResolveExpr;
18493
 
 
18494
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18495
 
 public :
18496
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18497
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18498
 
};
18499
 
 
18500
 
 
18501
 
#line 18502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18502
 
} // closed Puma
18503
 
class WinIfExists;
18504
 
class WinImportHandler;
18505
 
class WinMacros;
18506
 
class CMatchSyntax;
18507
 
class ExtGnu;
18508
 
class ExtAC;
18509
 
class ExtACBuilderCoupling;
18510
 
class ExtACSyntaxCoupling;
18511
 
class ExtACTree;
18512
 
class ExtACKeywords;
18513
 
class WinAsm;
18514
 
class WinDeclSpecs;
18515
 
class WinMemberExplSpec;
18516
 
class WinTypeKeywords;
18517
 
class PragmaOnceUnitState;
18518
 
class PragmaOnce;
18519
 
class CCExprResolve;
18520
 
class CExprResolve;
18521
 
namespace Puma {
18522
 
 
18523
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18524
 
class CT_SimpleName : public CT_List, public Printable, 
18525
 
                      public CSemValue, public CSemObject {
18526
 
#line 18527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18527
 
  friend class ::WinIfExists;
18528
 
  friend class ::WinImportHandler;
18529
 
  friend class ::WinMacros;
18530
 
  friend class ::CMatchSyntax;
18531
 
  friend class ::ExtGnu;
18532
 
  friend class ::ExtAC;
18533
 
  friend class ::ExtACBuilderCoupling;
18534
 
  friend class ::ExtACSyntaxCoupling;
18535
 
  friend class ::ExtACTree;
18536
 
  friend class ::ExtACKeywords;
18537
 
  friend class ::WinAsm;
18538
 
  friend class ::WinDeclSpecs;
18539
 
  friend class ::WinMemberExplSpec;
18540
 
  friend class ::WinTypeKeywords;
18541
 
  friend class ::PragmaOnceUnitState;
18542
 
  friend class ::PragmaOnce;
18543
 
  friend class ::CCExprResolve;
18544
 
  friend class ::CExprResolve;
18545
 
 
18546
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18547
 
 
18548
 
protected:
18549
 
  CT_SimpleName (int size) : CT_List (size, 1) {}
18550
 
  CT_SimpleName (int size, int properties) : 
18551
 
    CT_List (size, 2, properties) {}
18552
 
  
18553
 
public:
18554
 
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
18555
 
  static const char *NodeId ();
18556
 
  const char *NodeName () const { return NodeId (); }
18557
 
  virtual const char *Text () const 
18558
 
   { return Son (Sons ()-1)->token ()->text (); }
18559
 
  virtual void print (ostream &os) const { os << Text (); }
18560
 
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
18561
 
  CTypeInfo *Type () const { return type; }
18562
 
  CExprValue *Value () const { return value; }
18563
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
18564
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
18565
 
  // special new / delete with reusing memory
18566
 
  void *operator new (size_t);
18567
 
  void  operator delete (void *);
18568
 
  // classification function
18569
 
  virtual CT_SimpleName *IsSimpleName () { return this; }  
18570
 
   private:
18571
 
  typedef CT_SimpleName CCExprResolveExpr;
18572
 
 
18573
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18574
 
 public :
18575
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18576
 
  typedef CT_SimpleName CExprResolveExpr;
18577
 
 
18578
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18579
 
 public :
18580
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18581
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18582
 
};
18583
 
 
18584
 
 
18585
 
#line 18586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18586
 
} // closed Puma
18587
 
class WinIfExists;
18588
 
class WinImportHandler;
18589
 
class WinMacros;
18590
 
class CMatchSyntax;
18591
 
class ExtGnu;
18592
 
class ExtAC;
18593
 
class ExtACBuilderCoupling;
18594
 
class ExtACSyntaxCoupling;
18595
 
class ExtACTree;
18596
 
class ExtACKeywords;
18597
 
class WinAsm;
18598
 
class WinDeclSpecs;
18599
 
class WinMemberExplSpec;
18600
 
class WinTypeKeywords;
18601
 
class PragmaOnceUnitState;
18602
 
class PragmaOnce;
18603
 
class CCExprResolve;
18604
 
class CExprResolve;
18605
 
namespace Puma {
18606
 
 
18607
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18608
 
class CT_SpecialName : public CT_SimpleName {
18609
 
#line 18610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18610
 
  friend class ::WinIfExists;
18611
 
  friend class ::WinImportHandler;
18612
 
  friend class ::WinMacros;
18613
 
  friend class ::CMatchSyntax;
18614
 
  friend class ::ExtGnu;
18615
 
  friend class ::ExtAC;
18616
 
  friend class ::ExtACBuilderCoupling;
18617
 
  friend class ::ExtACSyntaxCoupling;
18618
 
  friend class ::ExtACTree;
18619
 
  friend class ::ExtACKeywords;
18620
 
  friend class ::WinAsm;
18621
 
  friend class ::WinDeclSpecs;
18622
 
  friend class ::WinMemberExplSpec;
18623
 
  friend class ::WinTypeKeywords;
18624
 
  friend class ::PragmaOnceUnitState;
18625
 
  friend class ::PragmaOnce;
18626
 
  friend class ::CCExprResolve;
18627
 
  friend class ::CExprResolve;
18628
 
 
18629
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18630
 
 
18631
 
  char *_name;
18632
 
  
18633
 
protected:
18634
 
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
18635
 
  
18636
 
public:
18637
 
  ~CT_SpecialName () { if (_name) delete[] _name; }
18638
 
  const char *Text () const { return _name; }
18639
 
  void Name (const char *n) { 
18640
 
    if (n) { 
18641
 
      _name = new char[strlen(n) + 1];
18642
 
      strcpy (_name,n);
18643
 
    }
18644
 
  }
18645
 
  // special new / delete with reusing memory
18646
 
  void *operator new (size_t);
18647
 
  void  operator delete (void *);
18648
 
   private:
18649
 
  typedef CT_SpecialName CCExprResolveExpr;
18650
 
 
18651
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18652
 
 public :
18653
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18654
 
  typedef CT_SpecialName CExprResolveExpr;
18655
 
 
18656
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18657
 
 public :
18658
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18659
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18660
 
};
18661
 
 
18662
 
 
18663
 
#line 18664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18664
 
} // closed Puma
18665
 
class WinIfExists;
18666
 
class WinImportHandler;
18667
 
class WinMacros;
18668
 
class CMatchSyntax;
18669
 
class ExtGnu;
18670
 
class ExtAC;
18671
 
class ExtACBuilderCoupling;
18672
 
class ExtACSyntaxCoupling;
18673
 
class ExtACTree;
18674
 
class ExtACKeywords;
18675
 
class WinAsm;
18676
 
class WinDeclSpecs;
18677
 
class WinMemberExplSpec;
18678
 
class WinTypeKeywords;
18679
 
class PragmaOnceUnitState;
18680
 
class PragmaOnce;
18681
 
class CCExprResolve;
18682
 
class CExprResolve;
18683
 
namespace Puma {
18684
 
 
18685
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18686
 
class CT_PrivateName : public CT_SpecialName {
18687
 
#line 18688 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18688
 
  friend class ::WinIfExists;
18689
 
  friend class ::WinImportHandler;
18690
 
  friend class ::WinMacros;
18691
 
  friend class ::CMatchSyntax;
18692
 
  friend class ::ExtGnu;
18693
 
  friend class ::ExtAC;
18694
 
  friend class ::ExtACBuilderCoupling;
18695
 
  friend class ::ExtACSyntaxCoupling;
18696
 
  friend class ::ExtACTree;
18697
 
  friend class ::ExtACKeywords;
18698
 
  friend class ::WinAsm;
18699
 
  friend class ::WinDeclSpecs;
18700
 
  friend class ::WinMemberExplSpec;
18701
 
  friend class ::WinTypeKeywords;
18702
 
  friend class ::PragmaOnceUnitState;
18703
 
  friend class ::PragmaOnce;
18704
 
  friend class ::CCExprResolve;
18705
 
  friend class ::CExprResolve;
18706
 
 
18707
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18708
 
 
18709
 
public:
18710
 
  CT_PrivateName (const char *n) { Name (n); }
18711
 
  static const char *NodeId ();
18712
 
  const char *NodeName () const { return NodeId (); }
18713
 
  int Sons () const { return 0; }
18714
 
  CTree *Son (int n) const { return (CTree*)0; }
18715
 
  // special new / delete with reusing memory
18716
 
  void *operator new (size_t);
18717
 
  void  operator delete (void *);
18718
 
   private:
18719
 
  typedef CT_PrivateName CCExprResolveExpr;
18720
 
 
18721
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18722
 
 public :
18723
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18724
 
  typedef CT_PrivateName CExprResolveExpr;
18725
 
 
18726
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18727
 
 public :
18728
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18729
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18730
 
};
18731
 
 
18732
 
 
18733
 
#line 18734 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18734
 
} // closed Puma
18735
 
class WinIfExists;
18736
 
class WinImportHandler;
18737
 
class WinMacros;
18738
 
class CMatchSyntax;
18739
 
class ExtGnu;
18740
 
class ExtAC;
18741
 
class ExtACBuilderCoupling;
18742
 
class ExtACSyntaxCoupling;
18743
 
class ExtACTree;
18744
 
class ExtACKeywords;
18745
 
class WinAsm;
18746
 
class WinDeclSpecs;
18747
 
class WinMemberExplSpec;
18748
 
class WinTypeKeywords;
18749
 
class PragmaOnceUnitState;
18750
 
class PragmaOnce;
18751
 
class CCExprResolve;
18752
 
class CExprResolve;
18753
 
namespace Puma {
18754
 
 
18755
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18756
 
class CT_DestructorName : public CT_SpecialName {
18757
 
#line 18758 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18758
 
  friend class ::WinIfExists;
18759
 
  friend class ::WinImportHandler;
18760
 
  friend class ::WinMacros;
18761
 
  friend class ::CMatchSyntax;
18762
 
  friend class ::ExtGnu;
18763
 
  friend class ::ExtAC;
18764
 
  friend class ::ExtACBuilderCoupling;
18765
 
  friend class ::ExtACSyntaxCoupling;
18766
 
  friend class ::ExtACTree;
18767
 
  friend class ::ExtACKeywords;
18768
 
  friend class ::WinAsm;
18769
 
  friend class ::WinDeclSpecs;
18770
 
  friend class ::WinMemberExplSpec;
18771
 
  friend class ::WinTypeKeywords;
18772
 
  friend class ::PragmaOnceUnitState;
18773
 
  friend class ::PragmaOnce;
18774
 
  friend class ::CCExprResolve;
18775
 
  friend class ::CExprResolve;
18776
 
 
18777
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18778
 
 
18779
 
public:
18780
 
  CT_DestructorName (CTree *, CTree *);
18781
 
  static const char *NodeId ();
18782
 
  const char *NodeName () const { return NodeId (); }
18783
 
  // special new / delete with reusing memory
18784
 
  void *operator new (size_t);
18785
 
  void  operator delete (void *);
18786
 
   private:
18787
 
  typedef CT_DestructorName CCExprResolveExpr;
18788
 
 
18789
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18790
 
 public :
18791
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18792
 
  typedef CT_DestructorName CExprResolveExpr;
18793
 
 
18794
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18795
 
 public :
18796
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18797
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18798
 
};
18799
 
 
18800
 
 
18801
 
#line 18802 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18802
 
} // closed Puma
18803
 
class WinIfExists;
18804
 
class WinImportHandler;
18805
 
class WinMacros;
18806
 
class CMatchSyntax;
18807
 
class ExtGnu;
18808
 
class ExtAC;
18809
 
class ExtACBuilderCoupling;
18810
 
class ExtACSyntaxCoupling;
18811
 
class ExtACTree;
18812
 
class ExtACKeywords;
18813
 
class WinAsm;
18814
 
class WinDeclSpecs;
18815
 
class WinMemberExplSpec;
18816
 
class WinTypeKeywords;
18817
 
class PragmaOnceUnitState;
18818
 
class PragmaOnce;
18819
 
class CCExprResolve;
18820
 
class CExprResolve;
18821
 
namespace Puma {
18822
 
 
18823
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18824
 
class CT_TemplateName : public CT_SpecialName {
18825
 
#line 18826 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18826
 
  friend class ::WinIfExists;
18827
 
  friend class ::WinImportHandler;
18828
 
  friend class ::WinMacros;
18829
 
  friend class ::CMatchSyntax;
18830
 
  friend class ::ExtGnu;
18831
 
  friend class ::ExtAC;
18832
 
  friend class ::ExtACBuilderCoupling;
18833
 
  friend class ::ExtACSyntaxCoupling;
18834
 
  friend class ::ExtACTree;
18835
 
  friend class ::ExtACKeywords;
18836
 
  friend class ::WinAsm;
18837
 
  friend class ::WinDeclSpecs;
18838
 
  friend class ::WinMemberExplSpec;
18839
 
  friend class ::WinTypeKeywords;
18840
 
  friend class ::PragmaOnceUnitState;
18841
 
  friend class ::PragmaOnce;
18842
 
  friend class ::CCExprResolve;
18843
 
  friend class ::CExprResolve;
18844
 
 
18845
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18846
 
 
18847
 
public:
18848
 
  CT_TemplateName (CTree *n, CTree *a) 
18849
 
   { AddSon (n); AddSon (a); }
18850
 
  static const char *NodeId ();
18851
 
  const char *NodeName () const { return NodeId (); }
18852
 
  CT_TemplateArgList *Arguments () const 
18853
 
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
18854
 
  CT_SimpleName *TemplateName () const 
18855
 
   { return (CT_SimpleName*)Son (Sons ()-2); }
18856
 
  // may change in the future
18857
 
  const char *Text () const { return TemplateName ()->Text (); }
18858
 
  // special new / delete with reusing memory
18859
 
  void *operator new (size_t);
18860
 
  void  operator delete (void *);
18861
 
   private:
18862
 
  typedef CT_TemplateName CCExprResolveExpr;
18863
 
 
18864
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18865
 
 public :
18866
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18867
 
  typedef CT_TemplateName CExprResolveExpr;
18868
 
 
18869
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18870
 
 public :
18871
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18872
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18873
 
};
18874
 
 
18875
 
 
18876
 
#line 18877 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18877
 
} // closed Puma
18878
 
class WinIfExists;
18879
 
class WinImportHandler;
18880
 
class WinMacros;
18881
 
class CMatchSyntax;
18882
 
class ExtGnu;
18883
 
class ExtAC;
18884
 
class ExtACBuilderCoupling;
18885
 
class ExtACSyntaxCoupling;
18886
 
class ExtACTree;
18887
 
class ExtACKeywords;
18888
 
class WinAsm;
18889
 
class WinDeclSpecs;
18890
 
class WinMemberExplSpec;
18891
 
class WinTypeKeywords;
18892
 
class PragmaOnceUnitState;
18893
 
class PragmaOnce;
18894
 
class CCExprResolve;
18895
 
class CExprResolve;
18896
 
namespace Puma {
18897
 
 
18898
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18899
 
class CT_OperatorName : public CT_SpecialName {
18900
 
#line 18901 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18901
 
  friend class ::WinIfExists;
18902
 
  friend class ::WinImportHandler;
18903
 
  friend class ::WinMacros;
18904
 
  friend class ::CMatchSyntax;
18905
 
  friend class ::ExtGnu;
18906
 
  friend class ::ExtAC;
18907
 
  friend class ::ExtACBuilderCoupling;
18908
 
  friend class ::ExtACSyntaxCoupling;
18909
 
  friend class ::ExtACTree;
18910
 
  friend class ::ExtACKeywords;
18911
 
  friend class ::WinAsm;
18912
 
  friend class ::WinDeclSpecs;
18913
 
  friend class ::WinMemberExplSpec;
18914
 
  friend class ::WinTypeKeywords;
18915
 
  friend class ::PragmaOnceUnitState;
18916
 
  friend class ::PragmaOnce;
18917
 
  friend class ::CCExprResolve;
18918
 
  friend class ::CExprResolve;
18919
 
 
18920
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18921
 
 
18922
 
  int _oper;
18923
 
 
18924
 
public:
18925
 
  enum { // complex operators
18926
 
    FCT_CALL = -100,
18927
 
    SUBSCRIPT,
18928
 
    NEW_ARRAY,
18929
 
    DEL_ARRAY
18930
 
  };
18931
 
 
18932
 
public:
18933
 
  CT_OperatorName (CTree *);
18934
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
18935
 
  static const char *NodeId ();
18936
 
  const char *NodeName () const { return NodeId (); }
18937
 
  int Operator () const { return _oper; }
18938
 
  // special new / delete with reusing memory
18939
 
  void *operator new (size_t);
18940
 
  void  operator delete (void *);
18941
 
   private:
18942
 
  typedef CT_OperatorName CCExprResolveExpr;
18943
 
 
18944
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
18945
 
 public :
18946
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
18947
 
  typedef CT_OperatorName CExprResolveExpr;
18948
 
 
18949
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
18950
 
 public :
18951
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
18952
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18953
 
};
18954
 
 
18955
 
 
18956
 
#line 18957 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18957
 
} // closed Puma
18958
 
class WinIfExists;
18959
 
class WinImportHandler;
18960
 
class WinMacros;
18961
 
class CMatchSyntax;
18962
 
class ExtGnu;
18963
 
class ExtAC;
18964
 
class ExtACBuilderCoupling;
18965
 
class ExtACSyntaxCoupling;
18966
 
class ExtACTree;
18967
 
class ExtACKeywords;
18968
 
class WinAsm;
18969
 
class WinDeclSpecs;
18970
 
class WinMemberExplSpec;
18971
 
class WinTypeKeywords;
18972
 
class PragmaOnceUnitState;
18973
 
class PragmaOnce;
18974
 
class CCExprResolve;
18975
 
class CExprResolve;
18976
 
namespace Puma {
18977
 
 
18978
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
18979
 
class CT_ConversionName : public CT_SpecialName {
18980
 
#line 18981 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
18981
 
  friend class ::WinIfExists;
18982
 
  friend class ::WinImportHandler;
18983
 
  friend class ::WinMacros;
18984
 
  friend class ::CMatchSyntax;
18985
 
  friend class ::ExtGnu;
18986
 
  friend class ::ExtAC;
18987
 
  friend class ::ExtACBuilderCoupling;
18988
 
  friend class ::ExtACSyntaxCoupling;
18989
 
  friend class ::ExtACTree;
18990
 
  friend class ::ExtACKeywords;
18991
 
  friend class ::WinAsm;
18992
 
  friend class ::WinDeclSpecs;
18993
 
  friend class ::WinMemberExplSpec;
18994
 
  friend class ::WinTypeKeywords;
18995
 
  friend class ::PragmaOnceUnitState;
18996
 
  friend class ::PragmaOnce;
18997
 
  friend class ::CCExprResolve;
18998
 
  friend class ::CExprResolve;
18999
 
 
19000
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19001
 
 
19002
 
public:
19003
 
  CT_ConversionName (CTree *, CTree *);
19004
 
  static const char *NodeId ();
19005
 
  const char *NodeName () const { return NodeId (); }
19006
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
19007
 
  // special new / delete with reusing memory
19008
 
  void *operator new (size_t);
19009
 
  void  operator delete (void *);
19010
 
   private:
19011
 
  typedef CT_ConversionName CCExprResolveExpr;
19012
 
 
19013
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19014
 
 public :
19015
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19016
 
  typedef CT_ConversionName CExprResolveExpr;
19017
 
 
19018
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19019
 
 public :
19020
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19021
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19022
 
};
19023
 
 
19024
 
 
19025
 
#line 19026 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19026
 
} // closed Puma
19027
 
class WinIfExists;
19028
 
class WinImportHandler;
19029
 
class WinMacros;
19030
 
class CMatchSyntax;
19031
 
class ExtGnu;
19032
 
class ExtAC;
19033
 
class ExtACBuilderCoupling;
19034
 
class ExtACSyntaxCoupling;
19035
 
class ExtACTree;
19036
 
class ExtACKeywords;
19037
 
class WinAsm;
19038
 
class WinDeclSpecs;
19039
 
class WinMemberExplSpec;
19040
 
class WinTypeKeywords;
19041
 
class PragmaOnceUnitState;
19042
 
class PragmaOnce;
19043
 
class CCExprResolve;
19044
 
class CExprResolve;
19045
 
namespace Puma {
19046
 
 
19047
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19048
 
class CT_QualName : public CT_SimpleName {
19049
 
#line 19050 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19050
 
  friend class ::WinIfExists;
19051
 
  friend class ::WinImportHandler;
19052
 
  friend class ::WinMacros;
19053
 
  friend class ::CMatchSyntax;
19054
 
  friend class ::ExtGnu;
19055
 
  friend class ::ExtAC;
19056
 
  friend class ::ExtACBuilderCoupling;
19057
 
  friend class ::ExtACSyntaxCoupling;
19058
 
  friend class ::ExtACTree;
19059
 
  friend class ::ExtACKeywords;
19060
 
  friend class ::WinAsm;
19061
 
  friend class ::WinDeclSpecs;
19062
 
  friend class ::WinMemberExplSpec;
19063
 
  friend class ::WinTypeKeywords;
19064
 
  friend class ::PragmaOnceUnitState;
19065
 
  friend class ::PragmaOnce;
19066
 
  friend class ::CCExprResolve;
19067
 
  friend class ::CExprResolve;
19068
 
 
19069
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19070
 
 
19071
 
public:
19072
 
  CT_QualName (int size = 3) : 
19073
 
    CT_SimpleName (size, CT_List::SEPARATORS) {}
19074
 
  static const char *NodeId ();
19075
 
  const char *NodeName () const { return NodeId (); }
19076
 
  void print (ostream &) const;
19077
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
19078
 
  const char *Text () const { return Name ()->Text (); }
19079
 
  CTypeInfo *Type () const { return Name ()->Type (); }
19080
 
  CExprValue *Value () const { return Name ()->Value (); }
19081
 
  CSemValue *SemValue () const { return Name ()->SemValue (); }
19082
 
  CSemObject *SemObject () const { return Name ()->SemObject (); }
19083
 
  // special new / delete with reusing memory
19084
 
  void *operator new (size_t);
19085
 
  void  operator delete (void *);
19086
 
   private:
19087
 
  typedef CT_QualName CCExprResolveExpr;
19088
 
 
19089
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19090
 
 public :
19091
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19092
 
  typedef CT_QualName CExprResolveExpr;
19093
 
 
19094
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19095
 
 public :
19096
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19097
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19098
 
};
19099
 
 
19100
 
 
19101
 
#line 19102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19102
 
} // closed Puma
19103
 
class WinIfExists;
19104
 
class WinImportHandler;
19105
 
class WinMacros;
19106
 
class CMatchSyntax;
19107
 
class ExtGnu;
19108
 
class ExtAC;
19109
 
class ExtACBuilderCoupling;
19110
 
class ExtACSyntaxCoupling;
19111
 
class ExtACTree;
19112
 
class ExtACKeywords;
19113
 
class WinAsm;
19114
 
class WinDeclSpecs;
19115
 
class WinMemberExplSpec;
19116
 
class WinTypeKeywords;
19117
 
class PragmaOnceUnitState;
19118
 
class PragmaOnce;
19119
 
class CCExprResolve;
19120
 
class CExprResolve;
19121
 
namespace Puma {
19122
 
 
19123
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19124
 
class CT_RootQualName : public CT_QualName {
19125
 
#line 19126 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19126
 
  friend class ::WinIfExists;
19127
 
  friend class ::WinImportHandler;
19128
 
  friend class ::WinMacros;
19129
 
  friend class ::CMatchSyntax;
19130
 
  friend class ::ExtGnu;
19131
 
  friend class ::ExtAC;
19132
 
  friend class ::ExtACBuilderCoupling;
19133
 
  friend class ::ExtACSyntaxCoupling;
19134
 
  friend class ::ExtACTree;
19135
 
  friend class ::ExtACKeywords;
19136
 
  friend class ::WinAsm;
19137
 
  friend class ::WinDeclSpecs;
19138
 
  friend class ::WinMemberExplSpec;
19139
 
  friend class ::WinTypeKeywords;
19140
 
  friend class ::PragmaOnceUnitState;
19141
 
  friend class ::PragmaOnce;
19142
 
  friend class ::CCExprResolve;
19143
 
  friend class ::CExprResolve;
19144
 
 
19145
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19146
 
 
19147
 
public:
19148
 
  CT_RootQualName (int size = 2) : 
19149
 
    CT_QualName (size) { AddProperties (INTRO); }
19150
 
  static const char *NodeId ();
19151
 
  const char *NodeName () const { return NodeId (); }
19152
 
  // special new / delete with reusing memory
19153
 
  void *operator new (size_t);
19154
 
  void  operator delete (void *);
19155
 
   private:
19156
 
  typedef CT_RootQualName CCExprResolveExpr;
19157
 
 
19158
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19159
 
 public :
19160
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19161
 
  typedef CT_RootQualName CExprResolveExpr;
19162
 
 
19163
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19164
 
 public :
19165
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19166
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19167
 
};
19168
 
 
19169
 
 
19170
 
#line 19171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19171
 
} // closed Puma
19172
 
class WinIfExists;
19173
 
class WinImportHandler;
19174
 
class WinMacros;
19175
 
class CMatchSyntax;
19176
 
class ExtGnu;
19177
 
class ExtAC;
19178
 
class ExtACBuilderCoupling;
19179
 
class ExtACSyntaxCoupling;
19180
 
class ExtACTree;
19181
 
class ExtACKeywords;
19182
 
class WinAsm;
19183
 
class WinDeclSpecs;
19184
 
class WinMemberExplSpec;
19185
 
class WinTypeKeywords;
19186
 
class PragmaOnceUnitState;
19187
 
class PragmaOnce;
19188
 
class CCExprResolve;
19189
 
class CExprResolve;
19190
 
namespace Puma {
19191
 
 
19192
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19193
 
class CT_BinaryExpr : public CT_Expression {
19194
 
#line 19195 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19195
 
  friend class ::WinIfExists;
19196
 
  friend class ::WinImportHandler;
19197
 
  friend class ::WinMacros;
19198
 
  friend class ::CMatchSyntax;
19199
 
  friend class ::ExtGnu;
19200
 
  friend class ::ExtAC;
19201
 
  friend class ::ExtACBuilderCoupling;
19202
 
  friend class ::ExtACSyntaxCoupling;
19203
 
  friend class ::ExtACTree;
19204
 
  friend class ::ExtACKeywords;
19205
 
  friend class ::WinAsm;
19206
 
  friend class ::WinDeclSpecs;
19207
 
  friend class ::WinMemberExplSpec;
19208
 
  friend class ::WinTypeKeywords;
19209
 
  friend class ::PragmaOnceUnitState;
19210
 
  friend class ::PragmaOnce;
19211
 
  friend class ::CCExprResolve;
19212
 
  friend class ::CExprResolve;
19213
 
 
19214
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19215
 
 
19216
 
  CTree *sons[3]; // expr, oper, expr
19217
 
 
19218
 
public:
19219
 
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
19220
 
    sons[0] = l; sons[1] = o; sons[2] = r;
19221
 
  }
19222
 
  static const char *NodeId ();
19223
 
  const char *NodeName () const { return NodeId (); }
19224
 
  int Sons () const { return 3; }
19225
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
19226
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19227
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
19228
 
  }
19229
 
   private:
19230
 
  typedef CT_BinaryExpr CCExprResolveExpr;
19231
 
 
19232
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19233
 
 public :
19234
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19235
 
  typedef CT_BinaryExpr CExprResolveExpr;
19236
 
 
19237
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19238
 
 public :
19239
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19240
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19241
 
};
19242
 
 
19243
 
 
19244
 
#line 19245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19245
 
} // closed Puma
19246
 
class WinIfExists;
19247
 
class WinImportHandler;
19248
 
class WinMacros;
19249
 
class CMatchSyntax;
19250
 
class ExtGnu;
19251
 
class ExtAC;
19252
 
class ExtACBuilderCoupling;
19253
 
class ExtACSyntaxCoupling;
19254
 
class ExtACTree;
19255
 
class ExtACKeywords;
19256
 
class WinAsm;
19257
 
class WinDeclSpecs;
19258
 
class WinMemberExplSpec;
19259
 
class WinTypeKeywords;
19260
 
class PragmaOnceUnitState;
19261
 
class PragmaOnce;
19262
 
class CCExprResolve;
19263
 
class CExprResolve;
19264
 
namespace Puma {
19265
 
 
19266
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19267
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
19268
 
#line 19269 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19269
 
  friend class ::WinIfExists;
19270
 
  friend class ::WinImportHandler;
19271
 
  friend class ::WinMacros;
19272
 
  friend class ::CMatchSyntax;
19273
 
  friend class ::ExtGnu;
19274
 
  friend class ::ExtAC;
19275
 
  friend class ::ExtACBuilderCoupling;
19276
 
  friend class ::ExtACSyntaxCoupling;
19277
 
  friend class ::ExtACTree;
19278
 
  friend class ::ExtACKeywords;
19279
 
  friend class ::WinAsm;
19280
 
  friend class ::WinDeclSpecs;
19281
 
  friend class ::WinMemberExplSpec;
19282
 
  friend class ::WinTypeKeywords;
19283
 
  friend class ::PragmaOnceUnitState;
19284
 
  friend class ::PragmaOnce;
19285
 
  friend class ::CCExprResolve;
19286
 
  friend class ::CExprResolve;
19287
 
 
19288
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19289
 
 
19290
 
public:
19291
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
19292
 
    CT_BinaryExpr (e, o, i) {}
19293
 
  static const char *NodeId ();
19294
 
  const char *NodeName () const { return NodeId (); }
19295
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
19296
 
   private:
19297
 
  typedef CT_MembPtrExpr CCExprResolveExpr;
19298
 
 
19299
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19300
 
 public :
19301
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19302
 
  typedef CT_MembPtrExpr CExprResolveExpr;
19303
 
 
19304
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19305
 
 public :
19306
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19307
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19308
 
};
19309
 
 
19310
 
 
19311
 
#line 19312 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19312
 
} // closed Puma
19313
 
class WinIfExists;
19314
 
class WinImportHandler;
19315
 
class WinMacros;
19316
 
class CMatchSyntax;
19317
 
class ExtGnu;
19318
 
class ExtAC;
19319
 
class ExtACBuilderCoupling;
19320
 
class ExtACSyntaxCoupling;
19321
 
class ExtACTree;
19322
 
class ExtACKeywords;
19323
 
class WinAsm;
19324
 
class WinDeclSpecs;
19325
 
class WinMemberExplSpec;
19326
 
class WinTypeKeywords;
19327
 
class PragmaOnceUnitState;
19328
 
class PragmaOnce;
19329
 
class CCExprResolve;
19330
 
class CExprResolve;
19331
 
namespace Puma {
19332
 
 
19333
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19334
 
class CT_MembRefExpr : public CT_MembPtrExpr {
19335
 
#line 19336 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19336
 
  friend class ::WinIfExists;
19337
 
  friend class ::WinImportHandler;
19338
 
  friend class ::WinMacros;
19339
 
  friend class ::CMatchSyntax;
19340
 
  friend class ::ExtGnu;
19341
 
  friend class ::ExtAC;
19342
 
  friend class ::ExtACBuilderCoupling;
19343
 
  friend class ::ExtACSyntaxCoupling;
19344
 
  friend class ::ExtACTree;
19345
 
  friend class ::ExtACKeywords;
19346
 
  friend class ::WinAsm;
19347
 
  friend class ::WinDeclSpecs;
19348
 
  friend class ::WinMemberExplSpec;
19349
 
  friend class ::WinTypeKeywords;
19350
 
  friend class ::PragmaOnceUnitState;
19351
 
  friend class ::PragmaOnce;
19352
 
  friend class ::CCExprResolve;
19353
 
  friend class ::CExprResolve;
19354
 
 
19355
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19356
 
 
19357
 
public:
19358
 
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
19359
 
    CT_MembPtrExpr (e, o, i) {}
19360
 
  static const char *NodeId ();
19361
 
  const char *NodeName () const { return NodeId (); }
19362
 
   private:
19363
 
  typedef CT_MembRefExpr CCExprResolveExpr;
19364
 
 
19365
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19366
 
 public :
19367
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19368
 
  typedef CT_MembRefExpr CExprResolveExpr;
19369
 
 
19370
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19371
 
 public :
19372
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19373
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19374
 
};
19375
 
 
19376
 
 
19377
 
#line 19378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19378
 
} // closed Puma
19379
 
class WinIfExists;
19380
 
class WinImportHandler;
19381
 
class WinMacros;
19382
 
class CMatchSyntax;
19383
 
class ExtGnu;
19384
 
class ExtAC;
19385
 
class ExtACBuilderCoupling;
19386
 
class ExtACSyntaxCoupling;
19387
 
class ExtACTree;
19388
 
class ExtACKeywords;
19389
 
class WinAsm;
19390
 
class WinDeclSpecs;
19391
 
class WinMemberExplSpec;
19392
 
class WinTypeKeywords;
19393
 
class PragmaOnceUnitState;
19394
 
class PragmaOnce;
19395
 
class CCExprResolve;
19396
 
class CExprResolve;
19397
 
namespace Puma {
19398
 
 
19399
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19400
 
class CT_UnaryExpr : public CT_Expression {
19401
 
#line 19402 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19402
 
  friend class ::WinIfExists;
19403
 
  friend class ::WinImportHandler;
19404
 
  friend class ::WinMacros;
19405
 
  friend class ::CMatchSyntax;
19406
 
  friend class ::ExtGnu;
19407
 
  friend class ::ExtAC;
19408
 
  friend class ::ExtACBuilderCoupling;
19409
 
  friend class ::ExtACSyntaxCoupling;
19410
 
  friend class ::ExtACTree;
19411
 
  friend class ::ExtACKeywords;
19412
 
  friend class ::WinAsm;
19413
 
  friend class ::WinDeclSpecs;
19414
 
  friend class ::WinMemberExplSpec;
19415
 
  friend class ::WinTypeKeywords;
19416
 
  friend class ::PragmaOnceUnitState;
19417
 
  friend class ::PragmaOnce;
19418
 
  friend class ::CCExprResolve;
19419
 
  friend class ::CExprResolve;
19420
 
 
19421
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19422
 
 
19423
 
  CTree *sons[2]; // oper, expr
19424
 
 
19425
 
public:
19426
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
19427
 
  static const char *NodeId ();
19428
 
  const char *NodeName () const { return NodeId (); }
19429
 
  int Sons () const { return 2; }
19430
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
19431
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19432
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
19433
 
  }
19434
 
  CTree *Expr () const { return sons[1]; }
19435
 
   private:
19436
 
  typedef CT_UnaryExpr CCExprResolveExpr;
19437
 
 
19438
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19439
 
 public :
19440
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19441
 
  typedef CT_UnaryExpr CExprResolveExpr;
19442
 
 
19443
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19444
 
 public :
19445
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19446
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19447
 
};
19448
 
 
19449
 
 
19450
 
#line 19451 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19451
 
} // closed Puma
19452
 
class WinIfExists;
19453
 
class WinImportHandler;
19454
 
class WinMacros;
19455
 
class CMatchSyntax;
19456
 
class ExtGnu;
19457
 
class ExtAC;
19458
 
class ExtACBuilderCoupling;
19459
 
class ExtACSyntaxCoupling;
19460
 
class ExtACTree;
19461
 
class ExtACKeywords;
19462
 
class WinAsm;
19463
 
class WinDeclSpecs;
19464
 
class WinMemberExplSpec;
19465
 
class WinTypeKeywords;
19466
 
class PragmaOnceUnitState;
19467
 
class PragmaOnce;
19468
 
class CCExprResolve;
19469
 
class CExprResolve;
19470
 
namespace Puma {
19471
 
 
19472
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19473
 
class CT_PostfixExpr : public CT_UnaryExpr {
19474
 
#line 19475 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19475
 
  friend class ::WinIfExists;
19476
 
  friend class ::WinImportHandler;
19477
 
  friend class ::WinMacros;
19478
 
  friend class ::CMatchSyntax;
19479
 
  friend class ::ExtGnu;
19480
 
  friend class ::ExtAC;
19481
 
  friend class ::ExtACBuilderCoupling;
19482
 
  friend class ::ExtACSyntaxCoupling;
19483
 
  friend class ::ExtACTree;
19484
 
  friend class ::ExtACKeywords;
19485
 
  friend class ::WinAsm;
19486
 
  friend class ::WinDeclSpecs;
19487
 
  friend class ::WinMemberExplSpec;
19488
 
  friend class ::WinTypeKeywords;
19489
 
  friend class ::PragmaOnceUnitState;
19490
 
  friend class ::PragmaOnce;
19491
 
  friend class ::CCExprResolve;
19492
 
  friend class ::CExprResolve;
19493
 
 
19494
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19495
 
 
19496
 
public:
19497
 
  CT_PostfixExpr (CTree *e, CTree *o) :
19498
 
    CT_UnaryExpr (e, o) {}
19499
 
  static const char *NodeId ();
19500
 
  const char *NodeName () const { return NodeId (); }
19501
 
   private:
19502
 
  typedef CT_PostfixExpr CCExprResolveExpr;
19503
 
 
19504
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19505
 
 public :
19506
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19507
 
  typedef CT_PostfixExpr CExprResolveExpr;
19508
 
 
19509
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19510
 
 public :
19511
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19512
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19513
 
};
19514
 
 
19515
 
 
19516
 
#line 19517 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19517
 
} // closed Puma
19518
 
class WinIfExists;
19519
 
class WinImportHandler;
19520
 
class WinMacros;
19521
 
class CMatchSyntax;
19522
 
class ExtGnu;
19523
 
class ExtAC;
19524
 
class ExtACBuilderCoupling;
19525
 
class ExtACSyntaxCoupling;
19526
 
class ExtACTree;
19527
 
class ExtACKeywords;
19528
 
class WinAsm;
19529
 
class WinDeclSpecs;
19530
 
class WinMemberExplSpec;
19531
 
class WinTypeKeywords;
19532
 
class PragmaOnceUnitState;
19533
 
class PragmaOnce;
19534
 
class CCExprResolve;
19535
 
class CExprResolve;
19536
 
namespace Puma {
19537
 
 
19538
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19539
 
class CT_AddrExpr : public CT_UnaryExpr {
19540
 
#line 19541 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19541
 
  friend class ::WinIfExists;
19542
 
  friend class ::WinImportHandler;
19543
 
  friend class ::WinMacros;
19544
 
  friend class ::CMatchSyntax;
19545
 
  friend class ::ExtGnu;
19546
 
  friend class ::ExtAC;
19547
 
  friend class ::ExtACBuilderCoupling;
19548
 
  friend class ::ExtACSyntaxCoupling;
19549
 
  friend class ::ExtACTree;
19550
 
  friend class ::ExtACKeywords;
19551
 
  friend class ::WinAsm;
19552
 
  friend class ::WinDeclSpecs;
19553
 
  friend class ::WinMemberExplSpec;
19554
 
  friend class ::WinTypeKeywords;
19555
 
  friend class ::PragmaOnceUnitState;
19556
 
  friend class ::PragmaOnce;
19557
 
  friend class ::CCExprResolve;
19558
 
  friend class ::CExprResolve;
19559
 
 
19560
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19561
 
 
19562
 
public:
19563
 
  CT_AddrExpr (CTree *o, CTree *e) :
19564
 
    CT_UnaryExpr (o, e) {}
19565
 
  static const char *NodeId ();
19566
 
  const char *NodeName () const { return NodeId (); }
19567
 
   private:
19568
 
  typedef CT_AddrExpr CCExprResolveExpr;
19569
 
 
19570
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19571
 
 public :
19572
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19573
 
  typedef CT_AddrExpr CExprResolveExpr;
19574
 
 
19575
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19576
 
 public :
19577
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19578
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19579
 
};
19580
 
 
19581
 
 
19582
 
#line 19583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19583
 
} // closed Puma
19584
 
class WinIfExists;
19585
 
class WinImportHandler;
19586
 
class WinMacros;
19587
 
class CMatchSyntax;
19588
 
class ExtGnu;
19589
 
class ExtAC;
19590
 
class ExtACBuilderCoupling;
19591
 
class ExtACSyntaxCoupling;
19592
 
class ExtACTree;
19593
 
class ExtACKeywords;
19594
 
class WinAsm;
19595
 
class WinDeclSpecs;
19596
 
class WinMemberExplSpec;
19597
 
class WinTypeKeywords;
19598
 
class PragmaOnceUnitState;
19599
 
class PragmaOnce;
19600
 
class CCExprResolve;
19601
 
class CExprResolve;
19602
 
namespace Puma {
19603
 
 
19604
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19605
 
class CT_DerefExpr : public CT_UnaryExpr {
19606
 
#line 19607 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19607
 
  friend class ::WinIfExists;
19608
 
  friend class ::WinImportHandler;
19609
 
  friend class ::WinMacros;
19610
 
  friend class ::CMatchSyntax;
19611
 
  friend class ::ExtGnu;
19612
 
  friend class ::ExtAC;
19613
 
  friend class ::ExtACBuilderCoupling;
19614
 
  friend class ::ExtACSyntaxCoupling;
19615
 
  friend class ::ExtACTree;
19616
 
  friend class ::ExtACKeywords;
19617
 
  friend class ::WinAsm;
19618
 
  friend class ::WinDeclSpecs;
19619
 
  friend class ::WinMemberExplSpec;
19620
 
  friend class ::WinTypeKeywords;
19621
 
  friend class ::PragmaOnceUnitState;
19622
 
  friend class ::PragmaOnce;
19623
 
  friend class ::CCExprResolve;
19624
 
  friend class ::CExprResolve;
19625
 
 
19626
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19627
 
 
19628
 
public:
19629
 
  CT_DerefExpr (CTree *o, CTree *e) :
19630
 
    CT_UnaryExpr (o, e) {}
19631
 
  static const char *NodeId ();
19632
 
  const char *NodeName () const { return NodeId (); }
19633
 
   private:
19634
 
  typedef CT_DerefExpr CCExprResolveExpr;
19635
 
 
19636
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19637
 
 public :
19638
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19639
 
  typedef CT_DerefExpr CExprResolveExpr;
19640
 
 
19641
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19642
 
 public :
19643
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19644
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19645
 
};
19646
 
 
19647
 
 
19648
 
#line 19649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19649
 
} // closed Puma
19650
 
class WinIfExists;
19651
 
class WinImportHandler;
19652
 
class WinMacros;
19653
 
class CMatchSyntax;
19654
 
class ExtGnu;
19655
 
class ExtAC;
19656
 
class ExtACBuilderCoupling;
19657
 
class ExtACSyntaxCoupling;
19658
 
class ExtACTree;
19659
 
class ExtACKeywords;
19660
 
class WinAsm;
19661
 
class WinDeclSpecs;
19662
 
class WinMemberExplSpec;
19663
 
class WinTypeKeywords;
19664
 
class PragmaOnceUnitState;
19665
 
class PragmaOnce;
19666
 
class CCExprResolve;
19667
 
class CExprResolve;
19668
 
namespace Puma {
19669
 
 
19670
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19671
 
class CT_DeleteExpr : public CT_Expression, public CSemObject {
19672
 
#line 19673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19673
 
  friend class ::WinIfExists;
19674
 
  friend class ::WinImportHandler;
19675
 
  friend class ::WinMacros;
19676
 
  friend class ::CMatchSyntax;
19677
 
  friend class ::ExtGnu;
19678
 
  friend class ::ExtAC;
19679
 
  friend class ::ExtACBuilderCoupling;
19680
 
  friend class ::ExtACSyntaxCoupling;
19681
 
  friend class ::ExtACTree;
19682
 
  friend class ::ExtACKeywords;
19683
 
  friend class ::WinAsm;
19684
 
  friend class ::WinDeclSpecs;
19685
 
  friend class ::WinMemberExplSpec;
19686
 
  friend class ::WinTypeKeywords;
19687
 
  friend class ::PragmaOnceUnitState;
19688
 
  friend class ::PragmaOnce;
19689
 
  friend class ::CCExprResolve;
19690
 
  friend class ::CExprResolve;
19691
 
 
19692
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19693
 
 
19694
 
  CTree *sons[2]; // oper, expr
19695
 
 
19696
 
public:
19697
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
19698
 
  static const char *NodeId ();
19699
 
  const char *NodeName () const { return NodeId (); }
19700
 
  int Sons () const { return 2; }
19701
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
19702
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19703
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
19704
 
  }
19705
 
  CTree *Expr () const { return sons[1]; }
19706
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
19707
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
19708
 
   private:
19709
 
  typedef CT_DeleteExpr CCExprResolveExpr;
19710
 
 
19711
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19712
 
 public :
19713
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19714
 
  typedef CT_DeleteExpr CExprResolveExpr;
19715
 
 
19716
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19717
 
 public :
19718
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19719
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19720
 
};
19721
 
 
19722
 
 
19723
 
#line 19724 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19724
 
} // closed Puma
19725
 
class WinIfExists;
19726
 
class WinImportHandler;
19727
 
class WinMacros;
19728
 
class CMatchSyntax;
19729
 
class ExtGnu;
19730
 
class ExtAC;
19731
 
class ExtACBuilderCoupling;
19732
 
class ExtACSyntaxCoupling;
19733
 
class ExtACTree;
19734
 
class ExtACKeywords;
19735
 
class WinAsm;
19736
 
class WinDeclSpecs;
19737
 
class WinMemberExplSpec;
19738
 
class WinTypeKeywords;
19739
 
class PragmaOnceUnitState;
19740
 
class PragmaOnce;
19741
 
class CCExprResolve;
19742
 
class CExprResolve;
19743
 
namespace Puma {
19744
 
 
19745
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19746
 
class CT_NewExpr : public CT_Expression, public CSemObject {
19747
 
#line 19748 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19748
 
  friend class ::WinIfExists;
19749
 
  friend class ::WinImportHandler;
19750
 
  friend class ::WinMacros;
19751
 
  friend class ::CMatchSyntax;
19752
 
  friend class ::ExtGnu;
19753
 
  friend class ::ExtAC;
19754
 
  friend class ::ExtACBuilderCoupling;
19755
 
  friend class ::ExtACSyntaxCoupling;
19756
 
  friend class ::ExtACTree;
19757
 
  friend class ::ExtACKeywords;
19758
 
  friend class ::WinAsm;
19759
 
  friend class ::WinDeclSpecs;
19760
 
  friend class ::WinMemberExplSpec;
19761
 
  friend class ::WinTypeKeywords;
19762
 
  friend class ::PragmaOnceUnitState;
19763
 
  friend class ::PragmaOnce;
19764
 
  friend class ::CCExprResolve;
19765
 
  friend class ::CExprResolve;
19766
 
 
19767
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19768
 
 
19769
 
  CTree *sons[6]; // oper, placement, open, type, close, init
19770
 
 
19771
 
public:
19772
 
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
19773
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
19774
 
  }
19775
 
  static const char *NodeId ();
19776
 
  const char *NodeName () const { return NodeId (); }
19777
 
  int Sons () const { return CTree::Sons (sons, 6); }
19778
 
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
19779
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19780
 
    CTree::ReplaceSon (sons, 6, old_son, new_son);
19781
 
  }
19782
 
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
19783
 
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
19784
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
19785
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
19786
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
19787
 
   private:
19788
 
  typedef CT_NewExpr CCExprResolveExpr;
19789
 
 
19790
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19791
 
 public :
19792
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19793
 
  typedef CT_NewExpr CExprResolveExpr;
19794
 
 
19795
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19796
 
 public :
19797
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19798
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19799
 
};
19800
 
 
19801
 
 
19802
 
#line 19803 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19803
 
} // closed Puma
19804
 
class WinIfExists;
19805
 
class WinImportHandler;
19806
 
class WinMacros;
19807
 
class CMatchSyntax;
19808
 
class ExtGnu;
19809
 
class ExtAC;
19810
 
class ExtACBuilderCoupling;
19811
 
class ExtACSyntaxCoupling;
19812
 
class ExtACTree;
19813
 
class ExtACKeywords;
19814
 
class WinAsm;
19815
 
class WinDeclSpecs;
19816
 
class WinMemberExplSpec;
19817
 
class WinTypeKeywords;
19818
 
class PragmaOnceUnitState;
19819
 
class PragmaOnce;
19820
 
class CCExprResolve;
19821
 
class CExprResolve;
19822
 
namespace Puma {
19823
 
 
19824
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19825
 
class CT_IfThenExpr : public CT_Expression {
19826
 
#line 19827 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19827
 
  friend class ::WinIfExists;
19828
 
  friend class ::WinImportHandler;
19829
 
  friend class ::WinMacros;
19830
 
  friend class ::CMatchSyntax;
19831
 
  friend class ::ExtGnu;
19832
 
  friend class ::ExtAC;
19833
 
  friend class ::ExtACBuilderCoupling;
19834
 
  friend class ::ExtACSyntaxCoupling;
19835
 
  friend class ::ExtACTree;
19836
 
  friend class ::ExtACKeywords;
19837
 
  friend class ::WinAsm;
19838
 
  friend class ::WinDeclSpecs;
19839
 
  friend class ::WinMemberExplSpec;
19840
 
  friend class ::WinTypeKeywords;
19841
 
  friend class ::PragmaOnceUnitState;
19842
 
  friend class ::PragmaOnce;
19843
 
  friend class ::CCExprResolve;
19844
 
  friend class ::CExprResolve;
19845
 
 
19846
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19847
 
 
19848
 
  CTree *sons[5]; // cond, oper, left, colon, right
19849
 
 
19850
 
public:
19851
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
19852
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
19853
 
  }
19854
 
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
19855
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
19856
 
  }
19857
 
  static const char *NodeId ();
19858
 
  const char *NodeName () const { return NodeId (); }
19859
 
  int Sons () const { return CTree::Sons (sons, 5); }
19860
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
19861
 
  CTree *Condition () const { return sons[0]; }
19862
 
  CTree *LeftOperand () const { return sons[2]; }
19863
 
  CTree *RightOperand () const { return sons[4]; }
19864
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19865
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
19866
 
  }
19867
 
   private:
19868
 
  typedef CT_IfThenExpr CCExprResolveExpr;
19869
 
 
19870
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19871
 
 public :
19872
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19873
 
  typedef CT_IfThenExpr CExprResolveExpr;
19874
 
 
19875
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19876
 
 public :
19877
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19878
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19879
 
};
19880
 
 
19881
 
 
19882
 
#line 19883 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19883
 
} // closed Puma
19884
 
class WinIfExists;
19885
 
class WinImportHandler;
19886
 
class WinMacros;
19887
 
class CMatchSyntax;
19888
 
class ExtGnu;
19889
 
class ExtAC;
19890
 
class ExtACBuilderCoupling;
19891
 
class ExtACSyntaxCoupling;
19892
 
class ExtACTree;
19893
 
class ExtACKeywords;
19894
 
class WinAsm;
19895
 
class WinDeclSpecs;
19896
 
class WinMemberExplSpec;
19897
 
class WinTypeKeywords;
19898
 
class PragmaOnceUnitState;
19899
 
class PragmaOnce;
19900
 
class CCExprResolve;
19901
 
class CExprResolve;
19902
 
namespace Puma {
19903
 
 
19904
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19905
 
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
19906
 
#line 19907 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19907
 
  friend class ::WinIfExists;
19908
 
  friend class ::WinImportHandler;
19909
 
  friend class ::WinMacros;
19910
 
  friend class ::CMatchSyntax;
19911
 
  friend class ::ExtGnu;
19912
 
  friend class ::ExtAC;
19913
 
  friend class ::ExtACBuilderCoupling;
19914
 
  friend class ::ExtACSyntaxCoupling;
19915
 
  friend class ::ExtACTree;
19916
 
  friend class ::ExtACKeywords;
19917
 
  friend class ::WinAsm;
19918
 
  friend class ::WinDeclSpecs;
19919
 
  friend class ::WinMemberExplSpec;
19920
 
  friend class ::WinTypeKeywords;
19921
 
  friend class ::PragmaOnceUnitState;
19922
 
  friend class ::PragmaOnce;
19923
 
  friend class ::CCExprResolve;
19924
 
  friend class ::CExprResolve;
19925
 
 
19926
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19927
 
 
19928
 
  CTree *sons[4]; // open, type, close, init
19929
 
 
19930
 
public:
19931
 
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
19932
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
19933
 
  }
19934
 
  static const char *NodeId ();
19935
 
  const char *NodeName () const { return NodeId (); }
19936
 
  int Sons () const { return 4; }
19937
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
19938
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
19939
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
19940
 
  }
19941
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
19942
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
19943
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
19944
 
   private:
19945
 
  typedef CT_CmpdLiteral CCExprResolveExpr;
19946
 
 
19947
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
19948
 
 public :
19949
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
19950
 
  typedef CT_CmpdLiteral CExprResolveExpr;
19951
 
 
19952
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
19953
 
 public :
19954
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
19955
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19956
 
};
19957
 
 
19958
 
 
19959
 
#line 19960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19960
 
} // closed Puma
19961
 
class WinIfExists;
19962
 
class WinImportHandler;
19963
 
class WinMacros;
19964
 
class CMatchSyntax;
19965
 
class ExtGnu;
19966
 
class ExtAC;
19967
 
class ExtACBuilderCoupling;
19968
 
class ExtACSyntaxCoupling;
19969
 
class ExtACTree;
19970
 
class ExtACKeywords;
19971
 
class WinAsm;
19972
 
class WinDeclSpecs;
19973
 
class WinMemberExplSpec;
19974
 
class WinTypeKeywords;
19975
 
class PragmaOnceUnitState;
19976
 
class PragmaOnce;
19977
 
class CCExprResolve;
19978
 
class CExprResolve;
19979
 
namespace Puma {
19980
 
 
19981
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
19982
 
class CT_ConstructExpr : public CT_Expression, public CSemObject {
19983
 
#line 19984 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
19984
 
  friend class ::WinIfExists;
19985
 
  friend class ::WinImportHandler;
19986
 
  friend class ::WinMacros;
19987
 
  friend class ::CMatchSyntax;
19988
 
  friend class ::ExtGnu;
19989
 
  friend class ::ExtAC;
19990
 
  friend class ::ExtACBuilderCoupling;
19991
 
  friend class ::ExtACSyntaxCoupling;
19992
 
  friend class ::ExtACTree;
19993
 
  friend class ::ExtACKeywords;
19994
 
  friend class ::WinAsm;
19995
 
  friend class ::WinDeclSpecs;
19996
 
  friend class ::WinMemberExplSpec;
19997
 
  friend class ::WinTypeKeywords;
19998
 
  friend class ::PragmaOnceUnitState;
19999
 
  friend class ::PragmaOnce;
20000
 
  friend class ::CCExprResolve;
20001
 
  friend class ::CExprResolve;
20002
 
 
20003
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20004
 
 
20005
 
  CTree *sons[2]; // type, init
20006
 
 
20007
 
public:
20008
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
20009
 
  static const char *NodeId ();
20010
 
  const char *NodeName () const { return NodeId (); }
20011
 
  int Sons () const { return 2; }
20012
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
20013
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20014
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20015
 
  }
20016
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
20017
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
20018
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
20019
 
   private:
20020
 
  typedef CT_ConstructExpr CCExprResolveExpr;
20021
 
 
20022
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20023
 
 public :
20024
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20025
 
  typedef CT_ConstructExpr CExprResolveExpr;
20026
 
 
20027
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20028
 
 public :
20029
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20030
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20031
 
};
20032
 
 
20033
 
 
20034
 
#line 20035 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20035
 
} // closed Puma
20036
 
class WinIfExists;
20037
 
class WinImportHandler;
20038
 
class WinMacros;
20039
 
class CMatchSyntax;
20040
 
class ExtGnu;
20041
 
class ExtAC;
20042
 
class ExtACBuilderCoupling;
20043
 
class ExtACSyntaxCoupling;
20044
 
class ExtACTree;
20045
 
class ExtACKeywords;
20046
 
class WinAsm;
20047
 
class WinDeclSpecs;
20048
 
class WinMemberExplSpec;
20049
 
class WinTypeKeywords;
20050
 
class PragmaOnceUnitState;
20051
 
class PragmaOnce;
20052
 
class CCExprResolve;
20053
 
class CExprResolve;
20054
 
namespace Puma {
20055
 
 
20056
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20057
 
class CT_ThrowExpr : public CT_Expression {
20058
 
#line 20059 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20059
 
  friend class ::WinIfExists;
20060
 
  friend class ::WinImportHandler;
20061
 
  friend class ::WinMacros;
20062
 
  friend class ::CMatchSyntax;
20063
 
  friend class ::ExtGnu;
20064
 
  friend class ::ExtAC;
20065
 
  friend class ::ExtACBuilderCoupling;
20066
 
  friend class ::ExtACSyntaxCoupling;
20067
 
  friend class ::ExtACTree;
20068
 
  friend class ::ExtACKeywords;
20069
 
  friend class ::WinAsm;
20070
 
  friend class ::WinDeclSpecs;
20071
 
  friend class ::WinMemberExplSpec;
20072
 
  friend class ::WinTypeKeywords;
20073
 
  friend class ::PragmaOnceUnitState;
20074
 
  friend class ::PragmaOnce;
20075
 
  friend class ::CCExprResolve;
20076
 
  friend class ::CExprResolve;
20077
 
 
20078
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20079
 
 
20080
 
  CTree *sons[2]; // throw, expr
20081
 
 
20082
 
public:
20083
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
20084
 
  static const char *NodeId ();
20085
 
  const char *NodeName () const { return NodeId (); }
20086
 
  int Sons () const { return CTree::Sons (sons, 2); }
20087
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
20088
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20089
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20090
 
  }
20091
 
  CTree *Expr () const { return sons[1]; }
20092
 
   private:
20093
 
  typedef CT_ThrowExpr CCExprResolveExpr;
20094
 
 
20095
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20096
 
 public :
20097
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20098
 
  typedef CT_ThrowExpr CExprResolveExpr;
20099
 
 
20100
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20101
 
 public :
20102
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20103
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20104
 
};
20105
 
 
20106
 
 
20107
 
#line 20108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20108
 
} // closed Puma
20109
 
class WinIfExists;
20110
 
class WinImportHandler;
20111
 
class WinMacros;
20112
 
class CMatchSyntax;
20113
 
class ExtGnu;
20114
 
class ExtAC;
20115
 
class ExtACBuilderCoupling;
20116
 
class ExtACSyntaxCoupling;
20117
 
class ExtACTree;
20118
 
class ExtACKeywords;
20119
 
class WinAsm;
20120
 
class WinDeclSpecs;
20121
 
class WinMemberExplSpec;
20122
 
class WinTypeKeywords;
20123
 
class PragmaOnceUnitState;
20124
 
class PragmaOnce;
20125
 
class CCExprResolve;
20126
 
class CExprResolve;
20127
 
namespace Puma {
20128
 
 
20129
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20130
 
class CT_IndexExpr : public CT_Expression {
20131
 
#line 20132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20132
 
  friend class ::WinIfExists;
20133
 
  friend class ::WinImportHandler;
20134
 
  friend class ::WinMacros;
20135
 
  friend class ::CMatchSyntax;
20136
 
  friend class ::ExtGnu;
20137
 
  friend class ::ExtAC;
20138
 
  friend class ::ExtACBuilderCoupling;
20139
 
  friend class ::ExtACSyntaxCoupling;
20140
 
  friend class ::ExtACTree;
20141
 
  friend class ::ExtACKeywords;
20142
 
  friend class ::WinAsm;
20143
 
  friend class ::WinDeclSpecs;
20144
 
  friend class ::WinMemberExplSpec;
20145
 
  friend class ::WinTypeKeywords;
20146
 
  friend class ::PragmaOnceUnitState;
20147
 
  friend class ::PragmaOnce;
20148
 
  friend class ::CCExprResolve;
20149
 
  friend class ::CExprResolve;
20150
 
 
20151
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20152
 
 
20153
 
  CTree *sons[4]; // expr, open, index, close
20154
 
 
20155
 
public:
20156
 
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
20157
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
20158
 
  }
20159
 
  static const char *NodeId ();
20160
 
  const char *NodeName () const { return NodeId (); }
20161
 
  int Sons () const { return 4; }
20162
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
20163
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20164
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
20165
 
  }
20166
 
   private:
20167
 
  typedef CT_IndexExpr CCExprResolveExpr;
20168
 
 
20169
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20170
 
 public :
20171
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20172
 
  typedef CT_IndexExpr CExprResolveExpr;
20173
 
 
20174
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20175
 
 public :
20176
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20177
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20178
 
};
20179
 
 
20180
 
 
20181
 
#line 20182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20182
 
} // closed Puma
20183
 
class WinIfExists;
20184
 
class WinImportHandler;
20185
 
class WinMacros;
20186
 
class CMatchSyntax;
20187
 
class ExtGnu;
20188
 
class ExtAC;
20189
 
class ExtACBuilderCoupling;
20190
 
class ExtACSyntaxCoupling;
20191
 
class ExtACTree;
20192
 
class ExtACKeywords;
20193
 
class WinAsm;
20194
 
class WinDeclSpecs;
20195
 
class WinMemberExplSpec;
20196
 
class WinTypeKeywords;
20197
 
class PragmaOnceUnitState;
20198
 
class PragmaOnce;
20199
 
class CCExprResolve;
20200
 
class CExprResolve;
20201
 
namespace Puma {
20202
 
 
20203
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20204
 
class CT_CallExpr : public CT_Expression, public CSemObject {
20205
 
#line 20206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20206
 
  friend class ::WinIfExists;
20207
 
  friend class ::WinImportHandler;
20208
 
  friend class ::WinMacros;
20209
 
  friend class ::CMatchSyntax;
20210
 
  friend class ::ExtGnu;
20211
 
  friend class ::ExtAC;
20212
 
  friend class ::ExtACBuilderCoupling;
20213
 
  friend class ::ExtACSyntaxCoupling;
20214
 
  friend class ::ExtACTree;
20215
 
  friend class ::ExtACKeywords;
20216
 
  friend class ::WinAsm;
20217
 
  friend class ::WinDeclSpecs;
20218
 
  friend class ::WinMemberExplSpec;
20219
 
  friend class ::WinTypeKeywords;
20220
 
  friend class ::PragmaOnceUnitState;
20221
 
  friend class ::PragmaOnce;
20222
 
  friend class ::CCExprResolve;
20223
 
  friend class ::CExprResolve;
20224
 
 
20225
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20226
 
 
20227
 
  CTree *sons[2]; // expr, args
20228
 
 
20229
 
public:
20230
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
20231
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
20232
 
  static const char *NodeId ();
20233
 
  const char *NodeName () const { return NodeId (); }
20234
 
  int Sons () const { return CTree::Sons (sons, 2); }
20235
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
20236
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20237
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20238
 
  }
20239
 
  CTree *Expr () const { return sons[0]; }
20240
 
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
20241
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
20242
 
   private:
20243
 
  typedef CT_CallExpr CCExprResolveExpr;
20244
 
 
20245
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20246
 
 public :
20247
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20248
 
  typedef CT_CallExpr CExprResolveExpr;
20249
 
 
20250
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20251
 
 public :
20252
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20253
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20254
 
};
20255
 
 
20256
 
 
20257
 
#line 20258 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20258
 
} // closed Puma
20259
 
class WinIfExists;
20260
 
class WinImportHandler;
20261
 
class WinMacros;
20262
 
class CMatchSyntax;
20263
 
class ExtGnu;
20264
 
class ExtAC;
20265
 
class ExtACBuilderCoupling;
20266
 
class ExtACSyntaxCoupling;
20267
 
class ExtACTree;
20268
 
class ExtACKeywords;
20269
 
class WinAsm;
20270
 
class WinDeclSpecs;
20271
 
class WinMemberExplSpec;
20272
 
class WinTypeKeywords;
20273
 
class PragmaOnceUnitState;
20274
 
class PragmaOnce;
20275
 
class CCExprResolve;
20276
 
class CExprResolve;
20277
 
namespace Puma {
20278
 
 
20279
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20280
 
class CT_CastExpr : public CT_Expression {
20281
 
#line 20282 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20282
 
  friend class ::WinIfExists;
20283
 
  friend class ::WinImportHandler;
20284
 
  friend class ::WinMacros;
20285
 
  friend class ::CMatchSyntax;
20286
 
  friend class ::ExtGnu;
20287
 
  friend class ::ExtAC;
20288
 
  friend class ::ExtACBuilderCoupling;
20289
 
  friend class ::ExtACSyntaxCoupling;
20290
 
  friend class ::ExtACTree;
20291
 
  friend class ::ExtACKeywords;
20292
 
  friend class ::WinAsm;
20293
 
  friend class ::WinDeclSpecs;
20294
 
  friend class ::WinMemberExplSpec;
20295
 
  friend class ::WinTypeKeywords;
20296
 
  friend class ::PragmaOnceUnitState;
20297
 
  friend class ::PragmaOnce;
20298
 
  friend class ::CCExprResolve;
20299
 
  friend class ::CExprResolve;
20300
 
 
20301
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20302
 
 
20303
 
  CTree *sons[4]; // open, type, close, expr
20304
 
 
20305
 
public:
20306
 
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
20307
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
20308
 
  }
20309
 
  static const char *NodeId ();
20310
 
  const char *NodeName () const { return NodeId (); }
20311
 
  int Sons () const { return 4; }
20312
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
20313
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20314
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
20315
 
  }
20316
 
  CTree *Expr () const { return sons[3]; }
20317
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
20318
 
   private:
20319
 
  typedef CT_CastExpr CCExprResolveExpr;
20320
 
 
20321
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20322
 
 public :
20323
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20324
 
  typedef CT_CastExpr CExprResolveExpr;
20325
 
 
20326
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20327
 
 public :
20328
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20329
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20330
 
};
20331
 
 
20332
 
 
20333
 
#line 20334 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20334
 
} // closed Puma
20335
 
class WinIfExists;
20336
 
class WinImportHandler;
20337
 
class WinMacros;
20338
 
class CMatchSyntax;
20339
 
class ExtGnu;
20340
 
class ExtAC;
20341
 
class ExtACBuilderCoupling;
20342
 
class ExtACSyntaxCoupling;
20343
 
class ExtACTree;
20344
 
class ExtACKeywords;
20345
 
class WinAsm;
20346
 
class WinDeclSpecs;
20347
 
class WinMemberExplSpec;
20348
 
class WinTypeKeywords;
20349
 
class PragmaOnceUnitState;
20350
 
class PragmaOnce;
20351
 
class CCExprResolve;
20352
 
class CExprResolve;
20353
 
namespace Puma {
20354
 
 
20355
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20356
 
class CT_StaticCast : public CT_Expression {
20357
 
#line 20358 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20358
 
  friend class ::WinIfExists;
20359
 
  friend class ::WinImportHandler;
20360
 
  friend class ::WinMacros;
20361
 
  friend class ::CMatchSyntax;
20362
 
  friend class ::ExtGnu;
20363
 
  friend class ::ExtAC;
20364
 
  friend class ::ExtACBuilderCoupling;
20365
 
  friend class ::ExtACSyntaxCoupling;
20366
 
  friend class ::ExtACTree;
20367
 
  friend class ::ExtACKeywords;
20368
 
  friend class ::WinAsm;
20369
 
  friend class ::WinDeclSpecs;
20370
 
  friend class ::WinMemberExplSpec;
20371
 
  friend class ::WinTypeKeywords;
20372
 
  friend class ::PragmaOnceUnitState;
20373
 
  friend class ::PragmaOnce;
20374
 
  friend class ::CCExprResolve;
20375
 
  friend class ::CExprResolve;
20376
 
 
20377
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20378
 
 
20379
 
  CTree *sons[5]; // cast, open, type, close, expr
20380
 
 
20381
 
public:
20382
 
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
20383
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
20384
 
  }
20385
 
  static const char *NodeId ();
20386
 
  const char *NodeName () const { return NodeId (); }
20387
 
  int Sons () const { return 5; }
20388
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
20389
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20390
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
20391
 
  }
20392
 
  CTree *Expr () const { return sons[4]; }
20393
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
20394
 
   private:
20395
 
  typedef CT_StaticCast CCExprResolveExpr;
20396
 
 
20397
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20398
 
 public :
20399
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20400
 
  typedef CT_StaticCast CExprResolveExpr;
20401
 
 
20402
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20403
 
 public :
20404
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20405
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20406
 
};
20407
 
 
20408
 
 
20409
 
#line 20410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20410
 
} // closed Puma
20411
 
class WinIfExists;
20412
 
class WinImportHandler;
20413
 
class WinMacros;
20414
 
class CMatchSyntax;
20415
 
class ExtGnu;
20416
 
class ExtAC;
20417
 
class ExtACBuilderCoupling;
20418
 
class ExtACSyntaxCoupling;
20419
 
class ExtACTree;
20420
 
class ExtACKeywords;
20421
 
class WinAsm;
20422
 
class WinDeclSpecs;
20423
 
class WinMemberExplSpec;
20424
 
class WinTypeKeywords;
20425
 
class PragmaOnceUnitState;
20426
 
class PragmaOnce;
20427
 
class CCExprResolve;
20428
 
class CExprResolve;
20429
 
namespace Puma {
20430
 
 
20431
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20432
 
class CT_ConstCast : public CT_StaticCast {
20433
 
#line 20434 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20434
 
  friend class ::WinIfExists;
20435
 
  friend class ::WinImportHandler;
20436
 
  friend class ::WinMacros;
20437
 
  friend class ::CMatchSyntax;
20438
 
  friend class ::ExtGnu;
20439
 
  friend class ::ExtAC;
20440
 
  friend class ::ExtACBuilderCoupling;
20441
 
  friend class ::ExtACSyntaxCoupling;
20442
 
  friend class ::ExtACTree;
20443
 
  friend class ::ExtACKeywords;
20444
 
  friend class ::WinAsm;
20445
 
  friend class ::WinDeclSpecs;
20446
 
  friend class ::WinMemberExplSpec;
20447
 
  friend class ::WinTypeKeywords;
20448
 
  friend class ::PragmaOnceUnitState;
20449
 
  friend class ::PragmaOnce;
20450
 
  friend class ::CCExprResolve;
20451
 
  friend class ::CExprResolve;
20452
 
 
20453
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20454
 
 
20455
 
public:
20456
 
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
20457
 
    CT_StaticCast (cst, o, t, c, e) {}
20458
 
  static const char *NodeId ();
20459
 
  const char *NodeName () const { return NodeId (); }
20460
 
   private:
20461
 
  typedef CT_ConstCast CCExprResolveExpr;
20462
 
 
20463
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20464
 
 public :
20465
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20466
 
  typedef CT_ConstCast CExprResolveExpr;
20467
 
 
20468
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20469
 
 public :
20470
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20471
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20472
 
};
20473
 
 
20474
 
 
20475
 
#line 20476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20476
 
} // closed Puma
20477
 
class WinIfExists;
20478
 
class WinImportHandler;
20479
 
class WinMacros;
20480
 
class CMatchSyntax;
20481
 
class ExtGnu;
20482
 
class ExtAC;
20483
 
class ExtACBuilderCoupling;
20484
 
class ExtACSyntaxCoupling;
20485
 
class ExtACTree;
20486
 
class ExtACKeywords;
20487
 
class WinAsm;
20488
 
class WinDeclSpecs;
20489
 
class WinMemberExplSpec;
20490
 
class WinTypeKeywords;
20491
 
class PragmaOnceUnitState;
20492
 
class PragmaOnce;
20493
 
class CCExprResolve;
20494
 
class CExprResolve;
20495
 
namespace Puma {
20496
 
 
20497
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20498
 
class CT_ReintCast : public CT_StaticCast {
20499
 
#line 20500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20500
 
  friend class ::WinIfExists;
20501
 
  friend class ::WinImportHandler;
20502
 
  friend class ::WinMacros;
20503
 
  friend class ::CMatchSyntax;
20504
 
  friend class ::ExtGnu;
20505
 
  friend class ::ExtAC;
20506
 
  friend class ::ExtACBuilderCoupling;
20507
 
  friend class ::ExtACSyntaxCoupling;
20508
 
  friend class ::ExtACTree;
20509
 
  friend class ::ExtACKeywords;
20510
 
  friend class ::WinAsm;
20511
 
  friend class ::WinDeclSpecs;
20512
 
  friend class ::WinMemberExplSpec;
20513
 
  friend class ::WinTypeKeywords;
20514
 
  friend class ::PragmaOnceUnitState;
20515
 
  friend class ::PragmaOnce;
20516
 
  friend class ::CCExprResolve;
20517
 
  friend class ::CExprResolve;
20518
 
 
20519
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20520
 
 
20521
 
public:
20522
 
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
20523
 
    CT_StaticCast (cst, o, t, c, e) {}
20524
 
  static const char *NodeId ();
20525
 
  const char *NodeName () const { return NodeId (); }
20526
 
   private:
20527
 
  typedef CT_ReintCast CCExprResolveExpr;
20528
 
 
20529
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20530
 
 public :
20531
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20532
 
  typedef CT_ReintCast CExprResolveExpr;
20533
 
 
20534
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20535
 
 public :
20536
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20537
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20538
 
};
20539
 
 
20540
 
 
20541
 
#line 20542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20542
 
} // closed Puma
20543
 
class WinIfExists;
20544
 
class WinImportHandler;
20545
 
class WinMacros;
20546
 
class CMatchSyntax;
20547
 
class ExtGnu;
20548
 
class ExtAC;
20549
 
class ExtACBuilderCoupling;
20550
 
class ExtACSyntaxCoupling;
20551
 
class ExtACTree;
20552
 
class ExtACKeywords;
20553
 
class WinAsm;
20554
 
class WinDeclSpecs;
20555
 
class WinMemberExplSpec;
20556
 
class WinTypeKeywords;
20557
 
class PragmaOnceUnitState;
20558
 
class PragmaOnce;
20559
 
class CCExprResolve;
20560
 
class CExprResolve;
20561
 
namespace Puma {
20562
 
 
20563
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20564
 
class CT_DynamicCast : public CT_StaticCast {
20565
 
#line 20566 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20566
 
  friend class ::WinIfExists;
20567
 
  friend class ::WinImportHandler;
20568
 
  friend class ::WinMacros;
20569
 
  friend class ::CMatchSyntax;
20570
 
  friend class ::ExtGnu;
20571
 
  friend class ::ExtAC;
20572
 
  friend class ::ExtACBuilderCoupling;
20573
 
  friend class ::ExtACSyntaxCoupling;
20574
 
  friend class ::ExtACTree;
20575
 
  friend class ::ExtACKeywords;
20576
 
  friend class ::WinAsm;
20577
 
  friend class ::WinDeclSpecs;
20578
 
  friend class ::WinMemberExplSpec;
20579
 
  friend class ::WinTypeKeywords;
20580
 
  friend class ::PragmaOnceUnitState;
20581
 
  friend class ::PragmaOnce;
20582
 
  friend class ::CCExprResolve;
20583
 
  friend class ::CExprResolve;
20584
 
 
20585
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20586
 
 
20587
 
public:
20588
 
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
20589
 
    CT_StaticCast (cst, o, t, c, e) {}
20590
 
  static const char *NodeId ();
20591
 
  const char *NodeName () const { return NodeId (); }
20592
 
   private:
20593
 
  typedef CT_DynamicCast CCExprResolveExpr;
20594
 
 
20595
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20596
 
 public :
20597
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20598
 
  typedef CT_DynamicCast CExprResolveExpr;
20599
 
 
20600
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20601
 
 public :
20602
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20603
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20604
 
};
20605
 
 
20606
 
 
20607
 
#line 20608 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20608
 
} // closed Puma
20609
 
class WinIfExists;
20610
 
class WinImportHandler;
20611
 
class WinMacros;
20612
 
class CMatchSyntax;
20613
 
class ExtGnu;
20614
 
class ExtAC;
20615
 
class ExtACBuilderCoupling;
20616
 
class ExtACSyntaxCoupling;
20617
 
class ExtACTree;
20618
 
class ExtACKeywords;
20619
 
class WinAsm;
20620
 
class WinDeclSpecs;
20621
 
class WinMemberExplSpec;
20622
 
class WinTypeKeywords;
20623
 
class PragmaOnceUnitState;
20624
 
class PragmaOnce;
20625
 
class CCExprResolve;
20626
 
class CExprResolve;
20627
 
namespace Puma {
20628
 
 
20629
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20630
 
class CT_ImplicitCast : public CT_Expression {
20631
 
#line 20632 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20632
 
  friend class ::WinIfExists;
20633
 
  friend class ::WinImportHandler;
20634
 
  friend class ::WinMacros;
20635
 
  friend class ::CMatchSyntax;
20636
 
  friend class ::ExtGnu;
20637
 
  friend class ::ExtAC;
20638
 
  friend class ::ExtACBuilderCoupling;
20639
 
  friend class ::ExtACSyntaxCoupling;
20640
 
  friend class ::ExtACTree;
20641
 
  friend class ::ExtACKeywords;
20642
 
  friend class ::WinAsm;
20643
 
  friend class ::WinDeclSpecs;
20644
 
  friend class ::WinMemberExplSpec;
20645
 
  friend class ::WinTypeKeywords;
20646
 
  friend class ::PragmaOnceUnitState;
20647
 
  friend class ::PragmaOnce;
20648
 
  friend class ::CCExprResolve;
20649
 
  friend class ::CExprResolve;
20650
 
 
20651
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20652
 
 
20653
 
  CTree *_expr; // casted expression
20654
 
 
20655
 
public:
20656
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
20657
 
  static const char *NodeId ();
20658
 
  const char *NodeName () const { return NodeId (); }
20659
 
  int Sons () const { return 1; }
20660
 
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
20661
 
  CTree *Expr () const { return _expr; }
20662
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
20663
 
   { if (old_son == _expr) _expr = new_son; }
20664
 
   private:
20665
 
  typedef CT_ImplicitCast CCExprResolveExpr;
20666
 
 
20667
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20668
 
 public :
20669
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20670
 
  typedef CT_ImplicitCast CExprResolveExpr;
20671
 
 
20672
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20673
 
 public :
20674
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20675
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20676
 
};
20677
 
 
20678
 
 
20679
 
#line 20680 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20680
 
} // closed Puma
20681
 
class WinIfExists;
20682
 
class WinImportHandler;
20683
 
class WinMacros;
20684
 
class CMatchSyntax;
20685
 
class ExtGnu;
20686
 
class ExtAC;
20687
 
class ExtACBuilderCoupling;
20688
 
class ExtACSyntaxCoupling;
20689
 
class ExtACTree;
20690
 
class ExtACKeywords;
20691
 
class WinAsm;
20692
 
class WinDeclSpecs;
20693
 
class WinMemberExplSpec;
20694
 
class WinTypeKeywords;
20695
 
class PragmaOnceUnitState;
20696
 
class PragmaOnce;
20697
 
class CCExprResolve;
20698
 
class CExprResolve;
20699
 
namespace Puma {
20700
 
 
20701
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20702
 
class CT_TypeidExpr : public CT_Expression {
20703
 
#line 20704 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20704
 
  friend class ::WinIfExists;
20705
 
  friend class ::WinImportHandler;
20706
 
  friend class ::WinMacros;
20707
 
  friend class ::CMatchSyntax;
20708
 
  friend class ::ExtGnu;
20709
 
  friend class ::ExtAC;
20710
 
  friend class ::ExtACBuilderCoupling;
20711
 
  friend class ::ExtACSyntaxCoupling;
20712
 
  friend class ::ExtACTree;
20713
 
  friend class ::ExtACKeywords;
20714
 
  friend class ::WinAsm;
20715
 
  friend class ::WinDeclSpecs;
20716
 
  friend class ::WinMemberExplSpec;
20717
 
  friend class ::WinTypeKeywords;
20718
 
  friend class ::PragmaOnceUnitState;
20719
 
  friend class ::PragmaOnce;
20720
 
  friend class ::CCExprResolve;
20721
 
  friend class ::CExprResolve;
20722
 
 
20723
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20724
 
 
20725
 
  CTree *sons[4]; // typeid, open, type_id/expr, close
20726
 
 
20727
 
public:
20728
 
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
20729
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
20730
 
  }
20731
 
  static const char *NodeId ();
20732
 
  const char *NodeName () const { return NodeId (); }
20733
 
  int Sons () const { return 4; }
20734
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
20735
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20736
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
20737
 
  }
20738
 
  CTree *Arg () const { return sons[2]; }
20739
 
   private:
20740
 
  typedef CT_TypeidExpr CCExprResolveExpr;
20741
 
 
20742
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20743
 
 public :
20744
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20745
 
  typedef CT_TypeidExpr CExprResolveExpr;
20746
 
 
20747
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20748
 
 public :
20749
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20750
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20751
 
};
20752
 
 
20753
 
 
20754
 
#line 20755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20755
 
} // closed Puma
20756
 
class WinIfExists;
20757
 
class WinImportHandler;
20758
 
class WinMacros;
20759
 
class CMatchSyntax;
20760
 
class ExtGnu;
20761
 
class ExtAC;
20762
 
class ExtACBuilderCoupling;
20763
 
class ExtACSyntaxCoupling;
20764
 
class ExtACTree;
20765
 
class ExtACKeywords;
20766
 
class WinAsm;
20767
 
class WinDeclSpecs;
20768
 
class WinMemberExplSpec;
20769
 
class WinTypeKeywords;
20770
 
class PragmaOnceUnitState;
20771
 
class PragmaOnce;
20772
 
class CCExprResolve;
20773
 
class CExprResolve;
20774
 
namespace Puma {
20775
 
 
20776
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20777
 
class CT_SizeofExpr : public CT_Expression {
20778
 
#line 20779 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20779
 
  friend class ::WinIfExists;
20780
 
  friend class ::WinImportHandler;
20781
 
  friend class ::WinMacros;
20782
 
  friend class ::CMatchSyntax;
20783
 
  friend class ::ExtGnu;
20784
 
  friend class ::ExtAC;
20785
 
  friend class ::ExtACBuilderCoupling;
20786
 
  friend class ::ExtACSyntaxCoupling;
20787
 
  friend class ::ExtACTree;
20788
 
  friend class ::ExtACKeywords;
20789
 
  friend class ::WinAsm;
20790
 
  friend class ::WinDeclSpecs;
20791
 
  friend class ::WinMemberExplSpec;
20792
 
  friend class ::WinTypeKeywords;
20793
 
  friend class ::PragmaOnceUnitState;
20794
 
  friend class ::PragmaOnce;
20795
 
  friend class ::CCExprResolve;
20796
 
  friend class ::CExprResolve;
20797
 
 
20798
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20799
 
 
20800
 
  CTree *sons[5]; // key, open, type, close, expr
20801
 
 
20802
 
public:
20803
 
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
20804
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
20805
 
  }
20806
 
  CT_SizeofExpr (CTree *k, CTree *e) {
20807
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
20808
 
  }
20809
 
  static const char *NodeId ();
20810
 
  const char *NodeName () const { return NodeId (); }
20811
 
  int Sons () const { return CTree::Sons (sons, 5); }
20812
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
20813
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20814
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
20815
 
  }
20816
 
  CTree *Expr () const { return sons[4]; }
20817
 
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
20818
 
   private:
20819
 
  typedef CT_SizeofExpr CCExprResolveExpr;
20820
 
 
20821
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20822
 
 public :
20823
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20824
 
  typedef CT_SizeofExpr CExprResolveExpr;
20825
 
 
20826
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20827
 
 public :
20828
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20829
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20830
 
};
20831
 
 
20832
 
 
20833
 
#line 20834 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20834
 
} // closed Puma
20835
 
class WinIfExists;
20836
 
class WinImportHandler;
20837
 
class WinMacros;
20838
 
class CMatchSyntax;
20839
 
class ExtGnu;
20840
 
class ExtAC;
20841
 
class ExtACBuilderCoupling;
20842
 
class ExtACSyntaxCoupling;
20843
 
class ExtACTree;
20844
 
class ExtACKeywords;
20845
 
class WinAsm;
20846
 
class WinDeclSpecs;
20847
 
class WinMemberExplSpec;
20848
 
class WinTypeKeywords;
20849
 
class PragmaOnceUnitState;
20850
 
class PragmaOnce;
20851
 
class CCExprResolve;
20852
 
class CExprResolve;
20853
 
namespace Puma {
20854
 
 
20855
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20856
 
class CT_IndexDesignator : public CT_Expression {
20857
 
#line 20858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20858
 
  friend class ::WinIfExists;
20859
 
  friend class ::WinImportHandler;
20860
 
  friend class ::WinMacros;
20861
 
  friend class ::CMatchSyntax;
20862
 
  friend class ::ExtGnu;
20863
 
  friend class ::ExtAC;
20864
 
  friend class ::ExtACBuilderCoupling;
20865
 
  friend class ::ExtACSyntaxCoupling;
20866
 
  friend class ::ExtACTree;
20867
 
  friend class ::ExtACKeywords;
20868
 
  friend class ::WinAsm;
20869
 
  friend class ::WinDeclSpecs;
20870
 
  friend class ::WinMemberExplSpec;
20871
 
  friend class ::WinTypeKeywords;
20872
 
  friend class ::PragmaOnceUnitState;
20873
 
  friend class ::PragmaOnce;
20874
 
  friend class ::CCExprResolve;
20875
 
  friend class ::CExprResolve;
20876
 
 
20877
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20878
 
 
20879
 
  CTree *sons[3]; // open, index, close
20880
 
 
20881
 
public:
20882
 
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
20883
 
    sons[0] = o; sons[1] = i; sons[2] = c;
20884
 
  }
20885
 
  static const char *NodeId ();
20886
 
  const char *NodeName () const { return NodeId (); }
20887
 
  int Sons () const { return 3; }
20888
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
20889
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20890
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
20891
 
  }
20892
 
   private:
20893
 
  typedef CT_IndexDesignator CCExprResolveExpr;
20894
 
 
20895
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20896
 
 public :
20897
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20898
 
  typedef CT_IndexDesignator CExprResolveExpr;
20899
 
 
20900
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20901
 
 public :
20902
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20903
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20904
 
};
20905
 
 
20906
 
 
20907
 
#line 20908 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20908
 
} // closed Puma
20909
 
class WinIfExists;
20910
 
class WinImportHandler;
20911
 
class WinMacros;
20912
 
class CMatchSyntax;
20913
 
class ExtGnu;
20914
 
class ExtAC;
20915
 
class ExtACBuilderCoupling;
20916
 
class ExtACSyntaxCoupling;
20917
 
class ExtACTree;
20918
 
class ExtACKeywords;
20919
 
class WinAsm;
20920
 
class WinDeclSpecs;
20921
 
class WinMemberExplSpec;
20922
 
class WinTypeKeywords;
20923
 
class PragmaOnceUnitState;
20924
 
class PragmaOnce;
20925
 
class CCExprResolve;
20926
 
class CExprResolve;
20927
 
namespace Puma {
20928
 
 
20929
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20930
 
class CT_MembDesignator : public CT_Expression {
20931
 
#line 20932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20932
 
  friend class ::WinIfExists;
20933
 
  friend class ::WinImportHandler;
20934
 
  friend class ::WinMacros;
20935
 
  friend class ::CMatchSyntax;
20936
 
  friend class ::ExtGnu;
20937
 
  friend class ::ExtAC;
20938
 
  friend class ::ExtACBuilderCoupling;
20939
 
  friend class ::ExtACSyntaxCoupling;
20940
 
  friend class ::ExtACTree;
20941
 
  friend class ::ExtACKeywords;
20942
 
  friend class ::WinAsm;
20943
 
  friend class ::WinDeclSpecs;
20944
 
  friend class ::WinMemberExplSpec;
20945
 
  friend class ::WinTypeKeywords;
20946
 
  friend class ::PragmaOnceUnitState;
20947
 
  friend class ::PragmaOnce;
20948
 
  friend class ::CCExprResolve;
20949
 
  friend class ::CExprResolve;
20950
 
 
20951
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20952
 
 
20953
 
  CTree *sons[2]; // dot, member
20954
 
 
20955
 
public:
20956
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
20957
 
  static const char *NodeId ();
20958
 
  const char *NodeName () const { return NodeId (); }
20959
 
  int Sons () const { return 2; }
20960
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
20961
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
20962
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
20963
 
  }
20964
 
   private:
20965
 
  typedef CT_MembDesignator CCExprResolveExpr;
20966
 
 
20967
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
20968
 
 public :
20969
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
20970
 
  typedef CT_MembDesignator CExprResolveExpr;
20971
 
 
20972
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
20973
 
 public :
20974
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
20975
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
20976
 
};
20977
 
 
20978
 
 
20979
 
#line 20980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
20980
 
} // closed Puma
20981
 
class WinIfExists;
20982
 
class WinImportHandler;
20983
 
class WinMacros;
20984
 
class CMatchSyntax;
20985
 
class ExtGnu;
20986
 
class ExtAC;
20987
 
class ExtACBuilderCoupling;
20988
 
class ExtACSyntaxCoupling;
20989
 
class ExtACTree;
20990
 
class ExtACKeywords;
20991
 
class WinAsm;
20992
 
class WinDeclSpecs;
20993
 
class WinMemberExplSpec;
20994
 
class WinTypeKeywords;
20995
 
class PragmaOnceUnitState;
20996
 
class PragmaOnce;
20997
 
class CCExprResolve;
20998
 
class CExprResolve;
20999
 
namespace Puma {
21000
 
 
21001
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21002
 
class CT_DesignatorSeq : public CT_List, public CSemValue {
21003
 
#line 21004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21004
 
  friend class ::WinIfExists;
21005
 
  friend class ::WinImportHandler;
21006
 
  friend class ::WinMacros;
21007
 
  friend class ::CMatchSyntax;
21008
 
  friend class ::ExtGnu;
21009
 
  friend class ::ExtAC;
21010
 
  friend class ::ExtACBuilderCoupling;
21011
 
  friend class ::ExtACSyntaxCoupling;
21012
 
  friend class ::ExtACTree;
21013
 
  friend class ::ExtACKeywords;
21014
 
  friend class ::WinAsm;
21015
 
  friend class ::WinDeclSpecs;
21016
 
  friend class ::WinMemberExplSpec;
21017
 
  friend class ::WinTypeKeywords;
21018
 
  friend class ::PragmaOnceUnitState;
21019
 
  friend class ::PragmaOnce;
21020
 
  friend class ::CCExprResolve;
21021
 
  friend class ::CExprResolve;
21022
 
 
21023
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21024
 
 
21025
 
public:
21026
 
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
21027
 
  static const char *NodeId ();
21028
 
  const char *NodeName () const { return NodeId (); }
21029
 
 
21030
 
  CTypeInfo *Type () const { return type; }
21031
 
  CExprValue *Value () const { return value; }
21032
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
21033
 
};
21034
 
 
21035
 
/*****************************************************************************/
21036
 
/*                                                                           */
21037
 
/*                         Declaration specifiers                            */
21038
 
/*                                                                           */
21039
 
/*****************************************************************************/
21040
 
 
21041
 
 
21042
 
#line 21043 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21043
 
} // closed Puma
21044
 
class WinIfExists;
21045
 
class WinImportHandler;
21046
 
class WinMacros;
21047
 
class CMatchSyntax;
21048
 
class ExtGnu;
21049
 
class ExtAC;
21050
 
class ExtACBuilderCoupling;
21051
 
class ExtACSyntaxCoupling;
21052
 
class ExtACTree;
21053
 
class ExtACKeywords;
21054
 
class WinAsm;
21055
 
class WinDeclSpecs;
21056
 
class WinMemberExplSpec;
21057
 
class WinTypeKeywords;
21058
 
class PragmaOnceUnitState;
21059
 
class PragmaOnce;
21060
 
class CCExprResolve;
21061
 
class CExprResolve;
21062
 
namespace Puma {
21063
 
 
21064
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21065
 
class CT_DeclSpec : public CTree {
21066
 
#line 21067 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21067
 
  friend class ::WinIfExists;
21068
 
  friend class ::WinImportHandler;
21069
 
  friend class ::WinMacros;
21070
 
  friend class ::CMatchSyntax;
21071
 
  friend class ::ExtGnu;
21072
 
  friend class ::ExtAC;
21073
 
  friend class ::ExtACBuilderCoupling;
21074
 
  friend class ::ExtACSyntaxCoupling;
21075
 
  friend class ::ExtACTree;
21076
 
  friend class ::ExtACKeywords;
21077
 
  friend class ::WinAsm;
21078
 
  friend class ::WinDeclSpecs;
21079
 
  friend class ::WinMemberExplSpec;
21080
 
  friend class ::WinTypeKeywords;
21081
 
  friend class ::PragmaOnceUnitState;
21082
 
  friend class ::PragmaOnce;
21083
 
  friend class ::CCExprResolve;
21084
 
  friend class ::CExprResolve;
21085
 
 
21086
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21087
 
 
21088
 
protected:
21089
 
  CT_DeclSpec () {}
21090
 
};
21091
 
 
21092
 
 
21093
 
#line 21094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21094
 
} // closed Puma
21095
 
class WinIfExists;
21096
 
class WinImportHandler;
21097
 
class WinMacros;
21098
 
class CMatchSyntax;
21099
 
class ExtGnu;
21100
 
class ExtAC;
21101
 
class ExtACBuilderCoupling;
21102
 
class ExtACSyntaxCoupling;
21103
 
class ExtACTree;
21104
 
class ExtACKeywords;
21105
 
class WinAsm;
21106
 
class WinDeclSpecs;
21107
 
class WinMemberExplSpec;
21108
 
class WinTypeKeywords;
21109
 
class PragmaOnceUnitState;
21110
 
class PragmaOnce;
21111
 
class CCExprResolve;
21112
 
class CExprResolve;
21113
 
namespace Puma {
21114
 
 
21115
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21116
 
class CT_PrimDeclSpec : public CT_DeclSpec {
21117
 
#line 21118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21118
 
  friend class ::WinIfExists;
21119
 
  friend class ::WinImportHandler;
21120
 
  friend class ::WinMacros;
21121
 
  friend class ::CMatchSyntax;
21122
 
  friend class ::ExtGnu;
21123
 
  friend class ::ExtAC;
21124
 
  friend class ::ExtACBuilderCoupling;
21125
 
  friend class ::ExtACSyntaxCoupling;
21126
 
  friend class ::ExtACTree;
21127
 
  friend class ::ExtACKeywords;
21128
 
  friend class ::WinAsm;
21129
 
  friend class ::WinDeclSpecs;
21130
 
  friend class ::WinMemberExplSpec;
21131
 
  friend class ::WinTypeKeywords;
21132
 
  friend class ::PragmaOnceUnitState;
21133
 
  friend class ::PragmaOnce;
21134
 
  friend class ::CCExprResolve;
21135
 
  friend class ::CExprResolve;
21136
 
 
21137
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21138
 
 
21139
 
public:
21140
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
21141
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
21142
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
21143
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
21144
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
21145
 
              // AspectC++ specific type specifier
21146
 
              PDS_UNKNOWN_T,
21147
 
              // Win specific declaration specifiers
21148
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
21149
 
              PDS_UNKNOWN, PDS_NUM };
21150
 
 
21151
 
private:
21152
 
  Type _type;
21153
 
  CT_Token *_token;
21154
 
 
21155
 
  void determine_type ();
21156
 
 
21157
 
public:
21158
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
21159
 
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
21160
 
  static const char *NodeId ();
21161
 
  const char *NodeName () const { return NodeId (); }
21162
 
  int Sons () const { return _token ? 1 : 0; }
21163
 
  CTree *Son (int n) const 
21164
 
   { return (n == 0) ? _token : (CTree*)0; }
21165
 
  const char *SpecText () const 
21166
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
21167
 
  Type SpecType () const { return _type; }
21168
 
  static const int NumTypes = PDS_NUM;
21169
 
};
21170
 
 
21171
 
 
21172
 
#line 21173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21173
 
} // closed Puma
21174
 
class WinIfExists;
21175
 
class WinImportHandler;
21176
 
class WinMacros;
21177
 
class CMatchSyntax;
21178
 
class ExtGnu;
21179
 
class ExtAC;
21180
 
class ExtACBuilderCoupling;
21181
 
class ExtACSyntaxCoupling;
21182
 
class ExtACTree;
21183
 
class ExtACKeywords;
21184
 
class WinAsm;
21185
 
class WinDeclSpecs;
21186
 
class WinMemberExplSpec;
21187
 
class WinTypeKeywords;
21188
 
class PragmaOnceUnitState;
21189
 
class PragmaOnce;
21190
 
class CCExprResolve;
21191
 
class CExprResolve;
21192
 
namespace Puma {
21193
 
 
21194
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21195
 
class CT_NamedType : public CT_DeclSpec, public CSemObject {
21196
 
#line 21197 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21197
 
  friend class ::WinIfExists;
21198
 
  friend class ::WinImportHandler;
21199
 
  friend class ::WinMacros;
21200
 
  friend class ::CMatchSyntax;
21201
 
  friend class ::ExtGnu;
21202
 
  friend class ::ExtAC;
21203
 
  friend class ::ExtACBuilderCoupling;
21204
 
  friend class ::ExtACSyntaxCoupling;
21205
 
  friend class ::ExtACTree;
21206
 
  friend class ::ExtACKeywords;
21207
 
  friend class ::WinAsm;
21208
 
  friend class ::WinDeclSpecs;
21209
 
  friend class ::WinMemberExplSpec;
21210
 
  friend class ::WinTypeKeywords;
21211
 
  friend class ::PragmaOnceUnitState;
21212
 
  friend class ::PragmaOnce;
21213
 
  friend class ::CCExprResolve;
21214
 
  friend class ::CExprResolve;
21215
 
 
21216
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21217
 
 
21218
 
  CTree *sons[2]; // declspecs, declarator
21219
 
 
21220
 
public:
21221
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
21222
 
  static const char *NodeId ();
21223
 
  const char *NodeName () const { return NodeId (); }
21224
 
  int Sons () const { return CTree::Sons (sons, 2); }
21225
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
21226
 
  CTree *Declarator () const { return sons[1]; }
21227
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21228
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
21229
 
  }
21230
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
21231
 
};
21232
 
      
21233
 
 
21234
 
#line 21235 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21235
 
} // closed Puma
21236
 
class WinIfExists;
21237
 
class WinImportHandler;
21238
 
class WinMacros;
21239
 
class CMatchSyntax;
21240
 
class ExtGnu;
21241
 
class ExtAC;
21242
 
class ExtACBuilderCoupling;
21243
 
class ExtACSyntaxCoupling;
21244
 
class ExtACTree;
21245
 
class ExtACKeywords;
21246
 
class WinAsm;
21247
 
class WinDeclSpecs;
21248
 
class WinMemberExplSpec;
21249
 
class WinTypeKeywords;
21250
 
class PragmaOnceUnitState;
21251
 
class PragmaOnce;
21252
 
class CCExprResolve;
21253
 
class CExprResolve;
21254
 
namespace Puma {
21255
 
 
21256
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21257
 
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
21258
 
#line 21259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21259
 
  friend class ::WinIfExists;
21260
 
  friend class ::WinImportHandler;
21261
 
  friend class ::WinMacros;
21262
 
  friend class ::CMatchSyntax;
21263
 
  friend class ::ExtGnu;
21264
 
  friend class ::ExtAC;
21265
 
  friend class ::ExtACBuilderCoupling;
21266
 
  friend class ::ExtACSyntaxCoupling;
21267
 
  friend class ::ExtACTree;
21268
 
  friend class ::ExtACKeywords;
21269
 
  friend class ::WinAsm;
21270
 
  friend class ::WinDeclSpecs;
21271
 
  friend class ::WinMemberExplSpec;
21272
 
  friend class ::WinTypeKeywords;
21273
 
  friend class ::PragmaOnceUnitState;
21274
 
  friend class ::PragmaOnce;
21275
 
  friend class ::CCExprResolve;
21276
 
  friend class ::CExprResolve;
21277
 
 
21278
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21279
 
 
21280
 
  CTree *sons[2]; // key, name
21281
 
  
21282
 
public:
21283
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
21284
 
  static const char *NodeId ();
21285
 
  const char *NodeName () const { return NodeId (); }
21286
 
  int Sons () const { return 2; }
21287
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
21288
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
21289
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
21290
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21291
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
21292
 
  }
21293
 
};
21294
 
 
21295
 
 
21296
 
#line 21297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21297
 
} // closed Puma
21298
 
class WinIfExists;
21299
 
class WinImportHandler;
21300
 
class WinMacros;
21301
 
class CMatchSyntax;
21302
 
class ExtGnu;
21303
 
class ExtAC;
21304
 
class ExtACBuilderCoupling;
21305
 
class ExtACSyntaxCoupling;
21306
 
class ExtACTree;
21307
 
class ExtACKeywords;
21308
 
class WinAsm;
21309
 
class WinDeclSpecs;
21310
 
class WinMemberExplSpec;
21311
 
class WinTypeKeywords;
21312
 
class PragmaOnceUnitState;
21313
 
class PragmaOnce;
21314
 
class CCExprResolve;
21315
 
class CExprResolve;
21316
 
namespace Puma {
21317
 
 
21318
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21319
 
class CT_UnionSpec : public CT_ClassSpec {
21320
 
#line 21321 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21321
 
  friend class ::WinIfExists;
21322
 
  friend class ::WinImportHandler;
21323
 
  friend class ::WinMacros;
21324
 
  friend class ::CMatchSyntax;
21325
 
  friend class ::ExtGnu;
21326
 
  friend class ::ExtAC;
21327
 
  friend class ::ExtACBuilderCoupling;
21328
 
  friend class ::ExtACSyntaxCoupling;
21329
 
  friend class ::ExtACTree;
21330
 
  friend class ::ExtACKeywords;
21331
 
  friend class ::WinAsm;
21332
 
  friend class ::WinDeclSpecs;
21333
 
  friend class ::WinMemberExplSpec;
21334
 
  friend class ::WinTypeKeywords;
21335
 
  friend class ::PragmaOnceUnitState;
21336
 
  friend class ::PragmaOnce;
21337
 
  friend class ::CCExprResolve;
21338
 
  friend class ::CExprResolve;
21339
 
 
21340
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21341
 
 
21342
 
public:
21343
 
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
21344
 
  static const char *NodeId ();
21345
 
  const char *NodeName () const { return NodeId (); }
21346
 
};
21347
 
 
21348
 
 
21349
 
#line 21350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21350
 
} // closed Puma
21351
 
class WinIfExists;
21352
 
class WinImportHandler;
21353
 
class WinMacros;
21354
 
class CMatchSyntax;
21355
 
class ExtGnu;
21356
 
class ExtAC;
21357
 
class ExtACBuilderCoupling;
21358
 
class ExtACSyntaxCoupling;
21359
 
class ExtACTree;
21360
 
class ExtACKeywords;
21361
 
class WinAsm;
21362
 
class WinDeclSpecs;
21363
 
class WinMemberExplSpec;
21364
 
class WinTypeKeywords;
21365
 
class PragmaOnceUnitState;
21366
 
class PragmaOnce;
21367
 
class CCExprResolve;
21368
 
class CExprResolve;
21369
 
namespace Puma {
21370
 
 
21371
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21372
 
class CT_EnumSpec : public CT_ClassSpec {
21373
 
#line 21374 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21374
 
  friend class ::WinIfExists;
21375
 
  friend class ::WinImportHandler;
21376
 
  friend class ::WinMacros;
21377
 
  friend class ::CMatchSyntax;
21378
 
  friend class ::ExtGnu;
21379
 
  friend class ::ExtAC;
21380
 
  friend class ::ExtACBuilderCoupling;
21381
 
  friend class ::ExtACSyntaxCoupling;
21382
 
  friend class ::ExtACTree;
21383
 
  friend class ::ExtACKeywords;
21384
 
  friend class ::WinAsm;
21385
 
  friend class ::WinDeclSpecs;
21386
 
  friend class ::WinMemberExplSpec;
21387
 
  friend class ::WinTypeKeywords;
21388
 
  friend class ::PragmaOnceUnitState;
21389
 
  friend class ::PragmaOnce;
21390
 
  friend class ::CCExprResolve;
21391
 
  friend class ::CExprResolve;
21392
 
 
21393
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21394
 
 
21395
 
public:
21396
 
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
21397
 
  static const char *NodeId ();
21398
 
  const char *NodeName () const { return NodeId (); }
21399
 
};
21400
 
 
21401
 
 
21402
 
#line 21403 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21403
 
} // closed Puma
21404
 
class WinIfExists;
21405
 
class WinImportHandler;
21406
 
class WinMacros;
21407
 
class CMatchSyntax;
21408
 
class ExtGnu;
21409
 
class ExtAC;
21410
 
class ExtACBuilderCoupling;
21411
 
class ExtACSyntaxCoupling;
21412
 
class ExtACTree;
21413
 
class ExtACKeywords;
21414
 
class WinAsm;
21415
 
class WinDeclSpecs;
21416
 
class WinMemberExplSpec;
21417
 
class WinTypeKeywords;
21418
 
class PragmaOnceUnitState;
21419
 
class PragmaOnce;
21420
 
class CCExprResolve;
21421
 
class CExprResolve;
21422
 
namespace Puma {
21423
 
 
21424
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21425
 
class CT_ExceptionSpec : public CT_DeclSpec {
21426
 
#line 21427 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21427
 
  friend class ::WinIfExists;
21428
 
  friend class ::WinImportHandler;
21429
 
  friend class ::WinMacros;
21430
 
  friend class ::CMatchSyntax;
21431
 
  friend class ::ExtGnu;
21432
 
  friend class ::ExtAC;
21433
 
  friend class ::ExtACBuilderCoupling;
21434
 
  friend class ::ExtACSyntaxCoupling;
21435
 
  friend class ::ExtACTree;
21436
 
  friend class ::ExtACKeywords;
21437
 
  friend class ::WinAsm;
21438
 
  friend class ::WinDeclSpecs;
21439
 
  friend class ::WinMemberExplSpec;
21440
 
  friend class ::WinTypeKeywords;
21441
 
  friend class ::PragmaOnceUnitState;
21442
 
  friend class ::PragmaOnce;
21443
 
  friend class ::CCExprResolve;
21444
 
  friend class ::CExprResolve;
21445
 
 
21446
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21447
 
 
21448
 
  CTree *sons[2]; // throw, type_id_list
21449
 
  
21450
 
public:
21451
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
21452
 
  static const char *NodeId ();
21453
 
  const char *NodeName () const { return NodeId (); }
21454
 
  int Sons () const { return 2; }
21455
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
21456
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
21457
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21458
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
21459
 
  }
21460
 
};
21461
 
 
21462
 
/*****************************************************************************/
21463
 
/*                                                                           */
21464
 
/*                              Declarations                                 */
21465
 
/*                                                                           */
21466
 
/*****************************************************************************/
21467
 
 
21468
 
 
21469
 
#line 21470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21470
 
} // closed Puma
21471
 
class WinIfExists;
21472
 
class WinImportHandler;
21473
 
class WinMacros;
21474
 
class CMatchSyntax;
21475
 
class ExtGnu;
21476
 
class ExtAC;
21477
 
class ExtACBuilderCoupling;
21478
 
class ExtACSyntaxCoupling;
21479
 
class ExtACTree;
21480
 
class ExtACKeywords;
21481
 
class WinAsm;
21482
 
class WinDeclSpecs;
21483
 
class WinMemberExplSpec;
21484
 
class WinTypeKeywords;
21485
 
class PragmaOnceUnitState;
21486
 
class PragmaOnce;
21487
 
class CCExprResolve;
21488
 
class CExprResolve;
21489
 
namespace Puma {
21490
 
 
21491
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21492
 
class CT_Decl : public CTree {
21493
 
#line 21494 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21494
 
  friend class ::WinIfExists;
21495
 
  friend class ::WinImportHandler;
21496
 
  friend class ::WinMacros;
21497
 
  friend class ::CMatchSyntax;
21498
 
  friend class ::ExtGnu;
21499
 
  friend class ::ExtAC;
21500
 
  friend class ::ExtACBuilderCoupling;
21501
 
  friend class ::ExtACSyntaxCoupling;
21502
 
  friend class ::ExtACTree;
21503
 
  friend class ::ExtACKeywords;
21504
 
  friend class ::WinAsm;
21505
 
  friend class ::WinDeclSpecs;
21506
 
  friend class ::WinMemberExplSpec;
21507
 
  friend class ::WinTypeKeywords;
21508
 
  friend class ::PragmaOnceUnitState;
21509
 
  friend class ::PragmaOnce;
21510
 
  friend class ::CCExprResolve;
21511
 
  friend class ::CExprResolve;
21512
 
 
21513
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21514
 
 
21515
 
  CT_LinkageSpec *_linkage;
21516
 
protected:
21517
 
  CT_Decl () : _linkage (0) {}
21518
 
public:
21519
 
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
21520
 
  CT_LinkageSpec *Linkage () const { return _linkage; }
21521
 
};
21522
 
 
21523
 
 
21524
 
#line 21525 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21525
 
} // closed Puma
21526
 
class WinIfExists;
21527
 
class WinImportHandler;
21528
 
class WinMacros;
21529
 
class CMatchSyntax;
21530
 
class ExtGnu;
21531
 
class ExtAC;
21532
 
class ExtACBuilderCoupling;
21533
 
class ExtACSyntaxCoupling;
21534
 
class ExtACTree;
21535
 
class ExtACKeywords;
21536
 
class WinAsm;
21537
 
class WinDeclSpecs;
21538
 
class WinMemberExplSpec;
21539
 
class WinTypeKeywords;
21540
 
class PragmaOnceUnitState;
21541
 
class PragmaOnce;
21542
 
class CCExprResolve;
21543
 
class CExprResolve;
21544
 
namespace Puma {
21545
 
 
21546
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21547
 
class CT_Program : public CT_DeclList, public CSemScope {
21548
 
#line 21549 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21549
 
  friend class ::WinIfExists;
21550
 
  friend class ::WinImportHandler;
21551
 
  friend class ::WinMacros;
21552
 
  friend class ::CMatchSyntax;
21553
 
  friend class ::ExtGnu;
21554
 
  friend class ::ExtAC;
21555
 
  friend class ::ExtACBuilderCoupling;
21556
 
  friend class ::ExtACSyntaxCoupling;
21557
 
  friend class ::ExtACTree;
21558
 
  friend class ::ExtACKeywords;
21559
 
  friend class ::WinAsm;
21560
 
  friend class ::WinDeclSpecs;
21561
 
  friend class ::WinMemberExplSpec;
21562
 
  friend class ::WinTypeKeywords;
21563
 
  friend class ::PragmaOnceUnitState;
21564
 
  friend class ::PragmaOnce;
21565
 
  friend class ::CCExprResolve;
21566
 
  friend class ::CExprResolve;
21567
 
 
21568
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21569
 
 
21570
 
public:
21571
 
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
21572
 
  static const char *NodeId ();
21573
 
  const char *NodeName () const { return NodeId (); }
21574
 
};
21575
 
   
21576
 
 
21577
 
#line 21578 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21578
 
} // closed Puma
21579
 
class WinIfExists;
21580
 
class WinImportHandler;
21581
 
class WinMacros;
21582
 
class CMatchSyntax;
21583
 
class ExtGnu;
21584
 
class ExtAC;
21585
 
class ExtACBuilderCoupling;
21586
 
class ExtACSyntaxCoupling;
21587
 
class ExtACTree;
21588
 
class ExtACKeywords;
21589
 
class WinAsm;
21590
 
class WinDeclSpecs;
21591
 
class WinMemberExplSpec;
21592
 
class WinTypeKeywords;
21593
 
class PragmaOnceUnitState;
21594
 
class PragmaOnce;
21595
 
class CCExprResolve;
21596
 
class CExprResolve;
21597
 
namespace Puma {
21598
 
 
21599
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21600
 
class CT_ObjDecl : public CT_Decl {
21601
 
#line 21602 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21602
 
  friend class ::WinIfExists;
21603
 
  friend class ::WinImportHandler;
21604
 
  friend class ::WinMacros;
21605
 
  friend class ::CMatchSyntax;
21606
 
  friend class ::ExtGnu;
21607
 
  friend class ::ExtAC;
21608
 
  friend class ::ExtACBuilderCoupling;
21609
 
  friend class ::ExtACSyntaxCoupling;
21610
 
  friend class ::ExtACTree;
21611
 
  friend class ::ExtACKeywords;
21612
 
  friend class ::WinAsm;
21613
 
  friend class ::WinDeclSpecs;
21614
 
  friend class ::WinMemberExplSpec;
21615
 
  friend class ::WinTypeKeywords;
21616
 
  friend class ::PragmaOnceUnitState;
21617
 
  friend class ::PragmaOnce;
21618
 
  friend class ::CCExprResolve;
21619
 
  friend class ::CExprResolve;
21620
 
 
21621
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21622
 
 
21623
 
  CTree *sons[3]; // declspecs, declarators, colon
21624
 
 
21625
 
public:
21626
 
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
21627
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
21628
 
  }
21629
 
  static const char *NodeId ();
21630
 
  const char *NodeName () const { return NodeId (); }
21631
 
  int Sons () const { return 3; }
21632
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
21633
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
21634
 
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
21635
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21636
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
21637
 
  }
21638
 
};
21639
 
 
21640
 
 
21641
 
#line 21642 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21642
 
} // closed Puma
21643
 
class WinIfExists;
21644
 
class WinImportHandler;
21645
 
class WinMacros;
21646
 
class CMatchSyntax;
21647
 
class ExtGnu;
21648
 
class ExtAC;
21649
 
class ExtACBuilderCoupling;
21650
 
class ExtACSyntaxCoupling;
21651
 
class ExtACTree;
21652
 
class ExtACKeywords;
21653
 
class WinAsm;
21654
 
class WinDeclSpecs;
21655
 
class WinMemberExplSpec;
21656
 
class WinTypeKeywords;
21657
 
class PragmaOnceUnitState;
21658
 
class PragmaOnce;
21659
 
class CCExprResolve;
21660
 
class CExprResolve;
21661
 
namespace Puma {
21662
 
 
21663
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21664
 
class CT_TemplateDecl : public CT_Decl, public CSemScope {
21665
 
#line 21666 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21666
 
  friend class ::WinIfExists;
21667
 
  friend class ::WinImportHandler;
21668
 
  friend class ::WinMacros;
21669
 
  friend class ::CMatchSyntax;
21670
 
  friend class ::ExtGnu;
21671
 
  friend class ::ExtAC;
21672
 
  friend class ::ExtACBuilderCoupling;
21673
 
  friend class ::ExtACSyntaxCoupling;
21674
 
  friend class ::ExtACTree;
21675
 
  friend class ::ExtACKeywords;
21676
 
  friend class ::WinAsm;
21677
 
  friend class ::WinDeclSpecs;
21678
 
  friend class ::WinMemberExplSpec;
21679
 
  friend class ::WinTypeKeywords;
21680
 
  friend class ::PragmaOnceUnitState;
21681
 
  friend class ::PragmaOnce;
21682
 
  friend class ::CCExprResolve;
21683
 
  friend class ::CExprResolve;
21684
 
 
21685
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21686
 
 
21687
 
  CTree *sons[3]; // export, param_list, decl
21688
 
 
21689
 
public:
21690
 
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
21691
 
    sons[0] = e; sons[1] = p; sons[2] = d;
21692
 
  }
21693
 
  static const char *NodeId ();
21694
 
  const char *NodeName () const { return NodeId (); }
21695
 
  int Sons () const { return CTree::Sons (sons, 3); }
21696
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
21697
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21698
 
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
21699
 
  }
21700
 
  CTree *Export () const { return sons[0]; }
21701
 
  CT_TemplateParamList *Parameters () const { 
21702
 
    return (CT_TemplateParamList*)sons[1]; 
21703
 
  }
21704
 
  CTree *Declaration () const { return sons[2]; }
21705
 
};
21706
 
 
21707
 
 
21708
 
#line 21709 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21709
 
} // closed Puma
21710
 
class WinIfExists;
21711
 
class WinImportHandler;
21712
 
class WinMacros;
21713
 
class CMatchSyntax;
21714
 
class ExtGnu;
21715
 
class ExtAC;
21716
 
class ExtACBuilderCoupling;
21717
 
class ExtACSyntaxCoupling;
21718
 
class ExtACTree;
21719
 
class ExtACKeywords;
21720
 
class WinAsm;
21721
 
class WinDeclSpecs;
21722
 
class WinMemberExplSpec;
21723
 
class WinTypeKeywords;
21724
 
class PragmaOnceUnitState;
21725
 
class PragmaOnce;
21726
 
class CCExprResolve;
21727
 
class CExprResolve;
21728
 
namespace Puma {
21729
 
 
21730
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21731
 
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
21732
 
#line 21733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21733
 
  friend class ::WinIfExists;
21734
 
  friend class ::WinImportHandler;
21735
 
  friend class ::WinMacros;
21736
 
  friend class ::CMatchSyntax;
21737
 
  friend class ::ExtGnu;
21738
 
  friend class ::ExtAC;
21739
 
  friend class ::ExtACBuilderCoupling;
21740
 
  friend class ::ExtACSyntaxCoupling;
21741
 
  friend class ::ExtACTree;
21742
 
  friend class ::ExtACKeywords;
21743
 
  friend class ::WinAsm;
21744
 
  friend class ::WinDeclSpecs;
21745
 
  friend class ::WinMemberExplSpec;
21746
 
  friend class ::WinTypeKeywords;
21747
 
  friend class ::PragmaOnceUnitState;
21748
 
  friend class ::PragmaOnce;
21749
 
  friend class ::CCExprResolve;
21750
 
  friend class ::CExprResolve;
21751
 
 
21752
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21753
 
 
21754
 
protected:
21755
 
  CT_TemplateParamDecl () {}
21756
 
  
21757
 
public:
21758
 
  virtual CT_ExprList *DefaultArgument () const = 0;
21759
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
21760
 
};
21761
 
 
21762
 
 
21763
 
#line 21764 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21764
 
} // closed Puma
21765
 
class WinIfExists;
21766
 
class WinImportHandler;
21767
 
class WinMacros;
21768
 
class CMatchSyntax;
21769
 
class ExtGnu;
21770
 
class ExtAC;
21771
 
class ExtACBuilderCoupling;
21772
 
class ExtACSyntaxCoupling;
21773
 
class ExtACTree;
21774
 
class ExtACKeywords;
21775
 
class WinAsm;
21776
 
class WinDeclSpecs;
21777
 
class WinMemberExplSpec;
21778
 
class WinTypeKeywords;
21779
 
class PragmaOnceUnitState;
21780
 
class PragmaOnce;
21781
 
class CCExprResolve;
21782
 
class CExprResolve;
21783
 
namespace Puma {
21784
 
 
21785
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21786
 
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
21787
 
#line 21788 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21788
 
  friend class ::WinIfExists;
21789
 
  friend class ::WinImportHandler;
21790
 
  friend class ::WinMacros;
21791
 
  friend class ::CMatchSyntax;
21792
 
  friend class ::ExtGnu;
21793
 
  friend class ::ExtAC;
21794
 
  friend class ::ExtACBuilderCoupling;
21795
 
  friend class ::ExtACSyntaxCoupling;
21796
 
  friend class ::ExtACTree;
21797
 
  friend class ::ExtACKeywords;
21798
 
  friend class ::WinAsm;
21799
 
  friend class ::WinDeclSpecs;
21800
 
  friend class ::WinMemberExplSpec;
21801
 
  friend class ::WinTypeKeywords;
21802
 
  friend class ::PragmaOnceUnitState;
21803
 
  friend class ::PragmaOnce;
21804
 
  friend class ::CCExprResolve;
21805
 
  friend class ::CExprResolve;
21806
 
 
21807
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21808
 
 
21809
 
  CTree *sons[3]; // declspecs, declarator, init
21810
 
 
21811
 
public:
21812
 
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
21813
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
21814
 
  }
21815
 
  static const char *NodeId ();
21816
 
  const char *NodeName () const { return NodeId (); }
21817
 
  int Sons () const { return CTree::Sons (sons, 3); }
21818
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
21819
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
21820
 
  CTree *Declarator () const { return sons[1]; }
21821
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
21822
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
21823
 
  void Initializer (CTree *i) { sons[2] = i; }
21824
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21825
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
21826
 
  }
21827
 
};
21828
 
 
21829
 
 
21830
 
#line 21831 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21831
 
} // closed Puma
21832
 
class WinIfExists;
21833
 
class WinImportHandler;
21834
 
class WinMacros;
21835
 
class CMatchSyntax;
21836
 
class ExtGnu;
21837
 
class ExtAC;
21838
 
class ExtACBuilderCoupling;
21839
 
class ExtACSyntaxCoupling;
21840
 
class ExtACTree;
21841
 
class ExtACKeywords;
21842
 
class WinAsm;
21843
 
class WinDeclSpecs;
21844
 
class WinMemberExplSpec;
21845
 
class WinTypeKeywords;
21846
 
class PragmaOnceUnitState;
21847
 
class PragmaOnce;
21848
 
class CCExprResolve;
21849
 
class CExprResolve;
21850
 
namespace Puma {
21851
 
 
21852
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21853
 
class CT_TypeParamDecl : public CT_TemplateParamDecl {
21854
 
#line 21855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21855
 
  friend class ::WinIfExists;
21856
 
  friend class ::WinImportHandler;
21857
 
  friend class ::WinMacros;
21858
 
  friend class ::CMatchSyntax;
21859
 
  friend class ::ExtGnu;
21860
 
  friend class ::ExtAC;
21861
 
  friend class ::ExtACBuilderCoupling;
21862
 
  friend class ::ExtACSyntaxCoupling;
21863
 
  friend class ::ExtACTree;
21864
 
  friend class ::ExtACKeywords;
21865
 
  friend class ::WinAsm;
21866
 
  friend class ::WinDeclSpecs;
21867
 
  friend class ::WinMemberExplSpec;
21868
 
  friend class ::WinTypeKeywords;
21869
 
  friend class ::PragmaOnceUnitState;
21870
 
  friend class ::PragmaOnce;
21871
 
  friend class ::CCExprResolve;
21872
 
  friend class ::CExprResolve;
21873
 
 
21874
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21875
 
 
21876
 
  CTree *sons[4]; // params, key, id, init
21877
 
 
21878
 
public:
21879
 
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
21880
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
21881
 
  }
21882
 
  static const char *NodeId ();
21883
 
  const char *NodeName () const { return NodeId (); }
21884
 
  int Sons () const { return CTree::Sons (sons, 4); }
21885
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
21886
 
  CT_TemplateParamList *Parameters () const { 
21887
 
    return (CT_TemplateParamList*)sons[0]; 
21888
 
  }
21889
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
21890
 
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
21891
 
  void Initializer (CTree *i) { sons[3] = i; }
21892
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21893
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
21894
 
  }
21895
 
};
21896
 
 
21897
 
 
21898
 
#line 21899 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21899
 
} // closed Puma
21900
 
class WinIfExists;
21901
 
class WinImportHandler;
21902
 
class WinMacros;
21903
 
class CMatchSyntax;
21904
 
class ExtGnu;
21905
 
class ExtAC;
21906
 
class ExtACBuilderCoupling;
21907
 
class ExtACSyntaxCoupling;
21908
 
class ExtACTree;
21909
 
class ExtACKeywords;
21910
 
class WinAsm;
21911
 
class WinDeclSpecs;
21912
 
class WinMemberExplSpec;
21913
 
class WinTypeKeywords;
21914
 
class PragmaOnceUnitState;
21915
 
class PragmaOnce;
21916
 
class CCExprResolve;
21917
 
class CExprResolve;
21918
 
namespace Puma {
21919
 
 
21920
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21921
 
class CT_EnumDef : public CT_Decl, public CSemObject {
21922
 
#line 21923 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21923
 
  friend class ::WinIfExists;
21924
 
  friend class ::WinImportHandler;
21925
 
  friend class ::WinMacros;
21926
 
  friend class ::CMatchSyntax;
21927
 
  friend class ::ExtGnu;
21928
 
  friend class ::ExtAC;
21929
 
  friend class ::ExtACBuilderCoupling;
21930
 
  friend class ::ExtACSyntaxCoupling;
21931
 
  friend class ::ExtACTree;
21932
 
  friend class ::ExtACKeywords;
21933
 
  friend class ::WinAsm;
21934
 
  friend class ::WinDeclSpecs;
21935
 
  friend class ::WinMemberExplSpec;
21936
 
  friend class ::WinTypeKeywords;
21937
 
  friend class ::PragmaOnceUnitState;
21938
 
  friend class ::PragmaOnce;
21939
 
  friend class ::CCExprResolve;
21940
 
  friend class ::CExprResolve;
21941
 
 
21942
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21943
 
 
21944
 
  CTree *sons[3]; // key, name, enumerators
21945
 
 
21946
 
public:
21947
 
  CT_EnumDef (CTree *k, CTree *n) {
21948
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
21949
 
  }
21950
 
  static const char *NodeId ();
21951
 
  const char *NodeName () const { return NodeId (); }
21952
 
  int Sons () const { return CTree::Sons (sons, 3); }
21953
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
21954
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
21955
 
  void Enumerators (CTree *el) { sons[2] = el; }
21956
 
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
21957
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
21958
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
21959
 
  }
21960
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
21961
 
};
21962
 
 
21963
 
 
21964
 
#line 21965 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21965
 
} // closed Puma
21966
 
class WinIfExists;
21967
 
class WinImportHandler;
21968
 
class WinMacros;
21969
 
class CMatchSyntax;
21970
 
class ExtGnu;
21971
 
class ExtAC;
21972
 
class ExtACBuilderCoupling;
21973
 
class ExtACSyntaxCoupling;
21974
 
class ExtACTree;
21975
 
class ExtACKeywords;
21976
 
class WinAsm;
21977
 
class WinDeclSpecs;
21978
 
class WinMemberExplSpec;
21979
 
class WinTypeKeywords;
21980
 
class PragmaOnceUnitState;
21981
 
class PragmaOnce;
21982
 
class CCExprResolve;
21983
 
class CExprResolve;
21984
 
namespace Puma {
21985
 
 
21986
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
21987
 
class CT_Enumerator : public CT_Decl, public CSemObject {
21988
 
#line 21989 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
21989
 
  friend class ::WinIfExists;
21990
 
  friend class ::WinImportHandler;
21991
 
  friend class ::WinMacros;
21992
 
  friend class ::CMatchSyntax;
21993
 
  friend class ::ExtGnu;
21994
 
  friend class ::ExtAC;
21995
 
  friend class ::ExtACBuilderCoupling;
21996
 
  friend class ::ExtACSyntaxCoupling;
21997
 
  friend class ::ExtACTree;
21998
 
  friend class ::ExtACKeywords;
21999
 
  friend class ::WinAsm;
22000
 
  friend class ::WinDeclSpecs;
22001
 
  friend class ::WinMemberExplSpec;
22002
 
  friend class ::WinTypeKeywords;
22003
 
  friend class ::PragmaOnceUnitState;
22004
 
  friend class ::PragmaOnce;
22005
 
  friend class ::CCExprResolve;
22006
 
  friend class ::CExprResolve;
22007
 
 
22008
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22009
 
 
22010
 
  CTree *sons[2]; // name, init
22011
 
 
22012
 
public:
22013
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
22014
 
  static const char *NodeId ();
22015
 
  const char *NodeName () const { return NodeId (); }
22016
 
  int Sons () const { return CTree::Sons (sons, 2); }
22017
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
22018
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
22019
 
  void Initializer (CTree *i) { sons[1] = i; }
22020
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
22021
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22022
 
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
22023
 
  }
22024
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
22025
 
};
22026
 
 
22027
 
 
22028
 
#line 22029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22029
 
} // closed Puma
22030
 
class WinIfExists;
22031
 
class WinImportHandler;
22032
 
class WinMacros;
22033
 
class CMatchSyntax;
22034
 
class ExtGnu;
22035
 
class ExtAC;
22036
 
class ExtACBuilderCoupling;
22037
 
class ExtACSyntaxCoupling;
22038
 
class ExtACTree;
22039
 
class ExtACKeywords;
22040
 
class WinAsm;
22041
 
class WinDeclSpecs;
22042
 
class WinMemberExplSpec;
22043
 
class WinTypeKeywords;
22044
 
class PragmaOnceUnitState;
22045
 
class PragmaOnce;
22046
 
class CCExprResolve;
22047
 
class CExprResolve;
22048
 
namespace Puma {
22049
 
 
22050
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22051
 
class CT_FctDef : public CT_Decl, public CSemObject {
22052
 
#line 22053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22053
 
  friend class ::WinIfExists;
22054
 
  friend class ::WinImportHandler;
22055
 
  friend class ::WinMacros;
22056
 
  friend class ::CMatchSyntax;
22057
 
  friend class ::ExtGnu;
22058
 
  friend class ::ExtAC;
22059
 
  friend class ::ExtACBuilderCoupling;
22060
 
  friend class ::ExtACSyntaxCoupling;
22061
 
  friend class ::ExtACTree;
22062
 
  friend class ::ExtACKeywords;
22063
 
  friend class ::WinAsm;
22064
 
  friend class ::WinDeclSpecs;
22065
 
  friend class ::WinMemberExplSpec;
22066
 
  friend class ::WinTypeKeywords;
22067
 
  friend class ::PragmaOnceUnitState;
22068
 
  friend class ::PragmaOnce;
22069
 
  friend class ::CCExprResolve;
22070
 
  friend class ::CExprResolve;
22071
 
 
22072
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22073
 
 
22074
 
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
22075
 
 
22076
 
public:
22077
 
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
22078
 
             CTree *b, CTree *hs) {
22079
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
22080
 
    sons[5] = b; sons[6] = hs; 
22081
 
  }
22082
 
  static const char *NodeId ();
22083
 
  const char *NodeName () const { return NodeId (); }
22084
 
  int Sons () const { return CTree::Sons (sons, 7); }
22085
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
22086
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
22087
 
  CTree *Declarator () const { return sons[1]; }
22088
 
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
22089
 
  CTree *CtorInit () const { return sons[3]; }
22090
 
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
22091
 
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
22092
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
22093
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
22094
 
  void CtorInit (CTree *i) { sons[3] = i; }
22095
 
  void Body (CTree *b) { sons[5] = b; }
22096
 
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
22097
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
22098
 
  }
22099
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22100
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
22101
 
  }
22102
 
};
22103
 
 
22104
 
 
22105
 
#line 22106 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22106
 
} // closed Puma
22107
 
class WinIfExists;
22108
 
class WinImportHandler;
22109
 
class WinMacros;
22110
 
class CMatchSyntax;
22111
 
class ExtGnu;
22112
 
class ExtAC;
22113
 
class ExtACBuilderCoupling;
22114
 
class ExtACSyntaxCoupling;
22115
 
class ExtACTree;
22116
 
class ExtACKeywords;
22117
 
class WinAsm;
22118
 
class WinDeclSpecs;
22119
 
class WinMemberExplSpec;
22120
 
class WinTypeKeywords;
22121
 
class PragmaOnceUnitState;
22122
 
class PragmaOnce;
22123
 
class CCExprResolve;
22124
 
class CExprResolve;
22125
 
namespace Puma {
22126
 
 
22127
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22128
 
class CT_AsmDef : public CT_Decl {
22129
 
#line 22130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22130
 
  friend class ::WinIfExists;
22131
 
  friend class ::WinImportHandler;
22132
 
  friend class ::WinMacros;
22133
 
  friend class ::CMatchSyntax;
22134
 
  friend class ::ExtGnu;
22135
 
  friend class ::ExtAC;
22136
 
  friend class ::ExtACBuilderCoupling;
22137
 
  friend class ::ExtACSyntaxCoupling;
22138
 
  friend class ::ExtACTree;
22139
 
  friend class ::ExtACKeywords;
22140
 
  friend class ::WinAsm;
22141
 
  friend class ::WinDeclSpecs;
22142
 
  friend class ::WinMemberExplSpec;
22143
 
  friend class ::WinTypeKeywords;
22144
 
  friend class ::PragmaOnceUnitState;
22145
 
  friend class ::PragmaOnce;
22146
 
  friend class ::CCExprResolve;
22147
 
  friend class ::CExprResolve;
22148
 
 
22149
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22150
 
 
22151
 
  CTree *sons[5]; // asm, open, str, close, semi_colon
22152
 
 
22153
 
public:
22154
 
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
22155
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
22156
 
  }
22157
 
  static const char *NodeId ();
22158
 
  const char *NodeName () const { return NodeId (); }
22159
 
  int Sons () const { return 5; }
22160
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
22161
 
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
22162
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22163
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
22164
 
  }
22165
 
};
22166
 
 
22167
 
 
22168
 
#line 22169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22169
 
} // closed Puma
22170
 
class WinIfExists;
22171
 
class WinImportHandler;
22172
 
class WinMacros;
22173
 
class CMatchSyntax;
22174
 
class ExtGnu;
22175
 
class ExtAC;
22176
 
class ExtACBuilderCoupling;
22177
 
class ExtACSyntaxCoupling;
22178
 
class ExtACTree;
22179
 
class ExtACKeywords;
22180
 
class WinAsm;
22181
 
class WinDeclSpecs;
22182
 
class WinMemberExplSpec;
22183
 
class WinTypeKeywords;
22184
 
class PragmaOnceUnitState;
22185
 
class PragmaOnce;
22186
 
class CCExprResolve;
22187
 
class CExprResolve;
22188
 
namespace Puma {
22189
 
 
22190
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22191
 
class CT_Handler : public CT_Decl, public CSemScope {
22192
 
#line 22193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22193
 
  friend class ::WinIfExists;
22194
 
  friend class ::WinImportHandler;
22195
 
  friend class ::WinMacros;
22196
 
  friend class ::CMatchSyntax;
22197
 
  friend class ::ExtGnu;
22198
 
  friend class ::ExtAC;
22199
 
  friend class ::ExtACBuilderCoupling;
22200
 
  friend class ::ExtACSyntaxCoupling;
22201
 
  friend class ::ExtACTree;
22202
 
  friend class ::ExtACKeywords;
22203
 
  friend class ::WinAsm;
22204
 
  friend class ::WinDeclSpecs;
22205
 
  friend class ::WinMemberExplSpec;
22206
 
  friend class ::WinTypeKeywords;
22207
 
  friend class ::PragmaOnceUnitState;
22208
 
  friend class ::PragmaOnce;
22209
 
  friend class ::CCExprResolve;
22210
 
  friend class ::CExprResolve;
22211
 
 
22212
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22213
 
 
22214
 
  CTree *sons[3]; // catch, exception_decl, stmt
22215
 
 
22216
 
public:
22217
 
  CT_Handler (CTree *c, CTree *e, CTree *s) {
22218
 
    sons[0] = c; sons[1] = e; sons[2] = s;
22219
 
  }
22220
 
  static const char *NodeId ();
22221
 
  const char *NodeName () const { return NodeId (); }
22222
 
  int Sons () const { return 3; }
22223
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22224
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
22225
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
22226
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22227
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22228
 
  }
22229
 
};
22230
 
 
22231
 
 
22232
 
#line 22233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22233
 
} // closed Puma
22234
 
class WinIfExists;
22235
 
class WinImportHandler;
22236
 
class WinMacros;
22237
 
class CMatchSyntax;
22238
 
class ExtGnu;
22239
 
class ExtAC;
22240
 
class ExtACBuilderCoupling;
22241
 
class ExtACSyntaxCoupling;
22242
 
class ExtACTree;
22243
 
class ExtACKeywords;
22244
 
class WinAsm;
22245
 
class WinDeclSpecs;
22246
 
class WinMemberExplSpec;
22247
 
class WinTypeKeywords;
22248
 
class PragmaOnceUnitState;
22249
 
class PragmaOnce;
22250
 
class CCExprResolve;
22251
 
class CExprResolve;
22252
 
namespace Puma {
22253
 
 
22254
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22255
 
class CT_LinkageSpec : public CT_Decl {
22256
 
#line 22257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22257
 
  friend class ::WinIfExists;
22258
 
  friend class ::WinImportHandler;
22259
 
  friend class ::WinMacros;
22260
 
  friend class ::CMatchSyntax;
22261
 
  friend class ::ExtGnu;
22262
 
  friend class ::ExtAC;
22263
 
  friend class ::ExtACBuilderCoupling;
22264
 
  friend class ::ExtACSyntaxCoupling;
22265
 
  friend class ::ExtACTree;
22266
 
  friend class ::ExtACKeywords;
22267
 
  friend class ::WinAsm;
22268
 
  friend class ::WinDeclSpecs;
22269
 
  friend class ::WinMemberExplSpec;
22270
 
  friend class ::WinTypeKeywords;
22271
 
  friend class ::PragmaOnceUnitState;
22272
 
  friend class ::PragmaOnce;
22273
 
  friend class ::CCExprResolve;
22274
 
  friend class ::CExprResolve;
22275
 
 
22276
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22277
 
 
22278
 
  CTree *sons[5]; // extern, str, open, decls, close
22279
 
 
22280
 
public:
22281
 
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
22282
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
22283
 
    if (isList ())
22284
 
      ((CT_DeclList*)Decls ())->Linkage (this);
22285
 
    else
22286
 
      ((CT_Decl*)Decls ())->Linkage (this);
22287
 
  }
22288
 
  static const char *NodeId ();
22289
 
  const char *NodeName () const { return NodeId (); }
22290
 
  int Sons () const { return CTree::Sons (sons, 5); }
22291
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
22292
 
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
22293
 
  CTree *Decls () const { return sons[3]; }
22294
 
  bool isList () const {
22295
 
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
22296
 
  }
22297
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22298
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
22299
 
  }
22300
 
};
22301
 
 
22302
 
 
22303
 
#line 22304 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22304
 
} // closed Puma
22305
 
class WinIfExists;
22306
 
class WinImportHandler;
22307
 
class WinMacros;
22308
 
class CMatchSyntax;
22309
 
class ExtGnu;
22310
 
class ExtAC;
22311
 
class ExtACBuilderCoupling;
22312
 
class ExtACSyntaxCoupling;
22313
 
class ExtACTree;
22314
 
class ExtACKeywords;
22315
 
class WinAsm;
22316
 
class WinDeclSpecs;
22317
 
class WinMemberExplSpec;
22318
 
class WinTypeKeywords;
22319
 
class PragmaOnceUnitState;
22320
 
class PragmaOnce;
22321
 
class CCExprResolve;
22322
 
class CExprResolve;
22323
 
namespace Puma {
22324
 
 
22325
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22326
 
class CT_ArgDecl : public CT_Decl, public CSemObject {
22327
 
#line 22328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22328
 
  friend class ::WinIfExists;
22329
 
  friend class ::WinImportHandler;
22330
 
  friend class ::WinMacros;
22331
 
  friend class ::CMatchSyntax;
22332
 
  friend class ::ExtGnu;
22333
 
  friend class ::ExtAC;
22334
 
  friend class ::ExtACBuilderCoupling;
22335
 
  friend class ::ExtACSyntaxCoupling;
22336
 
  friend class ::ExtACTree;
22337
 
  friend class ::ExtACKeywords;
22338
 
  friend class ::WinAsm;
22339
 
  friend class ::WinDeclSpecs;
22340
 
  friend class ::WinMemberExplSpec;
22341
 
  friend class ::WinTypeKeywords;
22342
 
  friend class ::PragmaOnceUnitState;
22343
 
  friend class ::PragmaOnce;
22344
 
  friend class ::CCExprResolve;
22345
 
  friend class ::CExprResolve;
22346
 
 
22347
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22348
 
 
22349
 
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
22350
 
 
22351
 
public:
22352
 
  CT_ArgDecl (CTree *dsl, CTree *d) {
22353
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
22354
 
  }
22355
 
  CT_ArgDecl (CTree *ellipsis) {
22356
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
22357
 
  }
22358
 
  static const char *NodeId ();
22359
 
  const char *NodeName () const { return NodeId (); }
22360
 
  int Sons () const { return CTree::Sons (sons, 4); }
22361
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
22362
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
22363
 
  CTree *Declarator () const { return sons[1]; }
22364
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
22365
 
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
22366
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
22367
 
  void Initializer (CTree *i) { sons[2] = i; }
22368
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22369
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22370
 
  }
22371
 
};
22372
 
 
22373
 
 
22374
 
#line 22375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22375
 
} // closed Puma
22376
 
class WinIfExists;
22377
 
class WinImportHandler;
22378
 
class WinMacros;
22379
 
class CMatchSyntax;
22380
 
class ExtGnu;
22381
 
class ExtAC;
22382
 
class ExtACBuilderCoupling;
22383
 
class ExtACSyntaxCoupling;
22384
 
class ExtACTree;
22385
 
class ExtACKeywords;
22386
 
class WinAsm;
22387
 
class WinDeclSpecs;
22388
 
class WinMemberExplSpec;
22389
 
class WinTypeKeywords;
22390
 
class PragmaOnceUnitState;
22391
 
class PragmaOnce;
22392
 
class CCExprResolve;
22393
 
class CExprResolve;
22394
 
namespace Puma {
22395
 
 
22396
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22397
 
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
22398
 
#line 22399 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22399
 
  friend class ::WinIfExists;
22400
 
  friend class ::WinImportHandler;
22401
 
  friend class ::WinMacros;
22402
 
  friend class ::CMatchSyntax;
22403
 
  friend class ::ExtGnu;
22404
 
  friend class ::ExtAC;
22405
 
  friend class ::ExtACBuilderCoupling;
22406
 
  friend class ::ExtACSyntaxCoupling;
22407
 
  friend class ::ExtACTree;
22408
 
  friend class ::ExtACKeywords;
22409
 
  friend class ::WinAsm;
22410
 
  friend class ::WinDeclSpecs;
22411
 
  friend class ::WinMemberExplSpec;
22412
 
  friend class ::WinTypeKeywords;
22413
 
  friend class ::PragmaOnceUnitState;
22414
 
  friend class ::PragmaOnce;
22415
 
  friend class ::CCExprResolve;
22416
 
  friend class ::CExprResolve;
22417
 
 
22418
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22419
 
 
22420
 
public:
22421
 
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
22422
 
   CT_DeclList (size, 2) { AddProperties (props); }
22423
 
  static const char *NodeId ();
22424
 
  const char *NodeName () const { return NodeId (); }
22425
 
};
22426
 
 
22427
 
 
22428
 
#line 22429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22429
 
} // closed Puma
22430
 
class WinIfExists;
22431
 
class WinImportHandler;
22432
 
class WinMacros;
22433
 
class CMatchSyntax;
22434
 
class ExtGnu;
22435
 
class ExtAC;
22436
 
class ExtACBuilderCoupling;
22437
 
class ExtACSyntaxCoupling;
22438
 
class ExtACTree;
22439
 
class ExtACKeywords;
22440
 
class WinAsm;
22441
 
class WinDeclSpecs;
22442
 
class WinMemberExplSpec;
22443
 
class WinTypeKeywords;
22444
 
class PragmaOnceUnitState;
22445
 
class PragmaOnce;
22446
 
class CCExprResolve;
22447
 
class CExprResolve;
22448
 
namespace Puma {
22449
 
 
22450
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22451
 
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
22452
 
#line 22453 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22453
 
  friend class ::WinIfExists;
22454
 
  friend class ::WinImportHandler;
22455
 
  friend class ::WinMacros;
22456
 
  friend class ::CMatchSyntax;
22457
 
  friend class ::ExtGnu;
22458
 
  friend class ::ExtAC;
22459
 
  friend class ::ExtACBuilderCoupling;
22460
 
  friend class ::ExtACSyntaxCoupling;
22461
 
  friend class ::ExtACTree;
22462
 
  friend class ::ExtACKeywords;
22463
 
  friend class ::WinAsm;
22464
 
  friend class ::WinDeclSpecs;
22465
 
  friend class ::WinMemberExplSpec;
22466
 
  friend class ::WinTypeKeywords;
22467
 
  friend class ::PragmaOnceUnitState;
22468
 
  friend class ::PragmaOnce;
22469
 
  friend class ::CCExprResolve;
22470
 
  friend class ::CExprResolve;
22471
 
 
22472
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22473
 
 
22474
 
public:
22475
 
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
22476
 
  static const char *NodeId ();
22477
 
  const char *NodeName () const { return NodeId (); }
22478
 
};
22479
 
 
22480
 
 
22481
 
#line 22482 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22482
 
} // closed Puma
22483
 
class WinIfExists;
22484
 
class WinImportHandler;
22485
 
class WinMacros;
22486
 
class CMatchSyntax;
22487
 
class ExtGnu;
22488
 
class ExtAC;
22489
 
class ExtACBuilderCoupling;
22490
 
class ExtACSyntaxCoupling;
22491
 
class ExtACTree;
22492
 
class ExtACKeywords;
22493
 
class WinAsm;
22494
 
class WinDeclSpecs;
22495
 
class WinMemberExplSpec;
22496
 
class WinTypeKeywords;
22497
 
class PragmaOnceUnitState;
22498
 
class PragmaOnce;
22499
 
class CCExprResolve;
22500
 
class CExprResolve;
22501
 
namespace Puma {
22502
 
 
22503
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22504
 
class CT_ArgNameList : public CT_ArgDeclList {
22505
 
#line 22506 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22506
 
  friend class ::WinIfExists;
22507
 
  friend class ::WinImportHandler;
22508
 
  friend class ::WinMacros;
22509
 
  friend class ::CMatchSyntax;
22510
 
  friend class ::ExtGnu;
22511
 
  friend class ::ExtAC;
22512
 
  friend class ::ExtACBuilderCoupling;
22513
 
  friend class ::ExtACSyntaxCoupling;
22514
 
  friend class ::ExtACTree;
22515
 
  friend class ::ExtACKeywords;
22516
 
  friend class ::WinAsm;
22517
 
  friend class ::WinDeclSpecs;
22518
 
  friend class ::WinMemberExplSpec;
22519
 
  friend class ::WinTypeKeywords;
22520
 
  friend class ::PragmaOnceUnitState;
22521
 
  friend class ::PragmaOnce;
22522
 
  friend class ::CCExprResolve;
22523
 
  friend class ::CExprResolve;
22524
 
 
22525
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22526
 
 
22527
 
public:
22528
 
  CT_ArgNameList () : CT_ArgDeclList () {}
22529
 
  static const char *NodeId ();
22530
 
  const char *NodeName () const { return NodeId (); }
22531
 
};
22532
 
 
22533
 
 
22534
 
#line 22535 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22535
 
} // closed Puma
22536
 
class WinIfExists;
22537
 
class WinImportHandler;
22538
 
class WinMacros;
22539
 
class CMatchSyntax;
22540
 
class ExtGnu;
22541
 
class ExtAC;
22542
 
class ExtACBuilderCoupling;
22543
 
class ExtACSyntaxCoupling;
22544
 
class ExtACTree;
22545
 
class ExtACKeywords;
22546
 
class WinAsm;
22547
 
class WinDeclSpecs;
22548
 
class WinMemberExplSpec;
22549
 
class WinTypeKeywords;
22550
 
class PragmaOnceUnitState;
22551
 
class PragmaOnce;
22552
 
class CCExprResolve;
22553
 
class CExprResolve;
22554
 
namespace Puma {
22555
 
 
22556
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22557
 
class CT_NamespaceDef : public CT_Decl, public CSemObject {
22558
 
#line 22559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22559
 
  friend class ::WinIfExists;
22560
 
  friend class ::WinImportHandler;
22561
 
  friend class ::WinMacros;
22562
 
  friend class ::CMatchSyntax;
22563
 
  friend class ::ExtGnu;
22564
 
  friend class ::ExtAC;
22565
 
  friend class ::ExtACBuilderCoupling;
22566
 
  friend class ::ExtACSyntaxCoupling;
22567
 
  friend class ::ExtACTree;
22568
 
  friend class ::ExtACKeywords;
22569
 
  friend class ::WinAsm;
22570
 
  friend class ::WinDeclSpecs;
22571
 
  friend class ::WinMemberExplSpec;
22572
 
  friend class ::WinTypeKeywords;
22573
 
  friend class ::PragmaOnceUnitState;
22574
 
  friend class ::PragmaOnce;
22575
 
  friend class ::CCExprResolve;
22576
 
  friend class ::CExprResolve;
22577
 
 
22578
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22579
 
 
22580
 
  CTree *sons[3]; // ns, name, members
22581
 
 
22582
 
public:
22583
 
  CT_NamespaceDef (CTree *n, CTree *nm) {
22584
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
22585
 
  }
22586
 
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
22587
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
22588
 
  }
22589
 
  static const char *NodeId ();
22590
 
  const char *NodeName () const { return NodeId (); }
22591
 
  int Sons () const { return CTree::Sons (sons, 3); }
22592
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
22593
 
  void Members (CTree *m) { sons[2] = m; }
22594
 
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
22595
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
22596
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
22597
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22598
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
22599
 
  }
22600
 
};
22601
 
 
22602
 
 
22603
 
#line 22604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22604
 
} // closed Puma
22605
 
class WinIfExists;
22606
 
class WinImportHandler;
22607
 
class WinMacros;
22608
 
class CMatchSyntax;
22609
 
class ExtGnu;
22610
 
class ExtAC;
22611
 
class ExtACBuilderCoupling;
22612
 
class ExtACSyntaxCoupling;
22613
 
class ExtACTree;
22614
 
class ExtACKeywords;
22615
 
class WinAsm;
22616
 
class WinDeclSpecs;
22617
 
class WinMemberExplSpec;
22618
 
class WinTypeKeywords;
22619
 
class PragmaOnceUnitState;
22620
 
class PragmaOnce;
22621
 
class CCExprResolve;
22622
 
class CExprResolve;
22623
 
namespace Puma {
22624
 
 
22625
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22626
 
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
22627
 
#line 22628 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22628
 
  friend class ::WinIfExists;
22629
 
  friend class ::WinImportHandler;
22630
 
  friend class ::WinMacros;
22631
 
  friend class ::CMatchSyntax;
22632
 
  friend class ::ExtGnu;
22633
 
  friend class ::ExtAC;
22634
 
  friend class ::ExtACBuilderCoupling;
22635
 
  friend class ::ExtACSyntaxCoupling;
22636
 
  friend class ::ExtACTree;
22637
 
  friend class ::ExtACKeywords;
22638
 
  friend class ::WinAsm;
22639
 
  friend class ::WinDeclSpecs;
22640
 
  friend class ::WinMemberExplSpec;
22641
 
  friend class ::WinTypeKeywords;
22642
 
  friend class ::PragmaOnceUnitState;
22643
 
  friend class ::PragmaOnce;
22644
 
  friend class ::CCExprResolve;
22645
 
  friend class ::CExprResolve;
22646
 
 
22647
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22648
 
 
22649
 
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
22650
 
 
22651
 
public:
22652
 
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
22653
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
22654
 
  }
22655
 
  static const char *NodeId ();
22656
 
  const char *NodeName () const { return NodeId (); }
22657
 
  int Sons () const { return 5; }
22658
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
22659
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
22660
 
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
22661
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
22662
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22663
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
22664
 
  }
22665
 
};
22666
 
 
22667
 
 
22668
 
#line 22669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22669
 
} // closed Puma
22670
 
class WinIfExists;
22671
 
class WinImportHandler;
22672
 
class WinMacros;
22673
 
class CMatchSyntax;
22674
 
class ExtGnu;
22675
 
class ExtAC;
22676
 
class ExtACBuilderCoupling;
22677
 
class ExtACSyntaxCoupling;
22678
 
class ExtACTree;
22679
 
class ExtACKeywords;
22680
 
class WinAsm;
22681
 
class WinDeclSpecs;
22682
 
class WinMemberExplSpec;
22683
 
class WinTypeKeywords;
22684
 
class PragmaOnceUnitState;
22685
 
class PragmaOnce;
22686
 
class CCExprResolve;
22687
 
class CExprResolve;
22688
 
namespace Puma {
22689
 
 
22690
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22691
 
class CT_UsingDirective : public CT_Decl {
22692
 
#line 22693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22693
 
  friend class ::WinIfExists;
22694
 
  friend class ::WinImportHandler;
22695
 
  friend class ::WinMacros;
22696
 
  friend class ::CMatchSyntax;
22697
 
  friend class ::ExtGnu;
22698
 
  friend class ::ExtAC;
22699
 
  friend class ::ExtACBuilderCoupling;
22700
 
  friend class ::ExtACSyntaxCoupling;
22701
 
  friend class ::ExtACTree;
22702
 
  friend class ::ExtACKeywords;
22703
 
  friend class ::WinAsm;
22704
 
  friend class ::WinDeclSpecs;
22705
 
  friend class ::WinMemberExplSpec;
22706
 
  friend class ::WinTypeKeywords;
22707
 
  friend class ::PragmaOnceUnitState;
22708
 
  friend class ::PragmaOnce;
22709
 
  friend class ::CCExprResolve;
22710
 
  friend class ::CExprResolve;
22711
 
 
22712
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22713
 
 
22714
 
  CTree *sons[4]; // using, ns, name, semi_colon
22715
 
 
22716
 
public:
22717
 
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
22718
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
22719
 
  }
22720
 
  static const char *NodeId ();
22721
 
  const char *NodeName () const { return NodeId (); }
22722
 
  int Sons () const { return 4; }
22723
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
22724
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
22725
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22726
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22727
 
  }
22728
 
};
22729
 
 
22730
 
/*****************************************************************************/
22731
 
/*                                                                           */
22732
 
/*                              Declarators                                  */
22733
 
/*                                                                           */
22734
 
/*****************************************************************************/
22735
 
 
22736
 
 
22737
 
#line 22738 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22738
 
} // closed Puma
22739
 
class WinIfExists;
22740
 
class WinImportHandler;
22741
 
class WinMacros;
22742
 
class CMatchSyntax;
22743
 
class ExtGnu;
22744
 
class ExtAC;
22745
 
class ExtACBuilderCoupling;
22746
 
class ExtACSyntaxCoupling;
22747
 
class ExtACTree;
22748
 
class ExtACKeywords;
22749
 
class WinAsm;
22750
 
class WinDeclSpecs;
22751
 
class WinMemberExplSpec;
22752
 
class WinTypeKeywords;
22753
 
class PragmaOnceUnitState;
22754
 
class PragmaOnce;
22755
 
class CCExprResolve;
22756
 
class CExprResolve;
22757
 
namespace Puma {
22758
 
 
22759
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22760
 
class CT_Declarator : public CTree {
22761
 
#line 22762 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22762
 
  friend class ::WinIfExists;
22763
 
  friend class ::WinImportHandler;
22764
 
  friend class ::WinMacros;
22765
 
  friend class ::CMatchSyntax;
22766
 
  friend class ::ExtGnu;
22767
 
  friend class ::ExtAC;
22768
 
  friend class ::ExtACBuilderCoupling;
22769
 
  friend class ::ExtACSyntaxCoupling;
22770
 
  friend class ::ExtACTree;
22771
 
  friend class ::ExtACKeywords;
22772
 
  friend class ::WinAsm;
22773
 
  friend class ::WinDeclSpecs;
22774
 
  friend class ::WinMemberExplSpec;
22775
 
  friend class ::WinTypeKeywords;
22776
 
  friend class ::PragmaOnceUnitState;
22777
 
  friend class ::PragmaOnce;
22778
 
  friend class ::CCExprResolve;
22779
 
  friend class ::CExprResolve;
22780
 
 
22781
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22782
 
 
22783
 
protected:
22784
 
  CT_Declarator () {}
22785
 
 
22786
 
public:
22787
 
  virtual CTree *Declarator () const = 0;
22788
 
  //classification function
22789
 
  virtual CT_Declarator *IsDeclarator () { return this; }
22790
 
  // locate the name node
22791
 
  CT_SimpleName *Name ();
22792
 
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
22793
 
};
22794
 
 
22795
 
 
22796
 
#line 22797 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22797
 
} // closed Puma
22798
 
class WinIfExists;
22799
 
class WinImportHandler;
22800
 
class WinMacros;
22801
 
class CMatchSyntax;
22802
 
class ExtGnu;
22803
 
class ExtAC;
22804
 
class ExtACBuilderCoupling;
22805
 
class ExtACSyntaxCoupling;
22806
 
class ExtACTree;
22807
 
class ExtACKeywords;
22808
 
class WinAsm;
22809
 
class WinDeclSpecs;
22810
 
class WinMemberExplSpec;
22811
 
class WinTypeKeywords;
22812
 
class PragmaOnceUnitState;
22813
 
class PragmaOnce;
22814
 
class CCExprResolve;
22815
 
class CExprResolve;
22816
 
namespace Puma {
22817
 
 
22818
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22819
 
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
22820
 
#line 22821 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22821
 
  friend class ::WinIfExists;
22822
 
  friend class ::WinImportHandler;
22823
 
  friend class ::WinMacros;
22824
 
  friend class ::CMatchSyntax;
22825
 
  friend class ::ExtGnu;
22826
 
  friend class ::ExtAC;
22827
 
  friend class ::ExtACBuilderCoupling;
22828
 
  friend class ::ExtACSyntaxCoupling;
22829
 
  friend class ::ExtACTree;
22830
 
  friend class ::ExtACKeywords;
22831
 
  friend class ::WinAsm;
22832
 
  friend class ::WinDeclSpecs;
22833
 
  friend class ::WinMemberExplSpec;
22834
 
  friend class ::WinTypeKeywords;
22835
 
  friend class ::PragmaOnceUnitState;
22836
 
  friend class ::PragmaOnce;
22837
 
  friend class ::CCExprResolve;
22838
 
  friend class ::CExprResolve;
22839
 
 
22840
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22841
 
 
22842
 
  CTree *sons[2]; // declarator, init
22843
 
  CTree *obj_decl;
22844
 
 
22845
 
public:
22846
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
22847
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
22848
 
  }
22849
 
  static const char *NodeId ();
22850
 
  const char *NodeName () const { return NodeId (); }
22851
 
  int Sons () const { return CTree::Sons (sons, 2); }
22852
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
22853
 
  CTree *Declarator () const { return sons[0]; }
22854
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
22855
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
22856
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
22857
 
  void Initializer (CTree* i) { sons[1] = i; }
22858
 
  void ObjDecl (CTree *od) { obj_decl = od; }
22859
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22860
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
22861
 
  }
22862
 
};
22863
 
 
22864
 
 
22865
 
#line 22866 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22866
 
} // closed Puma
22867
 
class WinIfExists;
22868
 
class WinImportHandler;
22869
 
class WinMacros;
22870
 
class CMatchSyntax;
22871
 
class ExtGnu;
22872
 
class ExtAC;
22873
 
class ExtACBuilderCoupling;
22874
 
class ExtACSyntaxCoupling;
22875
 
class ExtACTree;
22876
 
class ExtACKeywords;
22877
 
class WinAsm;
22878
 
class WinDeclSpecs;
22879
 
class WinMemberExplSpec;
22880
 
class WinTypeKeywords;
22881
 
class PragmaOnceUnitState;
22882
 
class PragmaOnce;
22883
 
class CCExprResolve;
22884
 
class CExprResolve;
22885
 
namespace Puma {
22886
 
 
22887
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22888
 
class CT_BracedDeclarator : public CT_Declarator {
22889
 
#line 22890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22890
 
  friend class ::WinIfExists;
22891
 
  friend class ::WinImportHandler;
22892
 
  friend class ::WinMacros;
22893
 
  friend class ::CMatchSyntax;
22894
 
  friend class ::ExtGnu;
22895
 
  friend class ::ExtAC;
22896
 
  friend class ::ExtACBuilderCoupling;
22897
 
  friend class ::ExtACSyntaxCoupling;
22898
 
  friend class ::ExtACTree;
22899
 
  friend class ::ExtACKeywords;
22900
 
  friend class ::WinAsm;
22901
 
  friend class ::WinDeclSpecs;
22902
 
  friend class ::WinMemberExplSpec;
22903
 
  friend class ::WinTypeKeywords;
22904
 
  friend class ::PragmaOnceUnitState;
22905
 
  friend class ::PragmaOnce;
22906
 
  friend class ::CCExprResolve;
22907
 
  friend class ::CExprResolve;
22908
 
 
22909
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22910
 
 
22911
 
  CTree *sons[4]; // open, win_specs, declarator, close
22912
 
 
22913
 
public:
22914
 
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
22915
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
22916
 
  }
22917
 
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
22918
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
22919
 
  }
22920
 
  static const char *NodeId ();
22921
 
  const char *NodeName () const { return NodeId (); }
22922
 
  int Sons () const { return CTree::Sons (sons, 4); }
22923
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
22924
 
  CTree *Declarator () const { return sons[2]; }
22925
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22926
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22927
 
  }
22928
 
};
22929
 
 
22930
 
 
22931
 
#line 22932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22932
 
} // closed Puma
22933
 
class WinIfExists;
22934
 
class WinImportHandler;
22935
 
class WinMacros;
22936
 
class CMatchSyntax;
22937
 
class ExtGnu;
22938
 
class ExtAC;
22939
 
class ExtACBuilderCoupling;
22940
 
class ExtACSyntaxCoupling;
22941
 
class ExtACTree;
22942
 
class ExtACKeywords;
22943
 
class WinAsm;
22944
 
class WinDeclSpecs;
22945
 
class WinMemberExplSpec;
22946
 
class WinTypeKeywords;
22947
 
class PragmaOnceUnitState;
22948
 
class PragmaOnce;
22949
 
class CCExprResolve;
22950
 
class CExprResolve;
22951
 
namespace Puma {
22952
 
 
22953
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22954
 
class CT_ArrayDelimiter : public CTree {
22955
 
#line 22956 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22956
 
  friend class ::WinIfExists;
22957
 
  friend class ::WinImportHandler;
22958
 
  friend class ::WinMacros;
22959
 
  friend class ::CMatchSyntax;
22960
 
  friend class ::ExtGnu;
22961
 
  friend class ::ExtAC;
22962
 
  friend class ::ExtACBuilderCoupling;
22963
 
  friend class ::ExtACSyntaxCoupling;
22964
 
  friend class ::ExtACTree;
22965
 
  friend class ::ExtACKeywords;
22966
 
  friend class ::WinAsm;
22967
 
  friend class ::WinDeclSpecs;
22968
 
  friend class ::WinMemberExplSpec;
22969
 
  friend class ::WinTypeKeywords;
22970
 
  friend class ::PragmaOnceUnitState;
22971
 
  friend class ::PragmaOnce;
22972
 
  friend class ::CCExprResolve;
22973
 
  friend class ::CExprResolve;
22974
 
 
22975
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
22976
 
 
22977
 
  CTree *sons[4]; // star, static, quals, expr
22978
 
  bool pos0;
22979
 
 
22980
 
public:
22981
 
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
22982
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
22983
 
  }
22984
 
  static const char *NodeId ();
22985
 
  const char *NodeName () const { return NodeId (); }
22986
 
  int Sons () const { return CTree::Sons (sons, 4); }
22987
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
22988
 
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
22989
 
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
22990
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
22991
 
  CTree *Expr () const { return sons[3]; }
22992
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
22993
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
22994
 
  }
22995
 
};
22996
 
 
22997
 
 
22998
 
#line 22999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
22999
 
} // closed Puma
23000
 
class WinIfExists;
23001
 
class WinImportHandler;
23002
 
class WinMacros;
23003
 
class CMatchSyntax;
23004
 
class ExtGnu;
23005
 
class ExtAC;
23006
 
class ExtACBuilderCoupling;
23007
 
class ExtACSyntaxCoupling;
23008
 
class ExtACTree;
23009
 
class ExtACKeywords;
23010
 
class WinAsm;
23011
 
class WinDeclSpecs;
23012
 
class WinMemberExplSpec;
23013
 
class WinTypeKeywords;
23014
 
class PragmaOnceUnitState;
23015
 
class PragmaOnce;
23016
 
class CCExprResolve;
23017
 
class CExprResolve;
23018
 
namespace Puma {
23019
 
 
23020
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23021
 
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
23022
 
#line 23023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23023
 
  friend class ::WinIfExists;
23024
 
  friend class ::WinImportHandler;
23025
 
  friend class ::WinMacros;
23026
 
  friend class ::CMatchSyntax;
23027
 
  friend class ::ExtGnu;
23028
 
  friend class ::ExtAC;
23029
 
  friend class ::ExtACBuilderCoupling;
23030
 
  friend class ::ExtACSyntaxCoupling;
23031
 
  friend class ::ExtACTree;
23032
 
  friend class ::ExtACKeywords;
23033
 
  friend class ::WinAsm;
23034
 
  friend class ::WinDeclSpecs;
23035
 
  friend class ::WinMemberExplSpec;
23036
 
  friend class ::WinTypeKeywords;
23037
 
  friend class ::PragmaOnceUnitState;
23038
 
  friend class ::PragmaOnce;
23039
 
  friend class ::CCExprResolve;
23040
 
  friend class ::CExprResolve;
23041
 
 
23042
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23043
 
 
23044
 
  CTree *sons[4]; // declarator, open, delim, close
23045
 
 
23046
 
public:
23047
 
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
23048
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
23049
 
  }
23050
 
  static const char *NodeId ();
23051
 
  const char *NodeName () const { return NodeId (); }
23052
 
  int Sons () const { return 4; }
23053
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
23054
 
  CTree *Declarator () const { return sons[0]; }
23055
 
  CT_ArrayDelimiter *Delimiter () const 
23056
 
   { return (CT_ArrayDelimiter*)sons[2]; }
23057
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23058
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23059
 
  }
23060
 
  CTypeInfo *Type () const { return type; }
23061
 
  CExprValue *Value () const { return value; }
23062
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
23063
 
};
23064
 
 
23065
 
 
23066
 
#line 23067 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23067
 
} // closed Puma
23068
 
class WinIfExists;
23069
 
class WinImportHandler;
23070
 
class WinMacros;
23071
 
class CMatchSyntax;
23072
 
class ExtGnu;
23073
 
class ExtAC;
23074
 
class ExtACBuilderCoupling;
23075
 
class ExtACSyntaxCoupling;
23076
 
class ExtACTree;
23077
 
class ExtACKeywords;
23078
 
class WinAsm;
23079
 
class WinDeclSpecs;
23080
 
class WinMemberExplSpec;
23081
 
class WinTypeKeywords;
23082
 
class PragmaOnceUnitState;
23083
 
class PragmaOnce;
23084
 
class CCExprResolve;
23085
 
class CExprResolve;
23086
 
namespace Puma {
23087
 
 
23088
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23089
 
class CT_FctDeclarator : public CT_Declarator {
23090
 
#line 23091 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23091
 
  friend class ::WinIfExists;
23092
 
  friend class ::WinImportHandler;
23093
 
  friend class ::WinMacros;
23094
 
  friend class ::CMatchSyntax;
23095
 
  friend class ::ExtGnu;
23096
 
  friend class ::ExtAC;
23097
 
  friend class ::ExtACBuilderCoupling;
23098
 
  friend class ::ExtACSyntaxCoupling;
23099
 
  friend class ::ExtACTree;
23100
 
  friend class ::ExtACKeywords;
23101
 
  friend class ::WinAsm;
23102
 
  friend class ::WinDeclSpecs;
23103
 
  friend class ::WinMemberExplSpec;
23104
 
  friend class ::WinTypeKeywords;
23105
 
  friend class ::PragmaOnceUnitState;
23106
 
  friend class ::PragmaOnce;
23107
 
  friend class ::CCExprResolve;
23108
 
  friend class ::CExprResolve;
23109
 
 
23110
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23111
 
 
23112
 
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
23113
 
 
23114
 
public:
23115
 
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
23116
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
23117
 
  }
23118
 
  static const char *NodeId ();
23119
 
  const char *NodeName () const { return NodeId (); }
23120
 
  int Sons () const { return CTree::Sons (sons, 4); }
23121
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
23122
 
  CTree *Declarator () const { return sons[0]; }
23123
 
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
23124
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
23125
 
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
23126
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23127
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23128
 
  }
23129
 
};
23130
 
 
23131
 
 
23132
 
#line 23133 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23133
 
} // closed Puma
23134
 
class WinIfExists;
23135
 
class WinImportHandler;
23136
 
class WinMacros;
23137
 
class CMatchSyntax;
23138
 
class ExtGnu;
23139
 
class ExtAC;
23140
 
class ExtACBuilderCoupling;
23141
 
class ExtACSyntaxCoupling;
23142
 
class ExtACTree;
23143
 
class ExtACKeywords;
23144
 
class WinAsm;
23145
 
class WinDeclSpecs;
23146
 
class WinMemberExplSpec;
23147
 
class WinTypeKeywords;
23148
 
class PragmaOnceUnitState;
23149
 
class PragmaOnce;
23150
 
class CCExprResolve;
23151
 
class CExprResolve;
23152
 
namespace Puma {
23153
 
 
23154
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23155
 
class CT_RefDeclarator : public CT_Declarator {
23156
 
#line 23157 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23157
 
  friend class ::WinIfExists;
23158
 
  friend class ::WinImportHandler;
23159
 
  friend class ::WinMacros;
23160
 
  friend class ::CMatchSyntax;
23161
 
  friend class ::ExtGnu;
23162
 
  friend class ::ExtAC;
23163
 
  friend class ::ExtACBuilderCoupling;
23164
 
  friend class ::ExtACSyntaxCoupling;
23165
 
  friend class ::ExtACTree;
23166
 
  friend class ::ExtACKeywords;
23167
 
  friend class ::WinAsm;
23168
 
  friend class ::WinDeclSpecs;
23169
 
  friend class ::WinMemberExplSpec;
23170
 
  friend class ::WinTypeKeywords;
23171
 
  friend class ::PragmaOnceUnitState;
23172
 
  friend class ::PragmaOnce;
23173
 
  friend class ::CCExprResolve;
23174
 
  friend class ::CExprResolve;
23175
 
 
23176
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23177
 
 
23178
 
  CTree *sons[2]; // ref, declarator
23179
 
 
23180
 
public:
23181
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
23182
 
  static const char *NodeId ();
23183
 
  const char *NodeName () const { return NodeId (); }
23184
 
  int Sons () const { return 2; }
23185
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
23186
 
  CTree *Declarator () const { return sons[1]; }
23187
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
23188
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
23189
 
  }
23190
 
};
23191
 
 
23192
 
 
23193
 
#line 23194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23194
 
} // closed Puma
23195
 
class WinIfExists;
23196
 
class WinImportHandler;
23197
 
class WinMacros;
23198
 
class CMatchSyntax;
23199
 
class ExtGnu;
23200
 
class ExtAC;
23201
 
class ExtACBuilderCoupling;
23202
 
class ExtACSyntaxCoupling;
23203
 
class ExtACTree;
23204
 
class ExtACKeywords;
23205
 
class WinAsm;
23206
 
class WinDeclSpecs;
23207
 
class WinMemberExplSpec;
23208
 
class WinTypeKeywords;
23209
 
class PragmaOnceUnitState;
23210
 
class PragmaOnce;
23211
 
class CCExprResolve;
23212
 
class CExprResolve;
23213
 
namespace Puma {
23214
 
 
23215
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23216
 
class CT_PtrDeclarator : public CT_Declarator {
23217
 
#line 23218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23218
 
  friend class ::WinIfExists;
23219
 
  friend class ::WinImportHandler;
23220
 
  friend class ::WinMacros;
23221
 
  friend class ::CMatchSyntax;
23222
 
  friend class ::ExtGnu;
23223
 
  friend class ::ExtAC;
23224
 
  friend class ::ExtACBuilderCoupling;
23225
 
  friend class ::ExtACSyntaxCoupling;
23226
 
  friend class ::ExtACTree;
23227
 
  friend class ::ExtACKeywords;
23228
 
  friend class ::WinAsm;
23229
 
  friend class ::WinDeclSpecs;
23230
 
  friend class ::WinMemberExplSpec;
23231
 
  friend class ::WinTypeKeywords;
23232
 
  friend class ::PragmaOnceUnitState;
23233
 
  friend class ::PragmaOnce;
23234
 
  friend class ::CCExprResolve;
23235
 
  friend class ::CExprResolve;
23236
 
 
23237
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23238
 
 
23239
 
  CTree *sons[3]; // ptr, cv_quals, declarator
23240
 
 
23241
 
public:
23242
 
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
23243
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
23244
 
  }
23245
 
  static const char *NodeId ();
23246
 
  const char *NodeName () const { return NodeId (); }
23247
 
  int Sons () const { return CTree::Sons (sons, 3); }
23248
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23249
 
  CTree *Declarator () const { return sons[2]; }
23250
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
23251
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23252
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23253
 
  }
23254
 
};
23255
 
 
23256
 
 
23257
 
#line 23258 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23258
 
} // closed Puma
23259
 
class WinIfExists;
23260
 
class WinImportHandler;
23261
 
class WinMacros;
23262
 
class CMatchSyntax;
23263
 
class ExtGnu;
23264
 
class ExtAC;
23265
 
class ExtACBuilderCoupling;
23266
 
class ExtACSyntaxCoupling;
23267
 
class ExtACTree;
23268
 
class ExtACKeywords;
23269
 
class WinAsm;
23270
 
class WinDeclSpecs;
23271
 
class WinMemberExplSpec;
23272
 
class WinTypeKeywords;
23273
 
class PragmaOnceUnitState;
23274
 
class PragmaOnce;
23275
 
class CCExprResolve;
23276
 
class CExprResolve;
23277
 
namespace Puma {
23278
 
 
23279
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23280
 
class CT_MembPtrDeclarator : public CT_Declarator {
23281
 
#line 23282 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23282
 
  friend class ::WinIfExists;
23283
 
  friend class ::WinImportHandler;
23284
 
  friend class ::WinMacros;
23285
 
  friend class ::CMatchSyntax;
23286
 
  friend class ::ExtGnu;
23287
 
  friend class ::ExtAC;
23288
 
  friend class ::ExtACBuilderCoupling;
23289
 
  friend class ::ExtACSyntaxCoupling;
23290
 
  friend class ::ExtACTree;
23291
 
  friend class ::ExtACKeywords;
23292
 
  friend class ::WinAsm;
23293
 
  friend class ::WinDeclSpecs;
23294
 
  friend class ::WinMemberExplSpec;
23295
 
  friend class ::WinTypeKeywords;
23296
 
  friend class ::PragmaOnceUnitState;
23297
 
  friend class ::PragmaOnce;
23298
 
  friend class ::CCExprResolve;
23299
 
  friend class ::CExprResolve;
23300
 
 
23301
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23302
 
 
23303
 
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
23304
 
 
23305
 
public:
23306
 
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
23307
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
23308
 
  }
23309
 
  static const char *NodeId ();
23310
 
  const char *NodeName () const { return NodeId (); }
23311
 
  int Sons () const { return CTree::Sons (sons, 5); }
23312
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
23313
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
23314
 
  CTree *Declarator () const { return sons[4]; }
23315
 
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
23316
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23317
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
23318
 
  }
23319
 
};
23320
 
 
23321
 
 
23322
 
#line 23323 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23323
 
} // closed Puma
23324
 
class WinIfExists;
23325
 
class WinImportHandler;
23326
 
class WinMacros;
23327
 
class CMatchSyntax;
23328
 
class ExtGnu;
23329
 
class ExtAC;
23330
 
class ExtACBuilderCoupling;
23331
 
class ExtACSyntaxCoupling;
23332
 
class ExtACTree;
23333
 
class ExtACKeywords;
23334
 
class WinAsm;
23335
 
class WinDeclSpecs;
23336
 
class WinMemberExplSpec;
23337
 
class WinTypeKeywords;
23338
 
class PragmaOnceUnitState;
23339
 
class PragmaOnce;
23340
 
class CCExprResolve;
23341
 
class CExprResolve;
23342
 
namespace Puma {
23343
 
 
23344
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23345
 
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
23346
 
#line 23347 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23347
 
  friend class ::WinIfExists;
23348
 
  friend class ::WinImportHandler;
23349
 
  friend class ::WinMacros;
23350
 
  friend class ::CMatchSyntax;
23351
 
  friend class ::ExtGnu;
23352
 
  friend class ::ExtAC;
23353
 
  friend class ::ExtACBuilderCoupling;
23354
 
  friend class ::ExtACSyntaxCoupling;
23355
 
  friend class ::ExtACTree;
23356
 
  friend class ::ExtACKeywords;
23357
 
  friend class ::WinAsm;
23358
 
  friend class ::WinDeclSpecs;
23359
 
  friend class ::WinMemberExplSpec;
23360
 
  friend class ::WinTypeKeywords;
23361
 
  friend class ::PragmaOnceUnitState;
23362
 
  friend class ::PragmaOnce;
23363
 
  friend class ::CCExprResolve;
23364
 
  friend class ::CExprResolve;
23365
 
 
23366
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23367
 
 
23368
 
  CTree *sons[3]; // declarator, colon, expr
23369
 
 
23370
 
public:
23371
 
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
23372
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
23373
 
  }
23374
 
  static const char *NodeId ();
23375
 
  const char *NodeName () const { return NodeId (); }
23376
 
  int Sons () const { return CTree::Sons (sons, 3); }
23377
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23378
 
  CTree *Declarator () const { return sons[0]; }
23379
 
  CTree *Expr () const { return sons[2]; }
23380
 
  void FieldSize (CTree *s) { sons[2] = s; }
23381
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
23382
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23383
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23384
 
  }
23385
 
};
23386
 
 
23387
 
/*****************************************************************************/
23388
 
/*                                                                           */
23389
 
/*                              Statements                                   */
23390
 
/*                                                                           */
23391
 
/*****************************************************************************/
23392
 
 
23393
 
 
23394
 
#line 23395 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23395
 
} // closed Puma
23396
 
class WinIfExists;
23397
 
class WinImportHandler;
23398
 
class WinMacros;
23399
 
class CMatchSyntax;
23400
 
class ExtGnu;
23401
 
class ExtAC;
23402
 
class ExtACBuilderCoupling;
23403
 
class ExtACSyntaxCoupling;
23404
 
class ExtACTree;
23405
 
class ExtACKeywords;
23406
 
class WinAsm;
23407
 
class WinDeclSpecs;
23408
 
class WinMemberExplSpec;
23409
 
class WinTypeKeywords;
23410
 
class PragmaOnceUnitState;
23411
 
class PragmaOnce;
23412
 
class CCExprResolve;
23413
 
class CExprResolve;
23414
 
namespace Puma {
23415
 
 
23416
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23417
 
class CT_Statement : public CTree {
23418
 
#line 23419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23419
 
  friend class ::WinIfExists;
23420
 
  friend class ::WinImportHandler;
23421
 
  friend class ::WinMacros;
23422
 
  friend class ::CMatchSyntax;
23423
 
  friend class ::ExtGnu;
23424
 
  friend class ::ExtAC;
23425
 
  friend class ::ExtACBuilderCoupling;
23426
 
  friend class ::ExtACSyntaxCoupling;
23427
 
  friend class ::ExtACTree;
23428
 
  friend class ::ExtACKeywords;
23429
 
  friend class ::WinAsm;
23430
 
  friend class ::WinDeclSpecs;
23431
 
  friend class ::WinMemberExplSpec;
23432
 
  friend class ::WinTypeKeywords;
23433
 
  friend class ::PragmaOnceUnitState;
23434
 
  friend class ::PragmaOnce;
23435
 
  friend class ::CCExprResolve;
23436
 
  friend class ::CExprResolve;
23437
 
 
23438
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23439
 
 
23440
 
protected:
23441
 
  CT_Statement () {}
23442
 
};
23443
 
 
23444
 
 
23445
 
#line 23446 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.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 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23468
 
class CT_LabelStmt : public CT_Statement {
23469
 
#line 23470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.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 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23490
 
 
23491
 
  CTree *sons[3]; // id, colon, stmt
23492
 
 
23493
 
public:
23494
 
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
23495
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
23496
 
  }
23497
 
  static const char *NodeId ();
23498
 
  const char *NodeName () const { return NodeId (); }
23499
 
  int Sons () const { return 3; }
23500
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23501
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
23502
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
23503
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23504
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23505
 
  }
23506
 
};
23507
 
 
23508
 
 
23509
 
#line 23510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23510
 
} // closed Puma
23511
 
class WinIfExists;
23512
 
class WinImportHandler;
23513
 
class WinMacros;
23514
 
class CMatchSyntax;
23515
 
class ExtGnu;
23516
 
class ExtAC;
23517
 
class ExtACBuilderCoupling;
23518
 
class ExtACSyntaxCoupling;
23519
 
class ExtACTree;
23520
 
class ExtACKeywords;
23521
 
class WinAsm;
23522
 
class WinDeclSpecs;
23523
 
class WinMemberExplSpec;
23524
 
class WinTypeKeywords;
23525
 
class PragmaOnceUnitState;
23526
 
class PragmaOnce;
23527
 
class CCExprResolve;
23528
 
class CExprResolve;
23529
 
namespace Puma {
23530
 
 
23531
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23532
 
class CT_DefaultStmt : public CT_Statement {
23533
 
#line 23534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23534
 
  friend class ::WinIfExists;
23535
 
  friend class ::WinImportHandler;
23536
 
  friend class ::WinMacros;
23537
 
  friend class ::CMatchSyntax;
23538
 
  friend class ::ExtGnu;
23539
 
  friend class ::ExtAC;
23540
 
  friend class ::ExtACBuilderCoupling;
23541
 
  friend class ::ExtACSyntaxCoupling;
23542
 
  friend class ::ExtACTree;
23543
 
  friend class ::ExtACKeywords;
23544
 
  friend class ::WinAsm;
23545
 
  friend class ::WinDeclSpecs;
23546
 
  friend class ::WinMemberExplSpec;
23547
 
  friend class ::WinTypeKeywords;
23548
 
  friend class ::PragmaOnceUnitState;
23549
 
  friend class ::PragmaOnce;
23550
 
  friend class ::CCExprResolve;
23551
 
  friend class ::CExprResolve;
23552
 
 
23553
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23554
 
 
23555
 
  CTree *sons[3]; // keyword, colon, stmt
23556
 
 
23557
 
public:
23558
 
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
23559
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
23560
 
  }
23561
 
  static const char *NodeId ();
23562
 
  const char *NodeName () const { return NodeId (); }
23563
 
  int Sons () const { return 3; }
23564
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23565
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
23566
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23567
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23568
 
  }
23569
 
};
23570
 
 
23571
 
 
23572
 
#line 23573 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23573
 
} // closed Puma
23574
 
class WinIfExists;
23575
 
class WinImportHandler;
23576
 
class WinMacros;
23577
 
class CMatchSyntax;
23578
 
class ExtGnu;
23579
 
class ExtAC;
23580
 
class ExtACBuilderCoupling;
23581
 
class ExtACSyntaxCoupling;
23582
 
class ExtACTree;
23583
 
class ExtACKeywords;
23584
 
class WinAsm;
23585
 
class WinDeclSpecs;
23586
 
class WinMemberExplSpec;
23587
 
class WinTypeKeywords;
23588
 
class PragmaOnceUnitState;
23589
 
class PragmaOnce;
23590
 
class CCExprResolve;
23591
 
class CExprResolve;
23592
 
namespace Puma {
23593
 
 
23594
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23595
 
class CT_TryStmt : public CT_Statement {
23596
 
#line 23597 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23597
 
  friend class ::WinIfExists;
23598
 
  friend class ::WinImportHandler;
23599
 
  friend class ::WinMacros;
23600
 
  friend class ::CMatchSyntax;
23601
 
  friend class ::ExtGnu;
23602
 
  friend class ::ExtAC;
23603
 
  friend class ::ExtACBuilderCoupling;
23604
 
  friend class ::ExtACSyntaxCoupling;
23605
 
  friend class ::ExtACTree;
23606
 
  friend class ::ExtACKeywords;
23607
 
  friend class ::WinAsm;
23608
 
  friend class ::WinDeclSpecs;
23609
 
  friend class ::WinMemberExplSpec;
23610
 
  friend class ::WinTypeKeywords;
23611
 
  friend class ::PragmaOnceUnitState;
23612
 
  friend class ::PragmaOnce;
23613
 
  friend class ::CCExprResolve;
23614
 
  friend class ::CExprResolve;
23615
 
 
23616
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23617
 
 
23618
 
  CTree *sons[3]; // try, stmt, handlers
23619
 
 
23620
 
public:
23621
 
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
23622
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
23623
 
  }
23624
 
  static const char *NodeId ();
23625
 
  const char *NodeName () const { return NodeId (); }
23626
 
  int Sons () const { return 3; }
23627
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
23628
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
23629
 
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
23630
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23631
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
23632
 
  }
23633
 
};
23634
 
 
23635
 
 
23636
 
#line 23637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23637
 
} // closed Puma
23638
 
class WinIfExists;
23639
 
class WinImportHandler;
23640
 
class WinMacros;
23641
 
class CMatchSyntax;
23642
 
class ExtGnu;
23643
 
class ExtAC;
23644
 
class ExtACBuilderCoupling;
23645
 
class ExtACSyntaxCoupling;
23646
 
class ExtACTree;
23647
 
class ExtACKeywords;
23648
 
class WinAsm;
23649
 
class WinDeclSpecs;
23650
 
class WinMemberExplSpec;
23651
 
class WinTypeKeywords;
23652
 
class PragmaOnceUnitState;
23653
 
class PragmaOnce;
23654
 
class CCExprResolve;
23655
 
class CExprResolve;
23656
 
namespace Puma {
23657
 
 
23658
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23659
 
class CT_CaseStmt : public CT_Statement {
23660
 
#line 23661 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23661
 
  friend class ::WinIfExists;
23662
 
  friend class ::WinImportHandler;
23663
 
  friend class ::WinMacros;
23664
 
  friend class ::CMatchSyntax;
23665
 
  friend class ::ExtGnu;
23666
 
  friend class ::ExtAC;
23667
 
  friend class ::ExtACBuilderCoupling;
23668
 
  friend class ::ExtACSyntaxCoupling;
23669
 
  friend class ::ExtACTree;
23670
 
  friend class ::ExtACKeywords;
23671
 
  friend class ::WinAsm;
23672
 
  friend class ::WinDeclSpecs;
23673
 
  friend class ::WinMemberExplSpec;
23674
 
  friend class ::WinTypeKeywords;
23675
 
  friend class ::PragmaOnceUnitState;
23676
 
  friend class ::PragmaOnce;
23677
 
  friend class ::CCExprResolve;
23678
 
  friend class ::CExprResolve;
23679
 
 
23680
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23681
 
 
23682
 
  CTree *sons[4]; // keyword, expr, colon, stmt
23683
 
 
23684
 
public:
23685
 
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
23686
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
23687
 
  }
23688
 
  static const char *NodeId ();
23689
 
  const char *NodeName () const { return NodeId (); }
23690
 
  int Sons () const { return 4; }
23691
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
23692
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
23693
 
  CTree *Expr () const { return sons[1]; }
23694
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23695
 
    CTree::ReplaceSon (sons, 4, old_son, new_son);
23696
 
  }
23697
 
};
23698
 
 
23699
 
 
23700
 
#line 23701 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23701
 
} // closed Puma
23702
 
class WinIfExists;
23703
 
class WinImportHandler;
23704
 
class WinMacros;
23705
 
class CMatchSyntax;
23706
 
class ExtGnu;
23707
 
class ExtAC;
23708
 
class ExtACBuilderCoupling;
23709
 
class ExtACSyntaxCoupling;
23710
 
class ExtACTree;
23711
 
class ExtACKeywords;
23712
 
class WinAsm;
23713
 
class WinDeclSpecs;
23714
 
class WinMemberExplSpec;
23715
 
class WinTypeKeywords;
23716
 
class PragmaOnceUnitState;
23717
 
class PragmaOnce;
23718
 
class CCExprResolve;
23719
 
class CExprResolve;
23720
 
namespace Puma {
23721
 
 
23722
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23723
 
class CT_ExprStmt : public CT_Statement {
23724
 
#line 23725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23725
 
  friend class ::WinIfExists;
23726
 
  friend class ::WinImportHandler;
23727
 
  friend class ::WinMacros;
23728
 
  friend class ::CMatchSyntax;
23729
 
  friend class ::ExtGnu;
23730
 
  friend class ::ExtAC;
23731
 
  friend class ::ExtACBuilderCoupling;
23732
 
  friend class ::ExtACSyntaxCoupling;
23733
 
  friend class ::ExtACTree;
23734
 
  friend class ::ExtACKeywords;
23735
 
  friend class ::WinAsm;
23736
 
  friend class ::WinDeclSpecs;
23737
 
  friend class ::WinMemberExplSpec;
23738
 
  friend class ::WinTypeKeywords;
23739
 
  friend class ::PragmaOnceUnitState;
23740
 
  friend class ::PragmaOnce;
23741
 
  friend class ::CCExprResolve;
23742
 
  friend class ::CExprResolve;
23743
 
 
23744
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23745
 
 
23746
 
  CTree *sons[2]; // expr, semi_colon
23747
 
 
23748
 
public:
23749
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
23750
 
  static const char *NodeId ();
23751
 
  const char *NodeName () const { return NodeId (); }
23752
 
  int Sons () const { return CTree::Sons (sons, 2); }
23753
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
23754
 
  CTree *Expr () const { return sons[0]; }
23755
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23756
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
23757
 
  }
23758
 
};
23759
 
 
23760
 
 
23761
 
#line 23762 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23762
 
} // closed Puma
23763
 
class WinIfExists;
23764
 
class WinImportHandler;
23765
 
class WinMacros;
23766
 
class CMatchSyntax;
23767
 
class ExtGnu;
23768
 
class ExtAC;
23769
 
class ExtACBuilderCoupling;
23770
 
class ExtACSyntaxCoupling;
23771
 
class ExtACTree;
23772
 
class ExtACKeywords;
23773
 
class WinAsm;
23774
 
class WinDeclSpecs;
23775
 
class WinMemberExplSpec;
23776
 
class WinTypeKeywords;
23777
 
class PragmaOnceUnitState;
23778
 
class PragmaOnce;
23779
 
class CCExprResolve;
23780
 
class CExprResolve;
23781
 
namespace Puma {
23782
 
 
23783
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23784
 
class CT_DeclStmt : public CT_Statement {
23785
 
#line 23786 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23786
 
  friend class ::WinIfExists;
23787
 
  friend class ::WinImportHandler;
23788
 
  friend class ::WinMacros;
23789
 
  friend class ::CMatchSyntax;
23790
 
  friend class ::ExtGnu;
23791
 
  friend class ::ExtAC;
23792
 
  friend class ::ExtACBuilderCoupling;
23793
 
  friend class ::ExtACSyntaxCoupling;
23794
 
  friend class ::ExtACTree;
23795
 
  friend class ::ExtACKeywords;
23796
 
  friend class ::WinAsm;
23797
 
  friend class ::WinDeclSpecs;
23798
 
  friend class ::WinMemberExplSpec;
23799
 
  friend class ::WinTypeKeywords;
23800
 
  friend class ::PragmaOnceUnitState;
23801
 
  friend class ::PragmaOnce;
23802
 
  friend class ::CCExprResolve;
23803
 
  friend class ::CExprResolve;
23804
 
 
23805
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23806
 
 
23807
 
  CTree *_decl;
23808
 
 
23809
 
public:
23810
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
23811
 
  static const char *NodeId ();
23812
 
  const char *NodeName () const { return NodeId (); }
23813
 
  int Sons () const { return 1; }
23814
 
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
23815
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
23816
 
   { if (old_son == _decl) _decl = new_son; }
23817
 
};
23818
 
 
23819
 
 
23820
 
#line 23821 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23821
 
} // closed Puma
23822
 
class WinIfExists;
23823
 
class WinImportHandler;
23824
 
class WinMacros;
23825
 
class CMatchSyntax;
23826
 
class ExtGnu;
23827
 
class ExtAC;
23828
 
class ExtACBuilderCoupling;
23829
 
class ExtACSyntaxCoupling;
23830
 
class ExtACTree;
23831
 
class ExtACKeywords;
23832
 
class WinAsm;
23833
 
class WinDeclSpecs;
23834
 
class WinMemberExplSpec;
23835
 
class WinTypeKeywords;
23836
 
class PragmaOnceUnitState;
23837
 
class PragmaOnce;
23838
 
class CCExprResolve;
23839
 
class CExprResolve;
23840
 
namespace Puma {
23841
 
 
23842
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23843
 
class CT_SwitchStmt : public CT_Statement, public CSemScope {
23844
 
#line 23845 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23845
 
  friend class ::WinIfExists;
23846
 
  friend class ::WinImportHandler;
23847
 
  friend class ::WinMacros;
23848
 
  friend class ::CMatchSyntax;
23849
 
  friend class ::ExtGnu;
23850
 
  friend class ::ExtAC;
23851
 
  friend class ::ExtACBuilderCoupling;
23852
 
  friend class ::ExtACSyntaxCoupling;
23853
 
  friend class ::ExtACTree;
23854
 
  friend class ::ExtACKeywords;
23855
 
  friend class ::WinAsm;
23856
 
  friend class ::WinDeclSpecs;
23857
 
  friend class ::WinMemberExplSpec;
23858
 
  friend class ::WinTypeKeywords;
23859
 
  friend class ::PragmaOnceUnitState;
23860
 
  friend class ::PragmaOnce;
23861
 
  friend class ::CCExprResolve;
23862
 
  friend class ::CExprResolve;
23863
 
 
23864
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23865
 
 
23866
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
23867
 
 
23868
 
public:
23869
 
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
23870
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
23871
 
  }
23872
 
  static const char *NodeId ();
23873
 
  const char *NodeName () const { return NodeId (); }
23874
 
  int Sons () const { return 5; }
23875
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
23876
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
23877
 
  CTree *Condition () const { return sons[2]; }
23878
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23879
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
23880
 
  }
23881
 
};
23882
 
 
23883
 
 
23884
 
#line 23885 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23885
 
} // closed Puma
23886
 
class WinIfExists;
23887
 
class WinImportHandler;
23888
 
class WinMacros;
23889
 
class CMatchSyntax;
23890
 
class ExtGnu;
23891
 
class ExtAC;
23892
 
class ExtACBuilderCoupling;
23893
 
class ExtACSyntaxCoupling;
23894
 
class ExtACTree;
23895
 
class ExtACKeywords;
23896
 
class WinAsm;
23897
 
class WinDeclSpecs;
23898
 
class WinMemberExplSpec;
23899
 
class WinTypeKeywords;
23900
 
class PragmaOnceUnitState;
23901
 
class PragmaOnce;
23902
 
class CCExprResolve;
23903
 
class CExprResolve;
23904
 
namespace Puma {
23905
 
 
23906
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23907
 
class CT_IfStmt : public CT_Statement, public CSemScope {
23908
 
#line 23909 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23909
 
  friend class ::WinIfExists;
23910
 
  friend class ::WinImportHandler;
23911
 
  friend class ::WinMacros;
23912
 
  friend class ::CMatchSyntax;
23913
 
  friend class ::ExtGnu;
23914
 
  friend class ::ExtAC;
23915
 
  friend class ::ExtACBuilderCoupling;
23916
 
  friend class ::ExtACSyntaxCoupling;
23917
 
  friend class ::ExtACTree;
23918
 
  friend class ::ExtACKeywords;
23919
 
  friend class ::WinAsm;
23920
 
  friend class ::WinDeclSpecs;
23921
 
  friend class ::WinMemberExplSpec;
23922
 
  friend class ::WinTypeKeywords;
23923
 
  friend class ::PragmaOnceUnitState;
23924
 
  friend class ::PragmaOnce;
23925
 
  friend class ::CCExprResolve;
23926
 
  friend class ::CExprResolve;
23927
 
 
23928
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23929
 
 
23930
 
  CTree *sons[5]; // keyword, open, cond, close, stmt
23931
 
 
23932
 
public:
23933
 
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
23934
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
23935
 
  }
23936
 
  static const char *NodeId ();
23937
 
  const char *NodeName () const { return NodeId (); }
23938
 
  int Sons () const { return 5; }
23939
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
23940
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
23941
 
  CTree *Condition () const { return sons[2]; }
23942
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
23943
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
23944
 
  }
23945
 
};
23946
 
 
23947
 
 
23948
 
#line 23949 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23949
 
} // closed Puma
23950
 
class WinIfExists;
23951
 
class WinImportHandler;
23952
 
class WinMacros;
23953
 
class CMatchSyntax;
23954
 
class ExtGnu;
23955
 
class ExtAC;
23956
 
class ExtACBuilderCoupling;
23957
 
class ExtACSyntaxCoupling;
23958
 
class ExtACTree;
23959
 
class ExtACKeywords;
23960
 
class WinAsm;
23961
 
class WinDeclSpecs;
23962
 
class WinMemberExplSpec;
23963
 
class WinTypeKeywords;
23964
 
class PragmaOnceUnitState;
23965
 
class PragmaOnce;
23966
 
class CCExprResolve;
23967
 
class CExprResolve;
23968
 
namespace Puma {
23969
 
 
23970
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23971
 
class CT_IfElseStmt : public CT_Statement, public CSemScope {
23972
 
#line 23973 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
23973
 
  friend class ::WinIfExists;
23974
 
  friend class ::WinImportHandler;
23975
 
  friend class ::WinMacros;
23976
 
  friend class ::CMatchSyntax;
23977
 
  friend class ::ExtGnu;
23978
 
  friend class ::ExtAC;
23979
 
  friend class ::ExtACBuilderCoupling;
23980
 
  friend class ::ExtACSyntaxCoupling;
23981
 
  friend class ::ExtACTree;
23982
 
  friend class ::ExtACKeywords;
23983
 
  friend class ::WinAsm;
23984
 
  friend class ::WinDeclSpecs;
23985
 
  friend class ::WinMemberExplSpec;
23986
 
  friend class ::WinTypeKeywords;
23987
 
  friend class ::PragmaOnceUnitState;
23988
 
  friend class ::PragmaOnce;
23989
 
  friend class ::CCExprResolve;
23990
 
  friend class ::CExprResolve;
23991
 
 
23992
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
23993
 
 
23994
 
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
23995
 
 
23996
 
public:
23997
 
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
23998
 
                 CTree *is, CTree *e, CTree *es) {
23999
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
24000
 
    sons[5] = e; sons[6] = es; 
24001
 
  }
24002
 
  static const char *NodeId ();
24003
 
  const char *NodeName () const { return NodeId (); }
24004
 
  int Sons () const { return 7; }
24005
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
24006
 
  CTree *Condition () const { return sons[2]; }
24007
 
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
24008
 
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
24009
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24010
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
24011
 
  }
24012
 
};
24013
 
 
24014
 
 
24015
 
#line 24016 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24016
 
} // closed Puma
24017
 
class WinIfExists;
24018
 
class WinImportHandler;
24019
 
class WinMacros;
24020
 
class CMatchSyntax;
24021
 
class ExtGnu;
24022
 
class ExtAC;
24023
 
class ExtACBuilderCoupling;
24024
 
class ExtACSyntaxCoupling;
24025
 
class ExtACTree;
24026
 
class ExtACKeywords;
24027
 
class WinAsm;
24028
 
class WinDeclSpecs;
24029
 
class WinMemberExplSpec;
24030
 
class WinTypeKeywords;
24031
 
class PragmaOnceUnitState;
24032
 
class PragmaOnce;
24033
 
class CCExprResolve;
24034
 
class CExprResolve;
24035
 
namespace Puma {
24036
 
 
24037
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24038
 
class CT_BreakStmt : public CT_Statement {
24039
 
#line 24040 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24040
 
  friend class ::WinIfExists;
24041
 
  friend class ::WinImportHandler;
24042
 
  friend class ::WinMacros;
24043
 
  friend class ::CMatchSyntax;
24044
 
  friend class ::ExtGnu;
24045
 
  friend class ::ExtAC;
24046
 
  friend class ::ExtACBuilderCoupling;
24047
 
  friend class ::ExtACSyntaxCoupling;
24048
 
  friend class ::ExtACTree;
24049
 
  friend class ::ExtACKeywords;
24050
 
  friend class ::WinAsm;
24051
 
  friend class ::WinDeclSpecs;
24052
 
  friend class ::WinMemberExplSpec;
24053
 
  friend class ::WinTypeKeywords;
24054
 
  friend class ::PragmaOnceUnitState;
24055
 
  friend class ::PragmaOnce;
24056
 
  friend class ::CCExprResolve;
24057
 
  friend class ::CExprResolve;
24058
 
 
24059
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24060
 
 
24061
 
  CTree *sons[2]; // key, semi_colon
24062
 
 
24063
 
public:
24064
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
24065
 
  static const char *NodeId ();
24066
 
  const char *NodeName () const { return NodeId (); }
24067
 
  int Sons () const { return 2; }
24068
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
24069
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24070
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
24071
 
  }
24072
 
};
24073
 
 
24074
 
 
24075
 
#line 24076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24076
 
} // closed Puma
24077
 
class WinIfExists;
24078
 
class WinImportHandler;
24079
 
class WinMacros;
24080
 
class CMatchSyntax;
24081
 
class ExtGnu;
24082
 
class ExtAC;
24083
 
class ExtACBuilderCoupling;
24084
 
class ExtACSyntaxCoupling;
24085
 
class ExtACTree;
24086
 
class ExtACKeywords;
24087
 
class WinAsm;
24088
 
class WinDeclSpecs;
24089
 
class WinMemberExplSpec;
24090
 
class WinTypeKeywords;
24091
 
class PragmaOnceUnitState;
24092
 
class PragmaOnce;
24093
 
class CCExprResolve;
24094
 
class CExprResolve;
24095
 
namespace Puma {
24096
 
 
24097
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24098
 
class CT_ContinueStmt : public CT_Statement {
24099
 
#line 24100 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24100
 
  friend class ::WinIfExists;
24101
 
  friend class ::WinImportHandler;
24102
 
  friend class ::WinMacros;
24103
 
  friend class ::CMatchSyntax;
24104
 
  friend class ::ExtGnu;
24105
 
  friend class ::ExtAC;
24106
 
  friend class ::ExtACBuilderCoupling;
24107
 
  friend class ::ExtACSyntaxCoupling;
24108
 
  friend class ::ExtACTree;
24109
 
  friend class ::ExtACKeywords;
24110
 
  friend class ::WinAsm;
24111
 
  friend class ::WinDeclSpecs;
24112
 
  friend class ::WinMemberExplSpec;
24113
 
  friend class ::WinTypeKeywords;
24114
 
  friend class ::PragmaOnceUnitState;
24115
 
  friend class ::PragmaOnce;
24116
 
  friend class ::CCExprResolve;
24117
 
  friend class ::CExprResolve;
24118
 
 
24119
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24120
 
 
24121
 
  CTree *sons[2]; // key, semi_colon
24122
 
 
24123
 
public:
24124
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
24125
 
  static const char *NodeId ();
24126
 
  const char *NodeName () const { return NodeId (); }
24127
 
  int Sons () const { return 2; }
24128
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
24129
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24130
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
24131
 
  }
24132
 
};
24133
 
 
24134
 
 
24135
 
#line 24136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24136
 
} // closed Puma
24137
 
class WinIfExists;
24138
 
class WinImportHandler;
24139
 
class WinMacros;
24140
 
class CMatchSyntax;
24141
 
class ExtGnu;
24142
 
class ExtAC;
24143
 
class ExtACBuilderCoupling;
24144
 
class ExtACSyntaxCoupling;
24145
 
class ExtACTree;
24146
 
class ExtACKeywords;
24147
 
class WinAsm;
24148
 
class WinDeclSpecs;
24149
 
class WinMemberExplSpec;
24150
 
class WinTypeKeywords;
24151
 
class PragmaOnceUnitState;
24152
 
class PragmaOnce;
24153
 
class CCExprResolve;
24154
 
class CExprResolve;
24155
 
namespace Puma {
24156
 
 
24157
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24158
 
class CT_GotoStmt : public CT_Statement {
24159
 
#line 24160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24160
 
  friend class ::WinIfExists;
24161
 
  friend class ::WinImportHandler;
24162
 
  friend class ::WinMacros;
24163
 
  friend class ::CMatchSyntax;
24164
 
  friend class ::ExtGnu;
24165
 
  friend class ::ExtAC;
24166
 
  friend class ::ExtACBuilderCoupling;
24167
 
  friend class ::ExtACSyntaxCoupling;
24168
 
  friend class ::ExtACTree;
24169
 
  friend class ::ExtACKeywords;
24170
 
  friend class ::WinAsm;
24171
 
  friend class ::WinDeclSpecs;
24172
 
  friend class ::WinMemberExplSpec;
24173
 
  friend class ::WinTypeKeywords;
24174
 
  friend class ::PragmaOnceUnitState;
24175
 
  friend class ::PragmaOnce;
24176
 
  friend class ::CCExprResolve;
24177
 
  friend class ::CExprResolve;
24178
 
 
24179
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24180
 
 
24181
 
  CTree *sons[3]; // key, label, semi_colon
24182
 
 
24183
 
public:
24184
 
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
24185
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
24186
 
  }
24187
 
  static const char *NodeId ();
24188
 
  const char *NodeName () const { return NodeId (); }
24189
 
  int Sons () const { return 3; }
24190
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24191
 
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
24192
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24193
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24194
 
  }
24195
 
};
24196
 
 
24197
 
 
24198
 
#line 24199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24199
 
} // closed Puma
24200
 
class WinIfExists;
24201
 
class WinImportHandler;
24202
 
class WinMacros;
24203
 
class CMatchSyntax;
24204
 
class ExtGnu;
24205
 
class ExtAC;
24206
 
class ExtACBuilderCoupling;
24207
 
class ExtACSyntaxCoupling;
24208
 
class ExtACTree;
24209
 
class ExtACKeywords;
24210
 
class WinAsm;
24211
 
class WinDeclSpecs;
24212
 
class WinMemberExplSpec;
24213
 
class WinTypeKeywords;
24214
 
class PragmaOnceUnitState;
24215
 
class PragmaOnce;
24216
 
class CCExprResolve;
24217
 
class CExprResolve;
24218
 
namespace Puma {
24219
 
 
24220
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24221
 
class CT_ReturnStmt : public CT_Statement {
24222
 
#line 24223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24223
 
  friend class ::WinIfExists;
24224
 
  friend class ::WinImportHandler;
24225
 
  friend class ::WinMacros;
24226
 
  friend class ::CMatchSyntax;
24227
 
  friend class ::ExtGnu;
24228
 
  friend class ::ExtAC;
24229
 
  friend class ::ExtACBuilderCoupling;
24230
 
  friend class ::ExtACSyntaxCoupling;
24231
 
  friend class ::ExtACTree;
24232
 
  friend class ::ExtACKeywords;
24233
 
  friend class ::WinAsm;
24234
 
  friend class ::WinDeclSpecs;
24235
 
  friend class ::WinMemberExplSpec;
24236
 
  friend class ::WinTypeKeywords;
24237
 
  friend class ::PragmaOnceUnitState;
24238
 
  friend class ::PragmaOnce;
24239
 
  friend class ::CCExprResolve;
24240
 
  friend class ::CExprResolve;
24241
 
 
24242
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24243
 
 
24244
 
  CTree *sons[3]; // key, expr, semi_colon
24245
 
 
24246
 
public:
24247
 
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
24248
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
24249
 
  }
24250
 
  static const char *NodeId ();
24251
 
  const char *NodeName () const { return NodeId (); }
24252
 
  int Sons () const { return CTree::Sons (sons, 3); }
24253
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24254
 
  CTree *Expr () const { return sons[1]; }
24255
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24256
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24257
 
  }
24258
 
};
24259
 
 
24260
 
 
24261
 
#line 24262 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24262
 
} // closed Puma
24263
 
class WinIfExists;
24264
 
class WinImportHandler;
24265
 
class WinMacros;
24266
 
class CMatchSyntax;
24267
 
class ExtGnu;
24268
 
class ExtAC;
24269
 
class ExtACBuilderCoupling;
24270
 
class ExtACSyntaxCoupling;
24271
 
class ExtACTree;
24272
 
class ExtACKeywords;
24273
 
class WinAsm;
24274
 
class WinDeclSpecs;
24275
 
class WinMemberExplSpec;
24276
 
class WinTypeKeywords;
24277
 
class PragmaOnceUnitState;
24278
 
class PragmaOnce;
24279
 
class CCExprResolve;
24280
 
class CExprResolve;
24281
 
namespace Puma {
24282
 
 
24283
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24284
 
class CT_WhileStmt : public CT_Statement, public CSemScope {
24285
 
#line 24286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24286
 
  friend class ::WinIfExists;
24287
 
  friend class ::WinImportHandler;
24288
 
  friend class ::WinMacros;
24289
 
  friend class ::CMatchSyntax;
24290
 
  friend class ::ExtGnu;
24291
 
  friend class ::ExtAC;
24292
 
  friend class ::ExtACBuilderCoupling;
24293
 
  friend class ::ExtACSyntaxCoupling;
24294
 
  friend class ::ExtACTree;
24295
 
  friend class ::ExtACKeywords;
24296
 
  friend class ::WinAsm;
24297
 
  friend class ::WinDeclSpecs;
24298
 
  friend class ::WinMemberExplSpec;
24299
 
  friend class ::WinTypeKeywords;
24300
 
  friend class ::PragmaOnceUnitState;
24301
 
  friend class ::PragmaOnce;
24302
 
  friend class ::CCExprResolve;
24303
 
  friend class ::CExprResolve;
24304
 
 
24305
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24306
 
 
24307
 
  CTree *sons[5]; // key, open, cond, close, stmt
24308
 
 
24309
 
public:
24310
 
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
24311
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
24312
 
  }
24313
 
  static const char *NodeId ();
24314
 
  const char *NodeName () const { return NodeId (); }
24315
 
  int Sons () const { return 5; }
24316
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
24317
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
24318
 
  CTree *Condition () const { return sons[2]; }
24319
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24320
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
24321
 
  }
24322
 
};
24323
 
 
24324
 
 
24325
 
#line 24326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24326
 
} // closed Puma
24327
 
class WinIfExists;
24328
 
class WinImportHandler;
24329
 
class WinMacros;
24330
 
class CMatchSyntax;
24331
 
class ExtGnu;
24332
 
class ExtAC;
24333
 
class ExtACBuilderCoupling;
24334
 
class ExtACSyntaxCoupling;
24335
 
class ExtACTree;
24336
 
class ExtACKeywords;
24337
 
class WinAsm;
24338
 
class WinDeclSpecs;
24339
 
class WinMemberExplSpec;
24340
 
class WinTypeKeywords;
24341
 
class PragmaOnceUnitState;
24342
 
class PragmaOnce;
24343
 
class CCExprResolve;
24344
 
class CExprResolve;
24345
 
namespace Puma {
24346
 
 
24347
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24348
 
class CT_DoStmt : public CT_Statement {
24349
 
#line 24350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24350
 
  friend class ::WinIfExists;
24351
 
  friend class ::WinImportHandler;
24352
 
  friend class ::WinMacros;
24353
 
  friend class ::CMatchSyntax;
24354
 
  friend class ::ExtGnu;
24355
 
  friend class ::ExtAC;
24356
 
  friend class ::ExtACBuilderCoupling;
24357
 
  friend class ::ExtACSyntaxCoupling;
24358
 
  friend class ::ExtACTree;
24359
 
  friend class ::ExtACKeywords;
24360
 
  friend class ::WinAsm;
24361
 
  friend class ::WinDeclSpecs;
24362
 
  friend class ::WinMemberExplSpec;
24363
 
  friend class ::WinTypeKeywords;
24364
 
  friend class ::PragmaOnceUnitState;
24365
 
  friend class ::PragmaOnce;
24366
 
  friend class ::CCExprResolve;
24367
 
  friend class ::CExprResolve;
24368
 
 
24369
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24370
 
 
24371
 
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
24372
 
 
24373
 
public:
24374
 
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
24375
 
             CTree *c, CTree *sc) {
24376
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
24377
 
    sons[5] = c; sons[6] = sc; 
24378
 
  }
24379
 
  static const char *NodeId ();
24380
 
  const char *NodeName () const { return NodeId (); }
24381
 
  int Sons () const { return 7; }
24382
 
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
24383
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
24384
 
  CTree *Expr () const { return sons[4]; }
24385
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24386
 
    CTree::ReplaceSon (sons, 7, old_son, new_son);
24387
 
  }
24388
 
};
24389
 
 
24390
 
 
24391
 
#line 24392 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24392
 
} // closed Puma
24393
 
class WinIfExists;
24394
 
class WinImportHandler;
24395
 
class WinMacros;
24396
 
class CMatchSyntax;
24397
 
class ExtGnu;
24398
 
class ExtAC;
24399
 
class ExtACBuilderCoupling;
24400
 
class ExtACSyntaxCoupling;
24401
 
class ExtACTree;
24402
 
class ExtACKeywords;
24403
 
class WinAsm;
24404
 
class WinDeclSpecs;
24405
 
class WinMemberExplSpec;
24406
 
class WinTypeKeywords;
24407
 
class PragmaOnceUnitState;
24408
 
class PragmaOnce;
24409
 
class CCExprResolve;
24410
 
class CExprResolve;
24411
 
namespace Puma {
24412
 
 
24413
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24414
 
class CT_ForStmt : public CT_Statement, public CSemScope {
24415
 
#line 24416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24416
 
  friend class ::WinIfExists;
24417
 
  friend class ::WinImportHandler;
24418
 
  friend class ::WinMacros;
24419
 
  friend class ::CMatchSyntax;
24420
 
  friend class ::ExtGnu;
24421
 
  friend class ::ExtAC;
24422
 
  friend class ::ExtACBuilderCoupling;
24423
 
  friend class ::ExtACSyntaxCoupling;
24424
 
  friend class ::ExtACTree;
24425
 
  friend class ::ExtACKeywords;
24426
 
  friend class ::WinAsm;
24427
 
  friend class ::WinDeclSpecs;
24428
 
  friend class ::WinMemberExplSpec;
24429
 
  friend class ::WinTypeKeywords;
24430
 
  friend class ::PragmaOnceUnitState;
24431
 
  friend class ::PragmaOnce;
24432
 
  friend class ::CCExprResolve;
24433
 
  friend class ::CExprResolve;
24434
 
 
24435
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24436
 
 
24437
 
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
24438
 
 
24439
 
public:
24440
 
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
24441
 
              CTree *e, CTree *c, CTree *stmt) {
24442
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
24443
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
24444
 
  }
24445
 
  static const char *NodeId ();
24446
 
  const char *NodeName () const { return NodeId (); }
24447
 
  int Sons () const { return CTree::Sons (sons, 8); }
24448
 
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
24449
 
  CTree *InitStmt () const { return sons[2]; }
24450
 
  CTree *Condition () const { return sons[3]; }
24451
 
  CTree *Expr () const { return sons[5]; }
24452
 
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
24453
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24454
 
    CTree::ReplaceSon (sons, 8, old_son, new_son);
24455
 
  }
24456
 
};
24457
 
 
24458
 
 
24459
 
#line 24460 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24460
 
} // closed Puma
24461
 
class WinIfExists;
24462
 
class WinImportHandler;
24463
 
class WinMacros;
24464
 
class CMatchSyntax;
24465
 
class ExtGnu;
24466
 
class ExtAC;
24467
 
class ExtACBuilderCoupling;
24468
 
class ExtACSyntaxCoupling;
24469
 
class ExtACTree;
24470
 
class ExtACKeywords;
24471
 
class WinAsm;
24472
 
class WinDeclSpecs;
24473
 
class WinMemberExplSpec;
24474
 
class WinTypeKeywords;
24475
 
class PragmaOnceUnitState;
24476
 
class PragmaOnce;
24477
 
class CCExprResolve;
24478
 
class CExprResolve;
24479
 
namespace Puma {
24480
 
 
24481
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24482
 
class CT_Condition : public CT_Decl, public CSemObject {
24483
 
#line 24484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24484
 
  friend class ::WinIfExists;
24485
 
  friend class ::WinImportHandler;
24486
 
  friend class ::WinMacros;
24487
 
  friend class ::CMatchSyntax;
24488
 
  friend class ::ExtGnu;
24489
 
  friend class ::ExtAC;
24490
 
  friend class ::ExtACBuilderCoupling;
24491
 
  friend class ::ExtACSyntaxCoupling;
24492
 
  friend class ::ExtACTree;
24493
 
  friend class ::ExtACKeywords;
24494
 
  friend class ::WinAsm;
24495
 
  friend class ::WinDeclSpecs;
24496
 
  friend class ::WinMemberExplSpec;
24497
 
  friend class ::WinTypeKeywords;
24498
 
  friend class ::PragmaOnceUnitState;
24499
 
  friend class ::PragmaOnce;
24500
 
  friend class ::CCExprResolve;
24501
 
  friend class ::CExprResolve;
24502
 
 
24503
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24504
 
 
24505
 
  CTree *sons[3]; // declspecs, declarator, init
24506
 
 
24507
 
public:
24508
 
  CT_Condition (CTree *dsl, CTree *d) {
24509
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
24510
 
  }
24511
 
  static const char *NodeId ();
24512
 
  const char *NodeName () const { return NodeId (); }
24513
 
  int Sons () const { return CTree::Sons (sons, 3); }
24514
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
24515
 
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
24516
 
  CTree *Declarator () const { return sons[1]; }
24517
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
24518
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
24519
 
  void Initializer (CTree *i) { sons[2] = i; }
24520
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24521
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
24522
 
  }
24523
 
};
24524
 
 
24525
 
/*****************************************************************************/
24526
 
/*                                                                           */
24527
 
/*                              Classes                                      */
24528
 
/*                                                                           */
24529
 
/*****************************************************************************/
24530
 
 
24531
 
 
24532
 
#line 24533 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24533
 
} // closed Puma
24534
 
class WinIfExists;
24535
 
class WinImportHandler;
24536
 
class WinMacros;
24537
 
class CMatchSyntax;
24538
 
class ExtGnu;
24539
 
class ExtAC;
24540
 
class ExtACBuilderCoupling;
24541
 
class ExtACSyntaxCoupling;
24542
 
class ExtACTree;
24543
 
class ExtACKeywords;
24544
 
class WinAsm;
24545
 
class WinDeclSpecs;
24546
 
class WinMemberExplSpec;
24547
 
class WinTypeKeywords;
24548
 
class PragmaOnceUnitState;
24549
 
class PragmaOnce;
24550
 
class CCExprResolve;
24551
 
class CExprResolve;
24552
 
namespace Puma {
24553
 
 
24554
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24555
 
class CT_ClassDef : public CT_Decl, public CSemObject {
24556
 
#line 24557 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24557
 
  friend class ::WinIfExists;
24558
 
  friend class ::WinImportHandler;
24559
 
  friend class ::WinMacros;
24560
 
  friend class ::CMatchSyntax;
24561
 
  friend class ::ExtGnu;
24562
 
  friend class ::ExtAC;
24563
 
  friend class ::ExtACBuilderCoupling;
24564
 
  friend class ::ExtACSyntaxCoupling;
24565
 
  friend class ::ExtACTree;
24566
 
  friend class ::ExtACKeywords;
24567
 
  friend class ::WinAsm;
24568
 
  friend class ::WinDeclSpecs;
24569
 
  friend class ::WinMemberExplSpec;
24570
 
  friend class ::WinTypeKeywords;
24571
 
  friend class ::PragmaOnceUnitState;
24572
 
  friend class ::PragmaOnce;
24573
 
  friend class ::CCExprResolve;
24574
 
  friend class ::CExprResolve;
24575
 
 
24576
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24577
 
 
24578
 
   
24579
 
#line 24580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24580
 
 
24581
 
  struct __ac_wrapper_sons {
24582
 
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
24583
 
    operator A& () { return _data; }
24584
 
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
24585
 
    operator const A& () { return _data; }
24586
 
    operator const A& () const { return _data; }
24587
 
    operator void* () { return _data; }
24588
 
    operator void* () const { return (void*)_data; }
24589
 
    operator const void* () { return _data; }
24590
 
    operator const void* () const { return _data; }
24591
 
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
24592
 
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
24593
 
  } sons
24594
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24595
 
 
24596
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24597
 
; // key, name, bases, members
24598
 
  CTree *obj_decl;
24599
 
 
24600
 
public:
24601
 
  
24602
 
#line 24603 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24603
 
 
24604
 
 
24605
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
24606
 
  typedef void Result;
24607
 
  typedef ::Puma::CT_ClassDef That;
24608
 
  typedef ::Puma::CT_ClassDef Target;
24609
 
  static const int JPID = 4;
24610
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
24611
 
  struct Res {
24612
 
    typedef void Type;
24613
 
    typedef void ReferredType;
24614
 
  };
24615
 
  enum { ARGS = 3 };
24616
 
  template <int I, int DUMMY = 0> struct Arg {
24617
 
    typedef void Type;
24618
 
    typedef void ReferredType;
24619
 
  };
24620
 
  template <int DUMMY> struct Arg<0, DUMMY> {
24621
 
    typedef ::Puma::CTree * Type;
24622
 
    typedef ::Puma::CTree * ReferredType;
24623
 
  };
24624
 
  template <int DUMMY> struct Arg<1, DUMMY> {
24625
 
    typedef ::Puma::CTree * Type;
24626
 
    typedef ::Puma::CTree * ReferredType;
24627
 
  };
24628
 
  template <int DUMMY> struct Arg<2, DUMMY> {
24629
 
    typedef ::Puma::CTree * Type;
24630
 
    typedef ::Puma::CTree * ReferredType;
24631
 
  };
24632
 
 
24633
 
  That *_that;
24634
 
 
24635
 
  inline That *that() {return (That*)_that;}
24636
 
 
24637
 
};
24638
 
 
24639
 
 
24640
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24641
 
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
24642
 
#line 24643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24643
 
{
24644
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
24645
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
24646
 
this->__exec_old_C1(arg0, arg1, arg2);
24647
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
24648
 
 
24649
 
}
24650
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
24651
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24652
 
{
24653
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
24654
 
  }
24655
 
  static const char *NodeId ();
24656
 
  const char *NodeName () const { return NodeId (); }
24657
 
  int Sons () const { return CTree::Sons (sons, 4); }
24658
 
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
24659
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
24660
 
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
24661
 
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
24662
 
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
24663
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
24664
 
  void Members (CTree *m) { sons[3] = m; }
24665
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
24666
 
  void ObjDecl (CTree *od) { obj_decl = od; }
24667
 
  void ReplaceSon (CTree *old_son, CTree *new_son) {
24668
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
24669
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
24670
 
  }
24671
 
   private:
24672
 
 
24673
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
24674
 
 CTree * _intro_members ;
24675
 
public :
24676
 
CTree * IntroMembers ( ) const { return _intro_members ; }
24677
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
24678
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24679
 
 
24680
 
#line 24681 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24681
 
 
24682
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
24683
 
  typedef void Result;
24684
 
  typedef ::Puma::CT_ClassDef That;
24685
 
  typedef ::Puma::CT_ClassDef Target;
24686
 
  static const int JPID = 4;
24687
 
  static const AC::JPType JPTYPE = (AC::JPType)16;
24688
 
  struct Res {
24689
 
    typedef void Type;
24690
 
    typedef void ReferredType;
24691
 
  };
24692
 
  enum { ARGS = 1 };
24693
 
  template <int I, int DUMMY = 0> struct Arg {
24694
 
    typedef void Type;
24695
 
    typedef void ReferredType;
24696
 
  };
24697
 
  template <int DUMMY> struct Arg<0, DUMMY> {
24698
 
    typedef const ::Puma::CT_ClassDef & Type;
24699
 
    typedef const ::Puma::CT_ClassDef ReferredType;
24700
 
  };
24701
 
 
24702
 
  That *_that;
24703
 
 
24704
 
  inline That *that() {return (That*)_that;}
24705
 
 
24706
 
};
24707
 
 
24708
 
 
24709
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24710
 
 
24711
 
#line 24712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24712
 
 
24713
 
public:
24714
 
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) {
24715
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
24716
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
24717
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
24718
 
 
24719
 
}
24720
 
 
24721
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24722
 
 
24723
 
#line 24724 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24724
 
 
24725
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
24726
 
  typedef void Result;
24727
 
  typedef ::Puma::CT_ClassDef That;
24728
 
  typedef ::Puma::CT_ClassDef Target;
24729
 
  static const int JPID = 4;
24730
 
  static const AC::JPType JPTYPE = (AC::JPType)32;
24731
 
  struct Res {
24732
 
    typedef void Type;
24733
 
    typedef void ReferredType;
24734
 
  };
24735
 
  enum { ARGS = 0 };
24736
 
  template <int I, int DUMMY = 0> struct Arg {
24737
 
    typedef void Type;
24738
 
    typedef void ReferredType;
24739
 
  };
24740
 
 
24741
 
  That *_that;
24742
 
 
24743
 
  inline That *that() {return (That*)_that;}
24744
 
 
24745
 
};
24746
 
 
24747
 
 
24748
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24749
 
 
24750
 
#line 24751 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24751
 
 
24752
 
public:
24753
 
inline ~CT_ClassDef () {
24754
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
24755
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
24756
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
24757
 
 
24758
 
}
24759
 
 
24760
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24761
 
};
24762
 
      
24763
 
 
24764
 
#line 24765 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24765
 
} // closed Puma
24766
 
class WinIfExists;
24767
 
class WinImportHandler;
24768
 
class WinMacros;
24769
 
class CMatchSyntax;
24770
 
class ExtGnu;
24771
 
class ExtAC;
24772
 
class ExtACBuilderCoupling;
24773
 
class ExtACSyntaxCoupling;
24774
 
class ExtACTree;
24775
 
class ExtACKeywords;
24776
 
class WinAsm;
24777
 
class WinDeclSpecs;
24778
 
class WinMemberExplSpec;
24779
 
class WinTypeKeywords;
24780
 
class PragmaOnceUnitState;
24781
 
class PragmaOnce;
24782
 
class CCExprResolve;
24783
 
class CExprResolve;
24784
 
namespace Puma {
24785
 
 
24786
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24787
 
class CT_UnionDef : public CT_ClassDef {
24788
 
#line 24789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24789
 
  friend class ::WinIfExists;
24790
 
  friend class ::WinImportHandler;
24791
 
  friend class ::WinMacros;
24792
 
  friend class ::CMatchSyntax;
24793
 
  friend class ::ExtGnu;
24794
 
  friend class ::ExtAC;
24795
 
  friend class ::ExtACBuilderCoupling;
24796
 
  friend class ::ExtACSyntaxCoupling;
24797
 
  friend class ::ExtACTree;
24798
 
  friend class ::ExtACKeywords;
24799
 
  friend class ::WinAsm;
24800
 
  friend class ::WinDeclSpecs;
24801
 
  friend class ::WinMemberExplSpec;
24802
 
  friend class ::WinTypeKeywords;
24803
 
  friend class ::PragmaOnceUnitState;
24804
 
  friend class ::PragmaOnce;
24805
 
  friend class ::CCExprResolve;
24806
 
  friend class ::CExprResolve;
24807
 
 
24808
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24809
 
 
24810
 
public:
24811
 
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
24812
 
  static const char *NodeId ();
24813
 
  const char *NodeName () const { return NodeId (); }
24814
 
};
24815
 
      
24816
 
 
24817
 
#line 24818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24818
 
} // closed Puma
24819
 
class WinIfExists;
24820
 
class WinImportHandler;
24821
 
class WinMacros;
24822
 
class CMatchSyntax;
24823
 
class ExtGnu;
24824
 
class ExtAC;
24825
 
class ExtACBuilderCoupling;
24826
 
class ExtACSyntaxCoupling;
24827
 
class ExtACTree;
24828
 
class ExtACKeywords;
24829
 
class WinAsm;
24830
 
class WinDeclSpecs;
24831
 
class WinMemberExplSpec;
24832
 
class WinTypeKeywords;
24833
 
class PragmaOnceUnitState;
24834
 
class PragmaOnce;
24835
 
class CCExprResolve;
24836
 
class CExprResolve;
24837
 
namespace Puma {
24838
 
 
24839
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24840
 
class CT_MembList : public CT_DeclList, public CSemScope {
24841
 
#line 24842 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24842
 
  friend class ::WinIfExists;
24843
 
  friend class ::WinImportHandler;
24844
 
  friend class ::WinMacros;
24845
 
  friend class ::CMatchSyntax;
24846
 
  friend class ::ExtGnu;
24847
 
  friend class ::ExtAC;
24848
 
  friend class ::ExtACBuilderCoupling;
24849
 
  friend class ::ExtACSyntaxCoupling;
24850
 
  friend class ::ExtACTree;
24851
 
  friend class ::ExtACKeywords;
24852
 
  friend class ::WinAsm;
24853
 
  friend class ::WinDeclSpecs;
24854
 
  friend class ::WinMemberExplSpec;
24855
 
  friend class ::WinTypeKeywords;
24856
 
  friend class ::PragmaOnceUnitState;
24857
 
  friend class ::PragmaOnce;
24858
 
  friend class ::CCExprResolve;
24859
 
  friend class ::CExprResolve;
24860
 
 
24861
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24862
 
 
24863
 
public:
24864
 
  CT_MembList (int size = 10, int incr = 10) : 
24865
 
    CT_DeclList (size, incr) {}
24866
 
  static const char *NodeId ();
24867
 
  const char *NodeName () const { return NodeId (); }
24868
 
};
24869
 
 
24870
 
 
24871
 
#line 24872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24872
 
} // closed Puma
24873
 
class WinIfExists;
24874
 
class WinImportHandler;
24875
 
class WinMacros;
24876
 
class CMatchSyntax;
24877
 
class ExtGnu;
24878
 
class ExtAC;
24879
 
class ExtACBuilderCoupling;
24880
 
class ExtACSyntaxCoupling;
24881
 
class ExtACTree;
24882
 
class ExtACKeywords;
24883
 
class WinAsm;
24884
 
class WinDeclSpecs;
24885
 
class WinMemberExplSpec;
24886
 
class WinTypeKeywords;
24887
 
class PragmaOnceUnitState;
24888
 
class PragmaOnce;
24889
 
class CCExprResolve;
24890
 
class CExprResolve;
24891
 
namespace Puma {
24892
 
 
24893
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24894
 
class CT_MembInitList : public CT_List, public CSemScope {
24895
 
#line 24896 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24896
 
  friend class ::WinIfExists;
24897
 
  friend class ::WinImportHandler;
24898
 
  friend class ::WinMacros;
24899
 
  friend class ::CMatchSyntax;
24900
 
  friend class ::ExtGnu;
24901
 
  friend class ::ExtAC;
24902
 
  friend class ::ExtACBuilderCoupling;
24903
 
  friend class ::ExtACSyntaxCoupling;
24904
 
  friend class ::ExtACTree;
24905
 
  friend class ::ExtACKeywords;
24906
 
  friend class ::WinAsm;
24907
 
  friend class ::WinDeclSpecs;
24908
 
  friend class ::WinMemberExplSpec;
24909
 
  friend class ::WinTypeKeywords;
24910
 
  friend class ::PragmaOnceUnitState;
24911
 
  friend class ::PragmaOnce;
24912
 
  friend class ::CCExprResolve;
24913
 
  friend class ::CExprResolve;
24914
 
 
24915
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24916
 
 
24917
 
public:
24918
 
  CT_MembInitList (int size = 2) : 
24919
 
    CT_List (size, 2, CT_List::OPEN) {}
24920
 
  static const char *NodeId ();
24921
 
  const char *NodeName () const { return NodeId (); }
24922
 
};
24923
 
 
24924
 
 
24925
 
#line 24926 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24926
 
} // closed Puma
24927
 
class WinIfExists;
24928
 
class WinImportHandler;
24929
 
class WinMacros;
24930
 
class CMatchSyntax;
24931
 
class ExtGnu;
24932
 
class ExtAC;
24933
 
class ExtACBuilderCoupling;
24934
 
class ExtACSyntaxCoupling;
24935
 
class ExtACTree;
24936
 
class ExtACKeywords;
24937
 
class WinAsm;
24938
 
class WinDeclSpecs;
24939
 
class WinMemberExplSpec;
24940
 
class WinTypeKeywords;
24941
 
class PragmaOnceUnitState;
24942
 
class PragmaOnce;
24943
 
class CCExprResolve;
24944
 
class CExprResolve;
24945
 
namespace Puma {
24946
 
 
24947
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24948
 
class CT_MembInit : public CT_Expression, public CSemObject {
24949
 
#line 24950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
24950
 
  friend class ::WinIfExists;
24951
 
  friend class ::WinImportHandler;
24952
 
  friend class ::WinMacros;
24953
 
  friend class ::CMatchSyntax;
24954
 
  friend class ::ExtGnu;
24955
 
  friend class ::ExtAC;
24956
 
  friend class ::ExtACBuilderCoupling;
24957
 
  friend class ::ExtACSyntaxCoupling;
24958
 
  friend class ::ExtACTree;
24959
 
  friend class ::ExtACKeywords;
24960
 
  friend class ::WinAsm;
24961
 
  friend class ::WinDeclSpecs;
24962
 
  friend class ::WinMemberExplSpec;
24963
 
  friend class ::WinTypeKeywords;
24964
 
  friend class ::PragmaOnceUnitState;
24965
 
  friend class ::PragmaOnce;
24966
 
  friend class ::CCExprResolve;
24967
 
  friend class ::CExprResolve;
24968
 
 
24969
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24970
 
 
24971
 
  CTree *sons[2]; // name, init
24972
 
 
24973
 
public:
24974
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
24975
 
  static const char *NodeId ();
24976
 
  const char *NodeName () const { return NodeId (); }
24977
 
  int Sons () const { return 2; }
24978
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
24979
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
24980
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
24981
 
  }
24982
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
24983
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
24984
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
24985
 
   private:
24986
 
  typedef CT_MembInit CCExprResolveExpr;
24987
 
 
24988
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
24989
 
 public :
24990
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
24991
 
  typedef CT_MembInit CExprResolveExpr;
24992
 
 
24993
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
24994
 
 public :
24995
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
24996
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
24997
 
};
24998
 
 
24999
 
 
25000
 
#line 25001 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25001
 
} // closed Puma
25002
 
class WinIfExists;
25003
 
class WinImportHandler;
25004
 
class WinMacros;
25005
 
class CMatchSyntax;
25006
 
class ExtGnu;
25007
 
class ExtAC;
25008
 
class ExtACBuilderCoupling;
25009
 
class ExtACSyntaxCoupling;
25010
 
class ExtACTree;
25011
 
class ExtACKeywords;
25012
 
class WinAsm;
25013
 
class WinDeclSpecs;
25014
 
class WinMemberExplSpec;
25015
 
class WinTypeKeywords;
25016
 
class PragmaOnceUnitState;
25017
 
class PragmaOnce;
25018
 
class CCExprResolve;
25019
 
class CExprResolve;
25020
 
namespace Puma {
25021
 
 
25022
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25023
 
class CT_BaseSpecList : public CT_List {
25024
 
#line 25025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25025
 
  friend class ::WinIfExists;
25026
 
  friend class ::WinImportHandler;
25027
 
  friend class ::WinMacros;
25028
 
  friend class ::CMatchSyntax;
25029
 
  friend class ::ExtGnu;
25030
 
  friend class ::ExtAC;
25031
 
  friend class ::ExtACBuilderCoupling;
25032
 
  friend class ::ExtACSyntaxCoupling;
25033
 
  friend class ::ExtACTree;
25034
 
  friend class ::ExtACKeywords;
25035
 
  friend class ::WinAsm;
25036
 
  friend class ::WinDeclSpecs;
25037
 
  friend class ::WinMemberExplSpec;
25038
 
  friend class ::WinTypeKeywords;
25039
 
  friend class ::PragmaOnceUnitState;
25040
 
  friend class ::PragmaOnce;
25041
 
  friend class ::CCExprResolve;
25042
 
  friend class ::CExprResolve;
25043
 
 
25044
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25045
 
 
25046
 
public:
25047
 
  CT_BaseSpecList (int size = 2) : 
25048
 
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
25049
 
  static const char *NodeId ();
25050
 
  const char *NodeName () const { return NodeId (); }
25051
 
};
25052
 
 
25053
 
 
25054
 
#line 25055 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25055
 
} // closed Puma
25056
 
class WinIfExists;
25057
 
class WinImportHandler;
25058
 
class WinMacros;
25059
 
class CMatchSyntax;
25060
 
class ExtGnu;
25061
 
class ExtAC;
25062
 
class ExtACBuilderCoupling;
25063
 
class ExtACSyntaxCoupling;
25064
 
class ExtACTree;
25065
 
class ExtACKeywords;
25066
 
class WinAsm;
25067
 
class WinDeclSpecs;
25068
 
class WinMemberExplSpec;
25069
 
class WinTypeKeywords;
25070
 
class PragmaOnceUnitState;
25071
 
class PragmaOnce;
25072
 
class CCExprResolve;
25073
 
class CExprResolve;
25074
 
namespace Puma {
25075
 
 
25076
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25077
 
class CT_AccessSpec : public CTree {
25078
 
#line 25079 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25079
 
  friend class ::WinIfExists;
25080
 
  friend class ::WinImportHandler;
25081
 
  friend class ::WinMacros;
25082
 
  friend class ::CMatchSyntax;
25083
 
  friend class ::ExtGnu;
25084
 
  friend class ::ExtAC;
25085
 
  friend class ::ExtACBuilderCoupling;
25086
 
  friend class ::ExtACSyntaxCoupling;
25087
 
  friend class ::ExtACTree;
25088
 
  friend class ::ExtACKeywords;
25089
 
  friend class ::WinAsm;
25090
 
  friend class ::WinDeclSpecs;
25091
 
  friend class ::WinMemberExplSpec;
25092
 
  friend class ::WinTypeKeywords;
25093
 
  friend class ::PragmaOnceUnitState;
25094
 
  friend class ::PragmaOnce;
25095
 
  friend class ::CCExprResolve;
25096
 
  friend class ::CExprResolve;
25097
 
 
25098
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25099
 
 
25100
 
  CTree *sons[2]; // access, colon
25101
 
 
25102
 
public:
25103
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
25104
 
  static const char *NodeId ();
25105
 
  const char *NodeName () const { return NodeId (); }
25106
 
  int Sons () const { return 2; }
25107
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
25108
 
  int Access () const { return sons[0]->token ()->type (); }
25109
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25110
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25111
 
  }
25112
 
};
25113
 
 
25114
 
 
25115
 
#line 25116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25116
 
} // closed Puma
25117
 
class WinIfExists;
25118
 
class WinImportHandler;
25119
 
class WinMacros;
25120
 
class CMatchSyntax;
25121
 
class ExtGnu;
25122
 
class ExtAC;
25123
 
class ExtACBuilderCoupling;
25124
 
class ExtACSyntaxCoupling;
25125
 
class ExtACTree;
25126
 
class ExtACKeywords;
25127
 
class WinAsm;
25128
 
class WinDeclSpecs;
25129
 
class WinMemberExplSpec;
25130
 
class WinTypeKeywords;
25131
 
class PragmaOnceUnitState;
25132
 
class PragmaOnce;
25133
 
class CCExprResolve;
25134
 
class CExprResolve;
25135
 
namespace Puma {
25136
 
 
25137
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25138
 
class CT_BaseSpec : public CTree {
25139
 
#line 25140 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25140
 
  friend class ::WinIfExists;
25141
 
  friend class ::WinImportHandler;
25142
 
  friend class ::WinMacros;
25143
 
  friend class ::CMatchSyntax;
25144
 
  friend class ::ExtGnu;
25145
 
  friend class ::ExtAC;
25146
 
  friend class ::ExtACBuilderCoupling;
25147
 
  friend class ::ExtACSyntaxCoupling;
25148
 
  friend class ::ExtACTree;
25149
 
  friend class ::ExtACKeywords;
25150
 
  friend class ::WinAsm;
25151
 
  friend class ::WinDeclSpecs;
25152
 
  friend class ::WinMemberExplSpec;
25153
 
  friend class ::WinTypeKeywords;
25154
 
  friend class ::PragmaOnceUnitState;
25155
 
  friend class ::PragmaOnce;
25156
 
  friend class ::CCExprResolve;
25157
 
  friend class ::CExprResolve;
25158
 
 
25159
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25160
 
 
25161
 
  CTree *sons[3]; // virtual, access, name
25162
 
 
25163
 
public:
25164
 
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
25165
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
25166
 
  }
25167
 
  static const char *NodeId ();
25168
 
  const char *NodeName () const { return NodeId (); }
25169
 
  int Sons () const { return CTree::Sons (sons, 3); }
25170
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
25171
 
  int Access () const { return sons[1]->token ()->type (); }
25172
 
  CTree *AccessSpec () const { return sons[1]; }
25173
 
  CTree *Virtual () const { return sons[0]; }
25174
 
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
25175
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25176
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
25177
 
  }
25178
 
};
25179
 
 
25180
 
 
25181
 
#line 25182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25182
 
} // closed Puma
25183
 
class WinIfExists;
25184
 
class WinImportHandler;
25185
 
class WinMacros;
25186
 
class CMatchSyntax;
25187
 
class ExtGnu;
25188
 
class ExtAC;
25189
 
class ExtACBuilderCoupling;
25190
 
class ExtACSyntaxCoupling;
25191
 
class ExtACTree;
25192
 
class ExtACKeywords;
25193
 
class WinAsm;
25194
 
class WinDeclSpecs;
25195
 
class WinMemberExplSpec;
25196
 
class WinTypeKeywords;
25197
 
class PragmaOnceUnitState;
25198
 
class PragmaOnce;
25199
 
class CCExprResolve;
25200
 
class CExprResolve;
25201
 
namespace Puma {
25202
 
 
25203
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25204
 
class CT_AccessDecl : public CT_Decl {
25205
 
#line 25206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25206
 
  friend class ::WinIfExists;
25207
 
  friend class ::WinImportHandler;
25208
 
  friend class ::WinMacros;
25209
 
  friend class ::CMatchSyntax;
25210
 
  friend class ::ExtGnu;
25211
 
  friend class ::ExtAC;
25212
 
  friend class ::ExtACBuilderCoupling;
25213
 
  friend class ::ExtACSyntaxCoupling;
25214
 
  friend class ::ExtACTree;
25215
 
  friend class ::ExtACKeywords;
25216
 
  friend class ::WinAsm;
25217
 
  friend class ::WinDeclSpecs;
25218
 
  friend class ::WinMemberExplSpec;
25219
 
  friend class ::WinTypeKeywords;
25220
 
  friend class ::PragmaOnceUnitState;
25221
 
  friend class ::PragmaOnce;
25222
 
  friend class ::CCExprResolve;
25223
 
  friend class ::CExprResolve;
25224
 
 
25225
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25226
 
 
25227
 
  CTree *sons[2]; // name, semi_colon
25228
 
 
25229
 
public:
25230
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
25231
 
  static const char *NodeId ();
25232
 
  const char *NodeName () const { return NodeId (); }
25233
 
  int Sons () const { return 2; }
25234
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
25235
 
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
25236
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25237
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25238
 
  }
25239
 
};
25240
 
 
25241
 
 
25242
 
#line 25243 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25243
 
} // closed Puma
25244
 
class WinIfExists;
25245
 
class WinImportHandler;
25246
 
class WinMacros;
25247
 
class CMatchSyntax;
25248
 
class ExtGnu;
25249
 
class ExtAC;
25250
 
class ExtACBuilderCoupling;
25251
 
class ExtACSyntaxCoupling;
25252
 
class ExtACTree;
25253
 
class ExtACKeywords;
25254
 
class WinAsm;
25255
 
class WinDeclSpecs;
25256
 
class WinMemberExplSpec;
25257
 
class WinTypeKeywords;
25258
 
class PragmaOnceUnitState;
25259
 
class PragmaOnce;
25260
 
class CCExprResolve;
25261
 
class CExprResolve;
25262
 
namespace Puma {
25263
 
 
25264
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25265
 
class CT_UsingDecl : public CT_AccessDecl {
25266
 
#line 25267 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25267
 
  friend class ::WinIfExists;
25268
 
  friend class ::WinImportHandler;
25269
 
  friend class ::WinMacros;
25270
 
  friend class ::CMatchSyntax;
25271
 
  friend class ::ExtGnu;
25272
 
  friend class ::ExtAC;
25273
 
  friend class ::ExtACBuilderCoupling;
25274
 
  friend class ::ExtACSyntaxCoupling;
25275
 
  friend class ::ExtACTree;
25276
 
  friend class ::ExtACKeywords;
25277
 
  friend class ::WinAsm;
25278
 
  friend class ::WinDeclSpecs;
25279
 
  friend class ::WinMemberExplSpec;
25280
 
  friend class ::WinTypeKeywords;
25281
 
  friend class ::PragmaOnceUnitState;
25282
 
  friend class ::PragmaOnce;
25283
 
  friend class ::CCExprResolve;
25284
 
  friend class ::CExprResolve;
25285
 
 
25286
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25287
 
 
25288
 
  CTree *sons[2]; // using, typename
25289
 
 
25290
 
public:
25291
 
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
25292
 
    sons[0] = u; sons[1] = 0; 
25293
 
  }
25294
 
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
25295
 
    sons[0] = u; sons[1] = t; 
25296
 
  }
25297
 
  static const char *NodeId ();
25298
 
  const char *NodeName () const { return NodeId (); }
25299
 
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
25300
 
  CTree *Son (int n) const {
25301
 
    int num = CTree::Sons (sons, 2);
25302
 
    CTree *result = CTree::Son (sons, 2, n);
25303
 
    return result ? result : CT_AccessDecl::Son (n-num);
25304
 
  }
25305
 
  CTree *Typename () const { return sons[1]; }
25306
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25307
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25308
 
    CT_AccessDecl::ReplaceSon (old_son, new_son);
25309
 
  }
25310
 
};
25311
 
 
25312
 
/*****************************************************************************/
25313
 
/*                                                                           */
25314
 
/*                              Wildcards                                    */
25315
 
/*                                                                           */
25316
 
/*****************************************************************************/
25317
 
 
25318
 
 
25319
 
#line 25320 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25320
 
} // closed Puma
25321
 
class WinIfExists;
25322
 
class WinImportHandler;
25323
 
class WinMacros;
25324
 
class CMatchSyntax;
25325
 
class ExtGnu;
25326
 
class ExtAC;
25327
 
class ExtACBuilderCoupling;
25328
 
class ExtACSyntaxCoupling;
25329
 
class ExtACTree;
25330
 
class ExtACKeywords;
25331
 
class WinAsm;
25332
 
class WinDeclSpecs;
25333
 
class WinMemberExplSpec;
25334
 
class WinTypeKeywords;
25335
 
class PragmaOnceUnitState;
25336
 
class PragmaOnce;
25337
 
class CCExprResolve;
25338
 
class CExprResolve;
25339
 
namespace Puma {
25340
 
 
25341
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25342
 
class CT_Any : public CTree {
25343
 
#line 25344 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25344
 
  friend class ::WinIfExists;
25345
 
  friend class ::WinImportHandler;
25346
 
  friend class ::WinMacros;
25347
 
  friend class ::CMatchSyntax;
25348
 
  friend class ::ExtGnu;
25349
 
  friend class ::ExtAC;
25350
 
  friend class ::ExtACBuilderCoupling;
25351
 
  friend class ::ExtACSyntaxCoupling;
25352
 
  friend class ::ExtACTree;
25353
 
  friend class ::ExtACKeywords;
25354
 
  friend class ::WinAsm;
25355
 
  friend class ::WinDeclSpecs;
25356
 
  friend class ::WinMemberExplSpec;
25357
 
  friend class ::WinTypeKeywords;
25358
 
  friend class ::PragmaOnceUnitState;
25359
 
  friend class ::PragmaOnce;
25360
 
  friend class ::CCExprResolve;
25361
 
  friend class ::CExprResolve;
25362
 
 
25363
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25364
 
 
25365
 
  CTree *sons[2]; // keyword, extension
25366
 
 
25367
 
public:
25368
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
25369
 
  static const char *NodeId ();
25370
 
  const char *NodeName () const { return NodeId (); }
25371
 
  int Sons () const { return CTree::Sons (sons, 2); }
25372
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
25373
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25374
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
25375
 
  }
25376
 
  int AnyType () const { return sons[0]->token ()->type (); }
25377
 
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
25378
 
};
25379
 
 
25380
 
 
25381
 
#line 25382 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25382
 
} // closed Puma
25383
 
class WinIfExists;
25384
 
class WinImportHandler;
25385
 
class WinMacros;
25386
 
class CMatchSyntax;
25387
 
class ExtGnu;
25388
 
class ExtAC;
25389
 
class ExtACBuilderCoupling;
25390
 
class ExtACSyntaxCoupling;
25391
 
class ExtACTree;
25392
 
class ExtACKeywords;
25393
 
class WinAsm;
25394
 
class WinDeclSpecs;
25395
 
class WinMemberExplSpec;
25396
 
class WinTypeKeywords;
25397
 
class PragmaOnceUnitState;
25398
 
class PragmaOnce;
25399
 
class CCExprResolve;
25400
 
class CExprResolve;
25401
 
namespace Puma {
25402
 
 
25403
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25404
 
class CT_AnyList : public CT_Any {
25405
 
#line 25406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25406
 
  friend class ::WinIfExists;
25407
 
  friend class ::WinImportHandler;
25408
 
  friend class ::WinMacros;
25409
 
  friend class ::CMatchSyntax;
25410
 
  friend class ::ExtGnu;
25411
 
  friend class ::ExtAC;
25412
 
  friend class ::ExtACBuilderCoupling;
25413
 
  friend class ::ExtACSyntaxCoupling;
25414
 
  friend class ::ExtACTree;
25415
 
  friend class ::ExtACKeywords;
25416
 
  friend class ::WinAsm;
25417
 
  friend class ::WinDeclSpecs;
25418
 
  friend class ::WinMemberExplSpec;
25419
 
  friend class ::WinTypeKeywords;
25420
 
  friend class ::PragmaOnceUnitState;
25421
 
  friend class ::PragmaOnce;
25422
 
  friend class ::CCExprResolve;
25423
 
  friend class ::CExprResolve;
25424
 
 
25425
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25426
 
 
25427
 
public:
25428
 
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
25429
 
  static const char *NodeId ();
25430
 
  const char *NodeName () const { return NodeId (); }
25431
 
};
25432
 
 
25433
 
 
25434
 
#line 25435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25435
 
} // closed Puma
25436
 
class WinIfExists;
25437
 
class WinImportHandler;
25438
 
class WinMacros;
25439
 
class CMatchSyntax;
25440
 
class ExtGnu;
25441
 
class ExtAC;
25442
 
class ExtACBuilderCoupling;
25443
 
class ExtACSyntaxCoupling;
25444
 
class ExtACTree;
25445
 
class ExtACKeywords;
25446
 
class WinAsm;
25447
 
class WinDeclSpecs;
25448
 
class WinMemberExplSpec;
25449
 
class WinTypeKeywords;
25450
 
class PragmaOnceUnitState;
25451
 
class PragmaOnce;
25452
 
class CCExprResolve;
25453
 
class CExprResolve;
25454
 
namespace Puma {
25455
 
 
25456
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25457
 
class CT_AnyExtension : public CTree, public CSemValue {
25458
 
#line 25459 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25459
 
  friend class ::WinIfExists;
25460
 
  friend class ::WinImportHandler;
25461
 
  friend class ::WinMacros;
25462
 
  friend class ::CMatchSyntax;
25463
 
  friend class ::ExtGnu;
25464
 
  friend class ::ExtAC;
25465
 
  friend class ::ExtACBuilderCoupling;
25466
 
  friend class ::ExtACSyntaxCoupling;
25467
 
  friend class ::ExtACTree;
25468
 
  friend class ::ExtACKeywords;
25469
 
  friend class ::WinAsm;
25470
 
  friend class ::WinDeclSpecs;
25471
 
  friend class ::WinMemberExplSpec;
25472
 
  friend class ::WinTypeKeywords;
25473
 
  friend class ::PragmaOnceUnitState;
25474
 
  friend class ::PragmaOnce;
25475
 
  friend class ::CCExprResolve;
25476
 
  friend class ::CExprResolve;
25477
 
 
25478
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25479
 
 
25480
 
  CTree *sons[5]; // open, string, comma, cond, close
25481
 
 
25482
 
public:
25483
 
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
25484
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
25485
 
  }
25486
 
  static const char *NodeId ();
25487
 
  const char *NodeName () const { return NodeId (); }
25488
 
  int Sons () const { return CTree::Sons (sons, 5); }
25489
 
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
25490
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25491
 
    CTree::ReplaceSon (sons, 5, old_son, new_son);
25492
 
  }
25493
 
  CTree *Condition () const { return sons[3]; }
25494
 
  CT_Token *String () const { return (CT_Token*)sons[1]; }
25495
 
  const char *Name () const { 
25496
 
    return value ? value->StrLiteral ()->String () : (const char*)0; }
25497
 
 
25498
 
  CExprValue *Value () const { return value; }
25499
 
  CSemValue *SemValue () const { return (CSemValue*)this; }
25500
 
};
25501
 
 
25502
 
 
25503
 
#line 25504 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25504
 
} // closed Puma
25505
 
class WinIfExists;
25506
 
class WinImportHandler;
25507
 
class WinMacros;
25508
 
class CMatchSyntax;
25509
 
class ExtGnu;
25510
 
class ExtAC;
25511
 
class ExtACBuilderCoupling;
25512
 
class ExtACSyntaxCoupling;
25513
 
class ExtACTree;
25514
 
class ExtACKeywords;
25515
 
class WinAsm;
25516
 
class WinDeclSpecs;
25517
 
class WinMemberExplSpec;
25518
 
class WinTypeKeywords;
25519
 
class PragmaOnceUnitState;
25520
 
class PragmaOnce;
25521
 
class CCExprResolve;
25522
 
class CExprResolve;
25523
 
namespace Puma {
25524
 
 
25525
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25526
 
class CT_AnyCondition : public CTree {
25527
 
#line 25528 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25528
 
  friend class ::WinIfExists;
25529
 
  friend class ::WinImportHandler;
25530
 
  friend class ::WinMacros;
25531
 
  friend class ::CMatchSyntax;
25532
 
  friend class ::ExtGnu;
25533
 
  friend class ::ExtAC;
25534
 
  friend class ::ExtACBuilderCoupling;
25535
 
  friend class ::ExtACSyntaxCoupling;
25536
 
  friend class ::ExtACTree;
25537
 
  friend class ::ExtACKeywords;
25538
 
  friend class ::WinAsm;
25539
 
  friend class ::WinDeclSpecs;
25540
 
  friend class ::WinMemberExplSpec;
25541
 
  friend class ::WinTypeKeywords;
25542
 
  friend class ::PragmaOnceUnitState;
25543
 
  friend class ::PragmaOnce;
25544
 
  friend class ::CCExprResolve;
25545
 
  friend class ::CExprResolve;
25546
 
 
25547
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25548
 
 
25549
 
  CTree *sons[3]; // arg1, arg2, arg3
25550
 
 
25551
 
public:
25552
 
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
25553
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
25554
 
  }
25555
 
  static const char *NodeId ();
25556
 
  const char *NodeName () const { return NodeId (); }
25557
 
  int Sons () const { return CTree::Sons (sons, 3); }
25558
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
25559
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25560
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
25561
 
  }
25562
 
};
25563
 
 
25564
 
 
25565
 
} // namespace Puma
25566
 
 
25567
 
#endif /* __CTree_h__ */
25568
 
 
25569
 
#line 25570 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25570
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
25571
 
 
25572
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
25573
 
 
25574
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
25575
 
namespace Puma {
25576
 
 
25577
 
 
25578
 
 
25579
 
#line 25580 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25580
 
} // closed Puma
25581
 
class WinIfExists;
25582
 
class WinImportHandler;
25583
 
class WinMacros;
25584
 
class CMatchSyntax;
25585
 
class ExtGnu;
25586
 
class ExtAC;
25587
 
class ExtACBuilderCoupling;
25588
 
class ExtACSyntaxCoupling;
25589
 
class ExtACTree;
25590
 
class ExtACKeywords;
25591
 
class WinAsm;
25592
 
class WinDeclSpecs;
25593
 
class WinMemberExplSpec;
25594
 
class WinTypeKeywords;
25595
 
class PragmaOnceUnitState;
25596
 
class PragmaOnce;
25597
 
class CCExprResolve;
25598
 
class CExprResolve;
25599
 
namespace Puma {
25600
 
 
25601
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
25602
 
class CT_AdviceDecl : public CT_Decl {
25603
 
#line 25604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25604
 
  friend class ::WinIfExists;
25605
 
  friend class ::WinImportHandler;
25606
 
  friend class ::WinMacros;
25607
 
  friend class ::CMatchSyntax;
25608
 
  friend class ::ExtGnu;
25609
 
  friend class ::ExtAC;
25610
 
  friend class ::ExtACBuilderCoupling;
25611
 
  friend class ::ExtACSyntaxCoupling;
25612
 
  friend class ::ExtACTree;
25613
 
  friend class ::ExtACKeywords;
25614
 
  friend class ::WinAsm;
25615
 
  friend class ::WinDeclSpecs;
25616
 
  friend class ::WinMemberExplSpec;
25617
 
  friend class ::WinTypeKeywords;
25618
 
  friend class ::PragmaOnceUnitState;
25619
 
  friend class ::PragmaOnce;
25620
 
  friend class ::CCExprResolve;
25621
 
  friend class ::CExprResolve;
25622
 
 
25623
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
25624
 
 
25625
 
  CTree *_advice;    // CT_Token
25626
 
  CTree *_pointcut;
25627
 
  CTree *_colon;     // CT_Token
25628
 
  CTree *_decl;
25629
 
 
25630
 
public:
25631
 
  CT_AdviceDecl (CTree *a, CTree *p, CTree *c, CTree *d) : 
25632
 
    _advice (a), _pointcut (p), _colon (c), _decl (d) {}
25633
 
  static const char *NodeId ();
25634
 
  const char *NodeName () const { return NodeId (); }
25635
 
  int Sons () const { return 4; }
25636
 
  CTree *Son (int n) const { 
25637
 
    switch (n) { 
25638
 
      case 0: return _advice;
25639
 
      case 1: return _pointcut;
25640
 
      case 2: return _colon;
25641
 
      case 3: return _decl;
25642
 
      default: return (CTree*)0;
25643
 
    }
25644
 
  }
25645
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25646
 
    if (old_son == _decl) _decl = new_son; 
25647
 
    else if (old_son == _pointcut) _pointcut = new_son; 
25648
 
    else if (old_son == _advice) _advice = new_son; 
25649
 
    else if (old_son == _colon) _colon = new_son; 
25650
 
  }
25651
 
  CTree *Pointcut () const { return _pointcut; }
25652
 
  CTree *Decl () const { return _decl; }
25653
 
};
25654
 
 
25655
 
 
25656
 
#line 25657 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25657
 
} // closed Puma
25658
 
class WinIfExists;
25659
 
class WinImportHandler;
25660
 
class WinMacros;
25661
 
class CMatchSyntax;
25662
 
class ExtGnu;
25663
 
class ExtAC;
25664
 
class ExtACBuilderCoupling;
25665
 
class ExtACSyntaxCoupling;
25666
 
class ExtACTree;
25667
 
class ExtACKeywords;
25668
 
class WinAsm;
25669
 
class WinDeclSpecs;
25670
 
class WinMemberExplSpec;
25671
 
class WinTypeKeywords;
25672
 
class PragmaOnceUnitState;
25673
 
class PragmaOnce;
25674
 
class CCExprResolve;
25675
 
class CExprResolve;
25676
 
namespace Puma {
25677
 
 
25678
 
#line 58 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
25679
 
class CT_OrderList : public CT_List {
25680
 
#line 25681 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25681
 
  friend class ::WinIfExists;
25682
 
  friend class ::WinImportHandler;
25683
 
  friend class ::WinMacros;
25684
 
  friend class ::CMatchSyntax;
25685
 
  friend class ::ExtGnu;
25686
 
  friend class ::ExtAC;
25687
 
  friend class ::ExtACBuilderCoupling;
25688
 
  friend class ::ExtACSyntaxCoupling;
25689
 
  friend class ::ExtACTree;
25690
 
  friend class ::ExtACKeywords;
25691
 
  friend class ::WinAsm;
25692
 
  friend class ::WinDeclSpecs;
25693
 
  friend class ::WinMemberExplSpec;
25694
 
  friend class ::WinTypeKeywords;
25695
 
  friend class ::PragmaOnceUnitState;
25696
 
  friend class ::PragmaOnce;
25697
 
  friend class ::CCExprResolve;
25698
 
  friend class ::CExprResolve;
25699
 
 
25700
 
#line 58 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
25701
 
 
25702
 
public:
25703
 
  CT_OrderList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
25704
 
  static const char *NodeId ();
25705
 
  const char *NodeName () const { return NodeId (); }
25706
 
};
25707
 
 
25708
 
 
25709
 
#line 25710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25710
 
} // closed Puma
25711
 
class WinIfExists;
25712
 
class WinImportHandler;
25713
 
class WinMacros;
25714
 
class CMatchSyntax;
25715
 
class ExtGnu;
25716
 
class ExtAC;
25717
 
class ExtACBuilderCoupling;
25718
 
class ExtACSyntaxCoupling;
25719
 
class ExtACTree;
25720
 
class ExtACKeywords;
25721
 
class WinAsm;
25722
 
class WinDeclSpecs;
25723
 
class WinMemberExplSpec;
25724
 
class WinTypeKeywords;
25725
 
class PragmaOnceUnitState;
25726
 
class PragmaOnce;
25727
 
class CCExprResolve;
25728
 
class CExprResolve;
25729
 
namespace Puma {
25730
 
 
25731
 
#line 65 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
25732
 
class CT_OrderDecl : public CTree {
25733
 
#line 25734 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25734
 
  friend class ::WinIfExists;
25735
 
  friend class ::WinImportHandler;
25736
 
  friend class ::WinMacros;
25737
 
  friend class ::CMatchSyntax;
25738
 
  friend class ::ExtGnu;
25739
 
  friend class ::ExtAC;
25740
 
  friend class ::ExtACBuilderCoupling;
25741
 
  friend class ::ExtACSyntaxCoupling;
25742
 
  friend class ::ExtACTree;
25743
 
  friend class ::ExtACKeywords;
25744
 
  friend class ::WinAsm;
25745
 
  friend class ::WinDeclSpecs;
25746
 
  friend class ::WinMemberExplSpec;
25747
 
  friend class ::WinTypeKeywords;
25748
 
  friend class ::PragmaOnceUnitState;
25749
 
  friend class ::PragmaOnce;
25750
 
  friend class ::CCExprResolve;
25751
 
  friend class ::CExprResolve;
25752
 
 
25753
 
#line 65 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
25754
 
 
25755
 
  CTree *_order;
25756
 
  CTree *_order_list;
25757
 
  CTree *_semi_colon;
25758
 
public:
25759
 
  CT_OrderDecl (CTree *o, CTree *ol, CTree *s) :
25760
 
    _order (o), _order_list (ol), _semi_colon (s) {}
25761
 
  static const char *NodeId ();
25762
 
  const char *NodeName () const { return NodeId (); }
25763
 
  int Sons () const { return 3; }
25764
 
  CTree *Son (int n) const { 
25765
 
    switch (n) { 
25766
 
      case 0: return _order;
25767
 
      case 1: return _order_list;
25768
 
      case 2: return _semi_colon;
25769
 
      default: return (CTree*)0;
25770
 
    }
25771
 
  }
25772
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25773
 
    if (old_son == _order) _order = new_son; 
25774
 
    else if (old_son == _order_list) _order_list = new_son; 
25775
 
    else if (old_son == _semi_colon) _semi_colon = new_son; 
25776
 
  }
25777
 
  CT_OrderList *OrderList () const { return (CT_OrderList*)_order_list; }
25778
 
};
25779
 
 
25780
 
 
25781
 
#line 25782 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25782
 
} // closed Puma
25783
 
class WinIfExists;
25784
 
class WinImportHandler;
25785
 
class WinMacros;
25786
 
class CMatchSyntax;
25787
 
class ExtGnu;
25788
 
class ExtAC;
25789
 
class ExtACBuilderCoupling;
25790
 
class ExtACSyntaxCoupling;
25791
 
class ExtACTree;
25792
 
class ExtACKeywords;
25793
 
class WinAsm;
25794
 
class WinDeclSpecs;
25795
 
class WinMemberExplSpec;
25796
 
class WinTypeKeywords;
25797
 
class PragmaOnceUnitState;
25798
 
class PragmaOnce;
25799
 
class CCExprResolve;
25800
 
class CExprResolve;
25801
 
namespace Puma {
25802
 
 
25803
 
#line 91 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
25804
 
class CT_PointcutDecl : public CT_Decl {
25805
 
#line 25806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25806
 
  friend class ::WinIfExists;
25807
 
  friend class ::WinImportHandler;
25808
 
  friend class ::WinMacros;
25809
 
  friend class ::CMatchSyntax;
25810
 
  friend class ::ExtGnu;
25811
 
  friend class ::ExtAC;
25812
 
  friend class ::ExtACBuilderCoupling;
25813
 
  friend class ::ExtACSyntaxCoupling;
25814
 
  friend class ::ExtACTree;
25815
 
  friend class ::ExtACKeywords;
25816
 
  friend class ::WinAsm;
25817
 
  friend class ::WinDeclSpecs;
25818
 
  friend class ::WinMemberExplSpec;
25819
 
  friend class ::WinTypeKeywords;
25820
 
  friend class ::PragmaOnceUnitState;
25821
 
  friend class ::PragmaOnce;
25822
 
  friend class ::CCExprResolve;
25823
 
  friend class ::CExprResolve;
25824
 
 
25825
 
#line 91 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
25826
 
 
25827
 
  CTree *_pointcut;    // CT_Token
25828
 
  CTree *_decl;
25829
 
 
25830
 
public:
25831
 
  CT_PointcutDecl (CTree *p, CTree *d) : _pointcut (p), _decl (d) {}
25832
 
  static const char *NodeId ();
25833
 
  const char *NodeName () const { return NodeId (); }
25834
 
  int Sons () const { return 2; }
25835
 
  CTree *Son (int n) const { 
25836
 
    switch (n) { 
25837
 
      case 0: return _pointcut;
25838
 
      case 1: return _decl;
25839
 
      default: return (CTree*)0;
25840
 
    }
25841
 
  }
25842
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25843
 
    if (old_son == _decl) _decl = new_son; 
25844
 
    else if (old_son == _pointcut) _pointcut = new_son; 
25845
 
  }
25846
 
  CTree *Decl () const { return _decl; }
25847
 
};
25848
 
 
25849
 
 
25850
 
#line 25851 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25851
 
} // closed Puma
25852
 
class WinIfExists;
25853
 
class WinImportHandler;
25854
 
class WinMacros;
25855
 
class CMatchSyntax;
25856
 
class ExtGnu;
25857
 
class ExtAC;
25858
 
class ExtACBuilderCoupling;
25859
 
class ExtACSyntaxCoupling;
25860
 
class ExtACTree;
25861
 
class ExtACKeywords;
25862
 
class WinAsm;
25863
 
class WinDeclSpecs;
25864
 
class WinMemberExplSpec;
25865
 
class WinTypeKeywords;
25866
 
class PragmaOnceUnitState;
25867
 
class PragmaOnce;
25868
 
class CCExprResolve;
25869
 
class CExprResolve;
25870
 
namespace Puma {
25871
 
 
25872
 
#line 114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
25873
 
class CT_Intro : public CT_List, public CSemScope {
25874
 
#line 25875 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25875
 
  friend class ::WinIfExists;
25876
 
  friend class ::WinImportHandler;
25877
 
  friend class ::WinMacros;
25878
 
  friend class ::CMatchSyntax;
25879
 
  friend class ::ExtGnu;
25880
 
  friend class ::ExtAC;
25881
 
  friend class ::ExtACBuilderCoupling;
25882
 
  friend class ::ExtACSyntaxCoupling;
25883
 
  friend class ::ExtACTree;
25884
 
  friend class ::ExtACKeywords;
25885
 
  friend class ::WinAsm;
25886
 
  friend class ::WinDeclSpecs;
25887
 
  friend class ::WinMemberExplSpec;
25888
 
  friend class ::WinTypeKeywords;
25889
 
  friend class ::PragmaOnceUnitState;
25890
 
  friend class ::PragmaOnce;
25891
 
  friend class ::CCExprResolve;
25892
 
  friend class ::CExprResolve;
25893
 
 
25894
 
#line 114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
25895
 
 
25896
 
  // indices of aspect or slice names in introduction
25897
 
  Array<int> _name_indices;    // start index
25898
 
  Array<int> _name_to_indices; // end index
25899
 
  Array<bool> _name_qual;      // true if the token should be replaced by a
25900
 
                               // qualified name
25901
 
public:
25902
 
  static const char *NodeId ();
25903
 
  const char *NodeName () const { return NodeId (); }
25904
 
  void AddNameIndex (int index) {
25905
 
    _name_indices.append (index);
25906
 
    _name_to_indices.append (index);
25907
 
    _name_qual.append (false);
25908
 
  }
25909
 
  void AddNameIndex (int index_from, int index_to) {
25910
 
    _name_indices.append (index_from);
25911
 
    _name_to_indices.append (index_to);
25912
 
    _name_qual.append (true);
25913
 
  }
25914
 
  void RollbackNameIndex (int pos) {
25915
 
    for (int i = NameIndices () - 1; i >= 0; i--) {
25916
 
      if (NameIndex (i) >= pos) {
25917
 
        _name_indices.remove (i);
25918
 
        _name_to_indices.remove (i);
25919
 
        _name_qual.remove (i);
25920
 
      }
25921
 
      else
25922
 
        break;
25923
 
    }
25924
 
  }
25925
 
  int NameIndices () const { return _name_indices.length (); }
25926
 
  int NameIndex (int i) const { return _name_indices.lookup (i); }
25927
 
  int NameToIndex (int i) const { return _name_to_indices.lookup (i); }
25928
 
  bool NameQual (int i) const { return _name_qual.lookup (i); }
25929
 
};
25930
 
 
25931
 
 
25932
 
#line 25933 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25933
 
} // closed Puma
25934
 
class WinIfExists;
25935
 
class WinImportHandler;
25936
 
class WinMacros;
25937
 
class CMatchSyntax;
25938
 
class ExtGnu;
25939
 
class ExtAC;
25940
 
class ExtACBuilderCoupling;
25941
 
class ExtACSyntaxCoupling;
25942
 
class ExtACTree;
25943
 
class ExtACKeywords;
25944
 
class WinAsm;
25945
 
class WinDeclSpecs;
25946
 
class WinMemberExplSpec;
25947
 
class WinTypeKeywords;
25948
 
class PragmaOnceUnitState;
25949
 
class PragmaOnce;
25950
 
class CCExprResolve;
25951
 
class CExprResolve;
25952
 
namespace Puma {
25953
 
 
25954
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
25955
 
class CT_ClassSliceDecl : public CTree, public CSemObject {
25956
 
#line 25957 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25957
 
  friend class ::WinIfExists;
25958
 
  friend class ::WinImportHandler;
25959
 
  friend class ::WinMacros;
25960
 
  friend class ::CMatchSyntax;
25961
 
  friend class ::ExtGnu;
25962
 
  friend class ::ExtAC;
25963
 
  friend class ::ExtACBuilderCoupling;
25964
 
  friend class ::ExtACSyntaxCoupling;
25965
 
  friend class ::ExtACTree;
25966
 
  friend class ::ExtACKeywords;
25967
 
  friend class ::WinAsm;
25968
 
  friend class ::WinDeclSpecs;
25969
 
  friend class ::WinMemberExplSpec;
25970
 
  friend class ::WinTypeKeywords;
25971
 
  friend class ::PragmaOnceUnitState;
25972
 
  friend class ::PragmaOnce;
25973
 
  friend class ::CCExprResolve;
25974
 
  friend class ::CExprResolve;
25975
 
 
25976
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
25977
 
 
25978
 
  CTree *sons[6]; // SLICE? <key>? <name>? <baseclasses>? <members> ;
25979
 
public:
25980
 
  CT_ClassSliceDecl (CTree *sl, CTree *k, CTree *n, CTree *b, CTree *m, CTree *se) {
25981
 
    sons[0] = sl; sons[1] = k; sons[2] = n; sons[3] = b; sons[4] = m; sons[5] = se;
25982
 
  }
25983
 
  static const char *NodeId ();
25984
 
  const char *NodeName () const { return NodeId (); }
25985
 
  int Sons () const { return CTree::Sons (sons, 6); }
25986
 
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
25987
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
25988
 
    CTree::ReplaceSon (sons, 6, old_son, new_son);
25989
 
  }
25990
 
  CT_Token *key () const { return (CT_Token*)sons[1]; }
25991
 
  CT_SimpleName *name () const { return (CT_SimpleName*)sons[2]; }
25992
 
  CT_Intro *base_clause () const { return (CT_Intro*)sons[3]; }
25993
 
  CT_Intro *members () const { return (CT_Intro*)sons[4]; }
25994
 
};
25995
 
 
25996
 
 
25997
 
#line 25998 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
25998
 
} // closed Puma
25999
 
class WinIfExists;
26000
 
class WinImportHandler;
26001
 
class WinMacros;
26002
 
class CMatchSyntax;
26003
 
class ExtGnu;
26004
 
class ExtAC;
26005
 
class ExtACBuilderCoupling;
26006
 
class ExtACSyntaxCoupling;
26007
 
class ExtACTree;
26008
 
class ExtACKeywords;
26009
 
class WinAsm;
26010
 
class WinDeclSpecs;
26011
 
class WinMemberExplSpec;
26012
 
class WinTypeKeywords;
26013
 
class PragmaOnceUnitState;
26014
 
class PragmaOnce;
26015
 
class CCExprResolve;
26016
 
class CExprResolve;
26017
 
namespace Puma {
26018
 
 
26019
 
#line 169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
26020
 
class CT_SliceRef : public CTree {
26021
 
#line 26022 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
26022
 
  friend class ::WinIfExists;
26023
 
  friend class ::WinImportHandler;
26024
 
  friend class ::WinMacros;
26025
 
  friend class ::CMatchSyntax;
26026
 
  friend class ::ExtGnu;
26027
 
  friend class ::ExtAC;
26028
 
  friend class ::ExtACBuilderCoupling;
26029
 
  friend class ::ExtACSyntaxCoupling;
26030
 
  friend class ::ExtACTree;
26031
 
  friend class ::ExtACKeywords;
26032
 
  friend class ::WinAsm;
26033
 
  friend class ::WinDeclSpecs;
26034
 
  friend class ::WinMemberExplSpec;
26035
 
  friend class ::WinTypeKeywords;
26036
 
  friend class ::PragmaOnceUnitState;
26037
 
  friend class ::PragmaOnce;
26038
 
  friend class ::CCExprResolve;
26039
 
  friend class ::CExprResolve;
26040
 
 
26041
 
#line 169 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACTree.h"
26042
 
 
26043
 
  CTree *sons[3];
26044
 
public:
26045
 
  CT_SliceRef (CTree *sl, CTree *n, CTree *se) {
26046
 
    sons[0] = sl; sons[1] = n; sons[2] = se;
26047
 
  }
26048
 
  static const char *NodeId ();
26049
 
  const char *NodeName () const { return NodeId (); }
26050
 
  int Sons () const { return 3; }
26051
 
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
26052
 
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
26053
 
    CTree::ReplaceSon (sons, 3, old_son, new_son);
26054
 
  }
26055
 
  CT_SimpleName *name () const { return (CT_SimpleName*)sons[1]; }
26056
 
};
26057
 
 
26058
 
 
26059
 
} // namespace Puma
26060
 
 
26061
 
#endif /* __ACTree_h__ */
26062
 
 
26063
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
26064
 
// This file is part of PUMA.
26065
 
// Copyright (C) 1999-2003  The PUMA developer team.
26066
 
//                                                                
26067
 
// This program is free software;  you can redistribute it and/or 
26068
 
// modify it under the terms of the GNU General Public License as 
26069
 
// published by the Free Software Foundation; either version 2 of 
26070
 
// the License, or (at your option) any later version.            
26071
 
//                                                                
26072
 
// This program is distributed in the hope that it will be useful,
26073
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
26074
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
26075
 
// GNU General Public License for more details.                   
26076
 
//                                                                
26077
 
// You should have received a copy of the GNU General Public      
26078
 
// License along with this program; if not, write to the Free     
26079
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
26080
 
// MA  02111-1307  USA                                            
26081
 
 
26082
 
#ifndef __ACClassDatabase_h__
26083
 
#define __ACClassDatabase_h__
26084
 
 
26085
 
// #include "Puma/CClassDatabase.h"
26086
 
 
26087
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
26088
 
using std::ostream;
26089
 
using std::endl;
26090
 
 
26091
 
namespace Puma {
26092
 
 
26093
 
 
26094
 
class ACAspectInfo;
26095
 
class ACPointcutInfo;
26096
 
class ACSliceInfo;
26097
 
class CObjectInfo;
26098
 
class CFunctionInfo;
26099
 
class CClassInfo;
26100
 
 
26101
 
/** \file 
26102
 
 *  AspectC++ specific class database. This is a database of all
26103
 
 *  aspect and pointcut info objects.
26104
 
 *  \see Puma::ACClassDatabase */
26105
 
 
26106
 
/** \class ACClassDatabase ACClassDatabase.h Puma/infos/acinfos/ACClassDatabase.h
26107
 
 *  An ACClassDatabase object is an AspectC++ specific database of all  
26108
 
 *  aspect, slice, and pointcut info objects. */
26109
 
 
26110
 
#line 26111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
26111
 
} // closed Puma
26112
 
class WinIfExists;
26113
 
class WinImportHandler;
26114
 
class WinMacros;
26115
 
class CMatchSyntax;
26116
 
class ExtGnu;
26117
 
class ExtAC;
26118
 
class ExtACBuilderCoupling;
26119
 
class ExtACSyntaxCoupling;
26120
 
class ExtACTree;
26121
 
class ExtACKeywords;
26122
 
class WinAsm;
26123
 
class WinDeclSpecs;
26124
 
class WinMemberExplSpec;
26125
 
class WinTypeKeywords;
26126
 
class PragmaOnceUnitState;
26127
 
class PragmaOnce;
26128
 
class CCExprResolve;
26129
 
class CExprResolve;
26130
 
namespace Puma {
26131
 
 
26132
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
26133
 
class ACClassDatabase {
26134
 
#line 26135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
26135
 
  friend class ::WinIfExists;
26136
 
  friend class ::WinImportHandler;
26137
 
  friend class ::WinMacros;
26138
 
  friend class ::CMatchSyntax;
26139
 
  friend class ::ExtGnu;
26140
 
  friend class ::ExtAC;
26141
 
  friend class ::ExtACBuilderCoupling;
26142
 
  friend class ::ExtACSyntaxCoupling;
26143
 
  friend class ::ExtACTree;
26144
 
  friend class ::ExtACKeywords;
26145
 
  friend class ::WinAsm;
26146
 
  friend class ::WinDeclSpecs;
26147
 
  friend class ::WinMemberExplSpec;
26148
 
  friend class ::WinTypeKeywords;
26149
 
  friend class ::PragmaOnceUnitState;
26150
 
  friend class ::PragmaOnce;
26151
 
  friend class ::CCExprResolve;
26152
 
  friend class ::CExprResolve;
26153
 
 
26154
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
26155
 
 
26156
 
  Array<ACAspectInfo*>   _aspect;   // index of aspects
26157
 
  Array<ACPointcutInfo*> _pointcut; // index of pointcuts
26158
 
  Array<ACSliceInfo*>    _slice;    // index of slices
26159
 
 
26160
 
  void clear (); // release all allocated heap objects
26161
 
  
26162
 
public:
26163
 
  /** Destruct the database. Destroys all aspect and pointcut infos
26164
 
   *  in the database. */
26165
 
  virtual ~ACClassDatabase ();
26166
 
 
26167
 
  // access to the database entries /////////////////////////////
26168
 
  
26169
 
  /** Get the number of aspect infos in the database. */
26170
 
  int AspectInfos () const { return _aspect.length (); }
26171
 
  /** Get the n-th aspect info. 
26172
 
   *  \param n The number of the aspect info.
26173
 
   *  \return The aspect info or \c NULL if \e n is invalid. */
26174
 
  ACAspectInfo *AspectInfo (int n) const { return _aspect.lookup (n); }
26175
 
  /** Get the info of the aspect with the given name.
26176
 
   *  \param n The name of the aspect. 
26177
 
   *  \return The aspect info or \c NULL if there is no aspect with that name. */
26178
 
  ACAspectInfo *AspectInfo (const char *n) const;
26179
 
  /** Get the aspect info according to the given class info. 
26180
 
   *  \param ci The class info of the aspect. 
26181
 
   *  \return The aspect info or \c NULL if no matching aspect was found. */
26182
 
  ACAspectInfo *AspectInfo (CClassInfo *ci) const;
26183
 
  /** Get the number of pointcut infos in the database. */
26184
 
  int PointcutInfos () const { return _pointcut.length (); }
26185
 
  /** Get the n-th pointcut info. 
26186
 
   *  \param n The number of the pointcut info.
26187
 
   *  \return The pointcut info or \c NULL if \e n is invalid. */
26188
 
  ACPointcutInfo *PointcutInfo (int n) const { return _pointcut.lookup (n); }
26189
 
  /** Get the pointcut info according to the given function info. 
26190
 
   *  \param fi The function info of the pointcut. 
26191
 
   *  \return The pointcut info or \c NULL if no matching pointcut was found. */
26192
 
  ACPointcutInfo *PointcutInfo (CFunctionInfo* fi) const;
26193
 
  /** Get the number of slice infos in the database. */
26194
 
  int SliceInfos () const { return _slice.length (); }
26195
 
  /** Get the n-th slice info. 
26196
 
   *  \param n The number of the slice info.
26197
 
   *  \return The slice info or \c NULL if \e n is invalid. */
26198
 
  ACSliceInfo *SliceInfo (int n) const { return _slice.lookup (n); }
26199
 
  /** Get the slice info that is represented by the given object info.
26200
 
   *  \param oi The object info of the slice. 
26201
 
   *  \return The slice info or \c NULL if no matching slice was found. */
26202
 
  ACSliceInfo *SliceInfo (CObjectInfo* oi) const;
26203
 
  
26204
 
public:
26205
 
  // Administration /////////////////////////////////////////////
26206
 
 
26207
 
  /** Create a new aspect info from the given class info.
26208
 
   *  The info is added to the database.
26209
 
   *  \param ci The class info. */
26210
 
  ACAspectInfo *new_aspect (CClassInfo *ci);
26211
 
  /** Create a new pointcut info from the given function info.
26212
 
   *  The info is added to the database.
26213
 
   *  \param ci The function info. */
26214
 
  ACPointcutInfo *new_pointcut (CFunctionInfo *fi);
26215
 
  /** Create a new slice info from the given object info.
26216
 
   *  The info is added to the database.
26217
 
   *  \param oi The object info. */
26218
 
  ACSliceInfo *new_slice (CObjectInfo *oi);
26219
 
 
26220
 
  /** Dump the contents of the database. 
26221
 
   *  \param out The output stream to dump to. 
26222
 
   *  \param level The output level (not yet used). */
26223
 
  void Dump (ostream &out, int level = 0) const;
26224
 
};
26225
 
 
26226
 
inline ACClassDatabase::~ACClassDatabase () {
26227
 
  clear ();
26228
 
}
26229
 
 
26230
 
} // namespace Puma
26231
 
 
26232
 
#endif /* __ACClassDatabase_h__ */
26233
 
 
26234
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
26235
 
// This file is part of PUMA.
26236
 
// Copyright (C) 1999-2003  The PUMA developer team.
26237
 
//                                                                
26238
 
// This program is free software;  you can redistribute it and/or 
26239
 
// modify it under the terms of the GNU General Public License as 
26240
 
// published by the Free Software Foundation; either version 2 of 
26241
 
// the License, or (at your option) any later version.            
26242
 
//                                                                
26243
 
// This program is distributed in the hope that it will be useful,
26244
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
26245
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
26246
 
// GNU General Public License for more details.                   
26247
 
//                                                                
26248
 
// You should have received a copy of the GNU General Public      
26249
 
// License along with this program; if not, write to the Free     
26250
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
26251
 
// MA  02111-1307  USA                                            
26252
 
 
26253
 
#ifndef __ACAspectInfo_h__
26254
 
#define __ACAspectInfo_h__
26255
 
 
26256
 
#include <set>
26257
 
using std::set;
26258
 
 
26259
 
 
26260
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
26261
 
// This file is part of PUMA.
26262
 
// Copyright (C) 1999-2003  The PUMA developer team.
26263
 
//                                                                
26264
 
// This program is free software;  you can redistribute it and/or 
26265
 
// modify it under the terms of the GNU General Public License as 
26266
 
// published by the Free Software Foundation; either version 2 of 
26267
 
// the License, or (at your option) any later version.            
26268
 
//                                                                
26269
 
// This program is distributed in the hope that it will be useful,
26270
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
26271
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
26272
 
// GNU General Public License for more details.                   
26273
 
//                                                                
26274
 
// You should have received a copy of the GNU General Public      
26275
 
// License along with this program; if not, write to the Free     
26276
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
26277
 
// MA  02111-1307  USA                                            
26278
 
 
26279
 
#ifndef __CClassInfo_h__
26280
 
#define __CClassInfo_h__
26281
 
 
26282
 
// class/struct info 
26283
 
// knows its base and derived classes
26284
 
 
26285
 
 
26286
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
26287
 
// This file is part of PUMA.
26288
 
// Copyright (C) 1999-2003  The PUMA developer team.
26289
 
//                                                                
26290
 
// This program is free software;  you can redistribute it and/or 
26291
 
// modify it under the terms of the GNU General Public License as 
26292
 
// published by the Free Software Foundation; either version 2 of 
26293
 
// the License, or (at your option) any later version.            
26294
 
//                                                                
26295
 
// This program is distributed in the hope that it will be useful,
26296
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
26297
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
26298
 
// GNU General Public License for more details.                   
26299
 
//                                                                
26300
 
// You should have received a copy of the GNU General Public      
26301
 
// License along with this program; if not, write to the Free     
26302
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
26303
 
// MA  02111-1307  USA                                            
26304
 
 
26305
 
#ifndef __CRecord_h__
26306
 
#define __CRecord_h__
26307
 
 
26308
 
// base class of class and union infos
26309
 
 
26310
 
 
26311
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
26312
 
// This file is part of PUMA.
26313
 
// Copyright (C) 1999-2003  The PUMA developer team.
26314
 
//                                                                
26315
 
// This program is free software;  you can redistribute it and/or 
26316
 
// modify it under the terms of the GNU General Public License as 
26317
 
// published by the Free Software Foundation; either version 2 of 
26318
 
// the License, or (at your option) any later version.            
26319
 
//                                                                
26320
 
// This program is distributed in the hope that it will be useful,
26321
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
26322
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
26323
 
// GNU General Public License for more details.                   
26324
 
//                                                                
26325
 
// You should have received a copy of the GNU General Public      
26326
 
// License along with this program; if not, write to the Free     
26327
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
26328
 
// MA  02111-1307  USA                                            
26329
 
 
26330
 
#ifndef __CStructure_h__
26331
 
#define __CStructure_h__
26332
 
 
26333
 
// base class of everything that also is a scope
26334
 
// (function, class, union, namespace...)
26335
 
// stores semantic info objects for variables, 
26336
 
// enumerators, function and template parameters,
26337
 
// typedefs, classes, unions, enumerations, 
26338
 
// namespaces, using-directives, friend function 
26339
 
// declarations, functions, class methods, class 
26340
 
// data members, function and class templates,
26341
 
// function and class template instances, member 
26342
 
// aliases
26343
 
 
26344
 
 
26345
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
19382
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp);
 
19383
  template <class JoinPoint>
 
19384
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp);
 
19385
  template <class JoinPoint>
 
19386
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp);
 
19387
  template <class JoinPoint>
 
19388
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp);
 
19389
  template <class JoinPoint>
 
19390
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp);
 
19391
  template <class JoinPoint>
 
19392
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp);
 
19393
  template <class JoinPoint>
 
19394
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp);
 
19395
  template <class JoinPoint>
 
19396
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp);
 
19397
  template <class JoinPoint>
 
19398
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp);
 
19399
  template <class JoinPoint>
 
19400
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp);
 
19401
  template <class JoinPoint>
 
19402
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp);
 
19403
  template <class JoinPoint>
 
19404
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a11_after (JoinPoint *tjp);
 
19405
}
 
19406
#endif
 
19407
 
 
19408
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
19409
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
19410
#endif
 
19411
 
 
19412
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
19413
// This file is part of PUMA.
 
19414
// Copyright (C) 1999-2003  The PUMA developer team.
 
19415
//                                                                
 
19416
// This program is free software;  you can redistribute it and/or 
 
19417
// modify it under the terms of the GNU General Public License as 
 
19418
// published by the Free Software Foundation; either version 2 of 
 
19419
// the License, or (at your option) any later version.            
 
19420
//                                                                
 
19421
// This program is distributed in the hope that it will be useful,
 
19422
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
19423
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
19424
// GNU General Public License for more details.                   
 
19425
//                                                                
 
19426
// You should have received a copy of the GNU General Public      
 
19427
// License along with this program; if not, write to the Free     
 
19428
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
19429
// MA  02111-1307  USA                                            
 
19430
 
 
19431
#ifndef __CClassDatabase_h__
 
19432
#define __CClassDatabase_h__
 
19433
 
 
19434
 
 
19435
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
26346
19436
// This file is part of PUMA.
26347
19437
// Copyright (C) 1999-2003  The PUMA developer team.
26348
19438
//                                                                
26367
19457
// scope info
26368
19458
 
26369
19459
 
26370
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
19460
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
26371
19461
// This file is part of PUMA.
26372
19462
// Copyright (C) 1999-2003  The PUMA developer team.
26373
19463
//                                                                
26401
19491
// to the same entity
26402
19492
 
26403
19493
 
26404
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
19494
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
26405
19495
// This file is part of PUMA.
26406
19496
// Copyright (C) 1999-2003  The PUMA developer team.
26407
19497
//                                                                
26436
19526
class Unit;
26437
19527
 
26438
19528
 
26439
 
#line 26440 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
19529
#line 19530 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
26440
19530
} // closed Puma
 
19531
class CCExprResolve;
 
19532
class CExprResolve;
26441
19533
class WinIfExists;
26442
19534
class WinImportHandler;
26443
19535
class WinMacros;
26444
 
class CMatchSyntax;
26445
 
class ExtGnu;
 
19536
class WinAsm;
 
19537
class WinDeclSpecs;
 
19538
class WinMemberExplSpec;
 
19539
class WinTypeKeywords;
 
19540
class WinFriend;
26446
19541
class ExtAC;
26447
19542
class ExtACBuilderCoupling;
26448
19543
class ExtACSyntaxCoupling;
26449
19544
class ExtACTree;
26450
19545
class ExtACKeywords;
26451
 
class WinAsm;
26452
 
class WinDeclSpecs;
26453
 
class WinMemberExplSpec;
26454
 
class WinTypeKeywords;
 
19546
class ExtGnu;
26455
19547
class PragmaOnceUnitState;
26456
19548
class PragmaOnce;
26457
 
class CCExprResolve;
26458
 
class CExprResolve;
 
19549
class CMatchSyntax;
26459
19550
namespace Puma {
26460
19551
 
26461
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
19552
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
26462
19553
class CSourceInfo {
26463
 
#line 26464 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
19554
#line 19555 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
19555
  friend class ::CCExprResolve;
 
19556
  friend class ::CExprResolve;
26464
19557
  friend class ::WinIfExists;
26465
19558
  friend class ::WinImportHandler;
26466
19559
  friend class ::WinMacros;
26467
 
  friend class ::CMatchSyntax;
26468
 
  friend class ::ExtGnu;
 
19560
  friend class ::WinAsm;
 
19561
  friend class ::WinDeclSpecs;
 
19562
  friend class ::WinMemberExplSpec;
 
19563
  friend class ::WinTypeKeywords;
 
19564
  friend class ::WinFriend;
26469
19565
  friend class ::ExtAC;
26470
19566
  friend class ::ExtACBuilderCoupling;
26471
19567
  friend class ::ExtACSyntaxCoupling;
26472
19568
  friend class ::ExtACTree;
26473
19569
  friend class ::ExtACKeywords;
26474
 
  friend class ::WinAsm;
26475
 
  friend class ::WinDeclSpecs;
26476
 
  friend class ::WinMemberExplSpec;
26477
 
  friend class ::WinTypeKeywords;
 
19570
  friend class ::ExtGnu;
26478
19571
  friend class ::PragmaOnceUnitState;
26479
19572
  friend class ::PragmaOnce;
26480
 
  friend class ::CCExprResolve;
26481
 
  friend class ::CExprResolve;
 
19573
  friend class ::CMatchSyntax;
26482
19574
 
26483
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
 
19575
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSourceInfo.h"
26484
19576
 
26485
19577
  CFileInfo *_FileInfo; 
26486
19578
  CT_Token *_StartToken;
26554
19646
 
26555
19647
#endif /* __CSourceInfo_h__ */
26556
19648
 
26557
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
19649
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
26558
19650
// This file is part of PUMA.
26559
19651
// Copyright (C) 1999-2003  The PUMA developer team.
26560
19652
//                                                                
26582
19674
 
26583
19675
 
26584
19676
 
26585
 
#line 26586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
19677
#line 19678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
26586
19678
} // closed Puma
 
19679
class CCExprResolve;
 
19680
class CExprResolve;
26587
19681
class WinIfExists;
26588
19682
class WinImportHandler;
26589
19683
class WinMacros;
26590
 
class CMatchSyntax;
26591
 
class ExtGnu;
 
19684
class WinAsm;
 
19685
class WinDeclSpecs;
 
19686
class WinMemberExplSpec;
 
19687
class WinTypeKeywords;
 
19688
class WinFriend;
26592
19689
class ExtAC;
26593
19690
class ExtACBuilderCoupling;
26594
19691
class ExtACSyntaxCoupling;
26595
19692
class ExtACTree;
26596
19693
class ExtACKeywords;
26597
 
class WinAsm;
26598
 
class WinDeclSpecs;
26599
 
class WinMemberExplSpec;
26600
 
class WinTypeKeywords;
 
19694
class ExtGnu;
26601
19695
class PragmaOnceUnitState;
26602
19696
class PragmaOnce;
26603
 
class CCExprResolve;
26604
 
class CExprResolve;
 
19697
class CMatchSyntax;
26605
19698
namespace Puma {
26606
19699
 
26607
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
19700
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
26608
19701
struct CProtection {
26609
 
#line 26610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
19702
#line 19703 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
19703
  friend class ::CCExprResolve;
 
19704
  friend class ::CExprResolve;
26610
19705
  friend class ::WinIfExists;
26611
19706
  friend class ::WinImportHandler;
26612
19707
  friend class ::WinMacros;
26613
 
  friend class ::CMatchSyntax;
26614
 
  friend class ::ExtGnu;
 
19708
  friend class ::WinAsm;
 
19709
  friend class ::WinDeclSpecs;
 
19710
  friend class ::WinMemberExplSpec;
 
19711
  friend class ::WinTypeKeywords;
 
19712
  friend class ::WinFriend;
26615
19713
  friend class ::ExtAC;
26616
19714
  friend class ::ExtACBuilderCoupling;
26617
19715
  friend class ::ExtACSyntaxCoupling;
26618
19716
  friend class ::ExtACTree;
26619
19717
  friend class ::ExtACKeywords;
26620
 
  friend class ::WinAsm;
26621
 
  friend class ::WinDeclSpecs;
26622
 
  friend class ::WinMemberExplSpec;
26623
 
  friend class ::WinTypeKeywords;
 
19718
  friend class ::ExtGnu;
26624
19719
  friend class ::PragmaOnceUnitState;
26625
19720
  friend class ::PragmaOnce;
26626
 
  friend class ::CCExprResolve;
26627
 
  friend class ::CExprResolve;
 
19721
  friend class ::CMatchSyntax;
26628
19722
 
26629
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProtection.h"
 
19723
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProtection.h"
26630
19724
 
26631
19725
  enum Type {
26632
19726
    PROT_PUBLIC, 
26641
19735
 
26642
19736
#endif /* __CProtection_h__ */
26643
19737
 
26644
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
19738
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
26645
19739
// This file is part of PUMA.
26646
19740
// Copyright (C) 1999-2003  The PUMA developer team.
26647
19741
//                                                                
26669
19763
 
26670
19764
 
26671
19765
 
26672
 
#line 26673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
19766
#line 19767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
26673
19767
} // closed Puma
 
19768
class CCExprResolve;
 
19769
class CExprResolve;
26674
19770
class WinIfExists;
26675
19771
class WinImportHandler;
26676
19772
class WinMacros;
26677
 
class CMatchSyntax;
26678
 
class ExtGnu;
 
19773
class WinAsm;
 
19774
class WinDeclSpecs;
 
19775
class WinMemberExplSpec;
 
19776
class WinTypeKeywords;
 
19777
class WinFriend;
26679
19778
class ExtAC;
26680
19779
class ExtACBuilderCoupling;
26681
19780
class ExtACSyntaxCoupling;
26682
19781
class ExtACTree;
26683
19782
class ExtACKeywords;
26684
 
class WinAsm;
26685
 
class WinDeclSpecs;
26686
 
class WinMemberExplSpec;
26687
 
class WinTypeKeywords;
 
19783
class ExtGnu;
26688
19784
class PragmaOnceUnitState;
26689
19785
class PragmaOnce;
26690
 
class CCExprResolve;
26691
 
class CExprResolve;
 
19786
class CMatchSyntax;
26692
19787
namespace Puma {
26693
19788
 
26694
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
19789
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
26695
19790
struct CStorage {
26696
 
#line 26697 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
19791
#line 19792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
19792
  friend class ::CCExprResolve;
 
19793
  friend class ::CExprResolve;
26697
19794
  friend class ::WinIfExists;
26698
19795
  friend class ::WinImportHandler;
26699
19796
  friend class ::WinMacros;
26700
 
  friend class ::CMatchSyntax;
26701
 
  friend class ::ExtGnu;
 
19797
  friend class ::WinAsm;
 
19798
  friend class ::WinDeclSpecs;
 
19799
  friend class ::WinMemberExplSpec;
 
19800
  friend class ::WinTypeKeywords;
 
19801
  friend class ::WinFriend;
26702
19802
  friend class ::ExtAC;
26703
19803
  friend class ::ExtACBuilderCoupling;
26704
19804
  friend class ::ExtACSyntaxCoupling;
26705
19805
  friend class ::ExtACTree;
26706
19806
  friend class ::ExtACKeywords;
26707
 
  friend class ::WinAsm;
26708
 
  friend class ::WinDeclSpecs;
26709
 
  friend class ::WinMemberExplSpec;
26710
 
  friend class ::WinTypeKeywords;
 
19807
  friend class ::ExtGnu;
26711
19808
  friend class ::PragmaOnceUnitState;
26712
19809
  friend class ::PragmaOnce;
26713
 
  friend class ::CCExprResolve;
26714
 
  friend class ::CExprResolve;
 
19810
  friend class ::CMatchSyntax;
26715
19811
 
26716
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStorage.h"
 
19812
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStorage.h"
26717
19813
 
26718
19814
  enum Type {
26719
19815
    CLASS_STATIC,
26728
19824
 
26729
19825
#endif /* __CStorage_h__ */
26730
19826
 
26731
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
 
19827
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.h"
26732
19828
// This file is part of PUMA.
26733
19829
// Copyright (C) 1999-2003  The PUMA developer team.
26734
19830
//                                                                
26756
19852
 
26757
19853
 
26758
19854
 
26759
 
#line 26760 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
19855
#line 19856 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
26760
19856
} // closed Puma
 
19857
class CCExprResolve;
 
19858
class CExprResolve;
26761
19859
class WinIfExists;
26762
19860
class WinImportHandler;
26763
19861
class WinMacros;
26764
 
class CMatchSyntax;
26765
 
class ExtGnu;
 
19862
class WinAsm;
 
19863
class WinDeclSpecs;
 
19864
class WinMemberExplSpec;
 
19865
class WinTypeKeywords;
 
19866
class WinFriend;
26766
19867
class ExtAC;
26767
19868
class ExtACBuilderCoupling;
26768
19869
class ExtACSyntaxCoupling;
26769
19870
class ExtACTree;
26770
19871
class ExtACKeywords;
26771
 
class WinAsm;
26772
 
class WinDeclSpecs;
26773
 
class WinMemberExplSpec;
26774
 
class WinTypeKeywords;
 
19872
class ExtGnu;
26775
19873
class PragmaOnceUnitState;
26776
19874
class PragmaOnce;
26777
 
class CCExprResolve;
26778
 
class CExprResolve;
 
19875
class CMatchSyntax;
26779
19876
namespace Puma {
26780
19877
 
26781
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
 
19878
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.h"
26782
19879
struct CLinkage {
26783
 
#line 26784 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
19880
#line 19881 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
19881
  friend class ::CCExprResolve;
 
19882
  friend class ::CExprResolve;
26784
19883
  friend class ::WinIfExists;
26785
19884
  friend class ::WinImportHandler;
26786
19885
  friend class ::WinMacros;
26787
 
  friend class ::CMatchSyntax;
26788
 
  friend class ::ExtGnu;
 
19886
  friend class ::WinAsm;
 
19887
  friend class ::WinDeclSpecs;
 
19888
  friend class ::WinMemberExplSpec;
 
19889
  friend class ::WinTypeKeywords;
 
19890
  friend class ::WinFriend;
26789
19891
  friend class ::ExtAC;
26790
19892
  friend class ::ExtACBuilderCoupling;
26791
19893
  friend class ::ExtACSyntaxCoupling;
26792
19894
  friend class ::ExtACTree;
26793
19895
  friend class ::ExtACKeywords;
26794
 
  friend class ::WinAsm;
26795
 
  friend class ::WinDeclSpecs;
26796
 
  friend class ::WinMemberExplSpec;
26797
 
  friend class ::WinTypeKeywords;
 
19896
  friend class ::ExtGnu;
26798
19897
  friend class ::PragmaOnceUnitState;
26799
19898
  friend class ::PragmaOnce;
26800
 
  friend class ::CCExprResolve;
26801
 
  friend class ::CExprResolve;
 
19899
  friend class ::CMatchSyntax;
26802
19900
 
26803
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLinkage.h"
 
19901
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLinkage.h"
26804
19902
 
26805
19903
  enum Type {
26806
19904
    LINK_INTERNAL, 
26814
19912
 
26815
19913
#endif /* __CLinkage_h__ */
26816
19914
 
26817
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
19915
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
26818
19916
// This file is part of PUMA.
26819
19917
// Copyright (C) 1999-2003  The PUMA developer team.
26820
19918
//                                                                
26837
19935
#define __CLanguage_h__
26838
19936
 
26839
19937
 
26840
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
19938
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
26841
19939
// Entity name encoding language; language linkage
26842
19940
 
26843
19941
namespace Puma {
26844
19942
 
26845
19943
 
26846
19944
 
26847
 
#line 26848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
19945
#line 19946 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
26848
19946
} // closed Puma
 
19947
class CCExprResolve;
 
19948
class CExprResolve;
26849
19949
class WinIfExists;
26850
19950
class WinImportHandler;
26851
19951
class WinMacros;
26852
 
class CMatchSyntax;
26853
 
class ExtGnu;
 
19952
class WinAsm;
 
19953
class WinDeclSpecs;
 
19954
class WinMemberExplSpec;
 
19955
class WinTypeKeywords;
 
19956
class WinFriend;
26854
19957
class ExtAC;
26855
19958
class ExtACBuilderCoupling;
26856
19959
class ExtACSyntaxCoupling;
26857
19960
class ExtACTree;
26858
19961
class ExtACKeywords;
26859
 
class WinAsm;
26860
 
class WinDeclSpecs;
26861
 
class WinMemberExplSpec;
26862
 
class WinTypeKeywords;
 
19962
class ExtGnu;
26863
19963
class PragmaOnceUnitState;
26864
19964
class PragmaOnce;
26865
 
class CCExprResolve;
26866
 
class CExprResolve;
 
19965
class CMatchSyntax;
26867
19966
namespace Puma {
26868
19967
 
26869
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
19968
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
26870
19969
class CLanguage {
26871
 
#line 26872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
19970
#line 19971 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
19971
  friend class ::CCExprResolve;
 
19972
  friend class ::CExprResolve;
26872
19973
  friend class ::WinIfExists;
26873
19974
  friend class ::WinImportHandler;
26874
19975
  friend class ::WinMacros;
26875
 
  friend class ::CMatchSyntax;
26876
 
  friend class ::ExtGnu;
 
19976
  friend class ::WinAsm;
 
19977
  friend class ::WinDeclSpecs;
 
19978
  friend class ::WinMemberExplSpec;
 
19979
  friend class ::WinTypeKeywords;
 
19980
  friend class ::WinFriend;
26877
19981
  friend class ::ExtAC;
26878
19982
  friend class ::ExtACBuilderCoupling;
26879
19983
  friend class ::ExtACSyntaxCoupling;
26880
19984
  friend class ::ExtACTree;
26881
19985
  friend class ::ExtACKeywords;
26882
 
  friend class ::WinAsm;
26883
 
  friend class ::WinDeclSpecs;
26884
 
  friend class ::WinMemberExplSpec;
26885
 
  friend class ::WinTypeKeywords;
 
19986
  friend class ::ExtGnu;
26886
19987
  friend class ::PragmaOnceUnitState;
26887
19988
  friend class ::PragmaOnce;
26888
 
  friend class ::CCExprResolve;
26889
 
  friend class ::CExprResolve;
 
19989
  friend class ::CMatchSyntax;
26890
19990
 
26891
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CLanguage.h"
 
19991
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CLanguage.h"
26892
19992
 
26893
19993
public:
26894
19994
  enum LangType {
26924
20024
 
26925
20025
#endif /* __CLanguage_h__ */
26926
20026
 
26927
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
20027
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
26928
20028
// This file is part of PUMA.
26929
20029
// Copyright (C) 1999-2003  The PUMA developer team.
26930
20030
//                                                                
26952
20052
 
26953
20053
 
26954
20054
 
26955
 
#line 26956 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
20055
#line 20056 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
26956
20056
} // closed Puma
 
20057
class CCExprResolve;
 
20058
class CExprResolve;
26957
20059
class WinIfExists;
26958
20060
class WinImportHandler;
26959
20061
class WinMacros;
26960
 
class CMatchSyntax;
26961
 
class ExtGnu;
 
20062
class WinAsm;
 
20063
class WinDeclSpecs;
 
20064
class WinMemberExplSpec;
 
20065
class WinTypeKeywords;
 
20066
class WinFriend;
26962
20067
class ExtAC;
26963
20068
class ExtACBuilderCoupling;
26964
20069
class ExtACSyntaxCoupling;
26965
20070
class ExtACTree;
26966
20071
class ExtACKeywords;
26967
 
class WinAsm;
26968
 
class WinDeclSpecs;
26969
 
class WinMemberExplSpec;
26970
 
class WinTypeKeywords;
 
20072
class ExtGnu;
26971
20073
class PragmaOnceUnitState;
26972
20074
class PragmaOnce;
26973
 
class CCExprResolve;
26974
 
class CExprResolve;
 
20075
class CMatchSyntax;
26975
20076
namespace Puma {
26976
20077
 
26977
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
20078
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
26978
20079
class CSpecifiers {
26979
 
#line 26980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
20080
#line 20081 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
20081
  friend class ::CCExprResolve;
 
20082
  friend class ::CExprResolve;
26980
20083
  friend class ::WinIfExists;
26981
20084
  friend class ::WinImportHandler;
26982
20085
  friend class ::WinMacros;
26983
 
  friend class ::CMatchSyntax;
26984
 
  friend class ::ExtGnu;
 
20086
  friend class ::WinAsm;
 
20087
  friend class ::WinDeclSpecs;
 
20088
  friend class ::WinMemberExplSpec;
 
20089
  friend class ::WinTypeKeywords;
 
20090
  friend class ::WinFriend;
26985
20091
  friend class ::ExtAC;
26986
20092
  friend class ::ExtACBuilderCoupling;
26987
20093
  friend class ::ExtACSyntaxCoupling;
26988
20094
  friend class ::ExtACTree;
26989
20095
  friend class ::ExtACKeywords;
26990
 
  friend class ::WinAsm;
26991
 
  friend class ::WinDeclSpecs;
26992
 
  friend class ::WinMemberExplSpec;
26993
 
  friend class ::WinTypeKeywords;
 
20096
  friend class ::ExtGnu;
26994
20097
  friend class ::PragmaOnceUnitState;
26995
20098
  friend class ::PragmaOnce;
26996
 
  friend class ::CCExprResolve;
26997
 
  friend class ::CExprResolve;
 
20099
  friend class ::CMatchSyntax;
26998
20100
 
26999
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
 
20101
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSpecifiers.h"
27000
20102
 
27001
20103
public:
27002
20104
  enum Spec {
27050
20152
 
27051
20153
#endif /* __CSpecifiers__ */
27052
20154
 
27053
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
20155
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
27054
20156
namespace Puma {
27055
20157
 
27056
20158
 
27084
20186
class CTemplateInstance;
27085
20187
 
27086
20188
 
27087
 
#line 27088 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
20189
#line 20190 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
27088
20190
} // closed Puma
 
20191
class CCExprResolve;
 
20192
class CExprResolve;
27089
20193
class WinIfExists;
27090
20194
class WinImportHandler;
27091
20195
class WinMacros;
27092
 
class CMatchSyntax;
27093
 
class ExtGnu;
 
20196
class WinAsm;
 
20197
class WinDeclSpecs;
 
20198
class WinMemberExplSpec;
 
20199
class WinTypeKeywords;
 
20200
class WinFriend;
27094
20201
class ExtAC;
27095
20202
class ExtACBuilderCoupling;
27096
20203
class ExtACSyntaxCoupling;
27097
20204
class ExtACTree;
27098
20205
class ExtACKeywords;
27099
 
class WinAsm;
27100
 
class WinDeclSpecs;
27101
 
class WinMemberExplSpec;
27102
 
class WinTypeKeywords;
 
20206
class ExtGnu;
27103
20207
class PragmaOnceUnitState;
27104
20208
class PragmaOnce;
27105
 
class CCExprResolve;
27106
 
class CExprResolve;
 
20209
class CMatchSyntax;
27107
20210
namespace Puma {
27108
20211
 
27109
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
20212
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
27110
20213
class CObjectInfo {
27111
 
#line 27112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
20214
#line 20215 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
20215
  friend class ::CCExprResolve;
 
20216
  friend class ::CExprResolve;
27112
20217
  friend class ::WinIfExists;
27113
20218
  friend class ::WinImportHandler;
27114
20219
  friend class ::WinMacros;
27115
 
  friend class ::CMatchSyntax;
27116
 
  friend class ::ExtGnu;
 
20220
  friend class ::WinAsm;
 
20221
  friend class ::WinDeclSpecs;
 
20222
  friend class ::WinMemberExplSpec;
 
20223
  friend class ::WinTypeKeywords;
 
20224
  friend class ::WinFriend;
27117
20225
  friend class ::ExtAC;
27118
20226
  friend class ::ExtACBuilderCoupling;
27119
20227
  friend class ::ExtACSyntaxCoupling;
27120
20228
  friend class ::ExtACTree;
27121
20229
  friend class ::ExtACKeywords;
27122
 
  friend class ::WinAsm;
27123
 
  friend class ::WinDeclSpecs;
27124
 
  friend class ::WinMemberExplSpec;
27125
 
  friend class ::WinTypeKeywords;
 
20230
  friend class ::ExtGnu;
27126
20231
  friend class ::PragmaOnceUnitState;
27127
20232
  friend class ::PragmaOnce;
27128
 
  friend class ::CCExprResolve;
27129
 
  friend class ::CExprResolve;
 
20233
  friend class ::CMatchSyntax;
27130
20234
 
27131
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
 
20235
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CObjectInfo.h"
27132
20236
 
27133
20237
protected:
27134
20238
  enum ObjectId {
27159
20263
private:
27160
20264
  DString            _Name;
27161
20265
  const char        *_QualName;         // Full qualified name
 
20266
  bool              _abs, _tdef;        // Flags that were used for QualName()
27162
20267
  CTypeInfo         *_TypeInfo;
27163
20268
  CObjectInfo       *_BaseObject;       // corresponding object of base class
27164
20269
  CObjectInfo       *_Next;             // next linked object
27217
20322
  // Get ...
27218
20323
  ObjectId            Id () const;
27219
20324
  const DString&      Name () const; 
27220
 
  const char         *QualName ();                // created on demand
 
20325
  const char         *QualName (bool abs = false, // created on demand
 
20326
                                bool tdef = false);
27221
20327
  CObjectInfo        *DefObject () const;         // info of the definition
27222
20328
  CTypeInfo          *TypeInfo () const;
27223
20329
  CScopeInfo         *Scope () const;             // enclosing scope
27472
20578
 
27473
20579
#endif /* __CObjectInfo_h__ */
27474
20580
 
27475
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
20581
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
27476
20582
namespace Puma {
27477
20583
 
27478
20584
 
27484
20590
class CTemplateInfo;
27485
20591
 
27486
20592
 
27487
 
#line 27488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
20593
#line 20594 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
27488
20594
} // closed Puma
 
20595
class CCExprResolve;
 
20596
class CExprResolve;
27489
20597
class WinIfExists;
27490
20598
class WinImportHandler;
27491
20599
class WinMacros;
27492
 
class CMatchSyntax;
27493
 
class ExtGnu;
 
20600
class WinAsm;
 
20601
class WinDeclSpecs;
 
20602
class WinMemberExplSpec;
 
20603
class WinTypeKeywords;
 
20604
class WinFriend;
27494
20605
class ExtAC;
27495
20606
class ExtACBuilderCoupling;
27496
20607
class ExtACSyntaxCoupling;
27497
20608
class ExtACTree;
27498
20609
class ExtACKeywords;
27499
 
class WinAsm;
27500
 
class WinDeclSpecs;
27501
 
class WinMemberExplSpec;
27502
 
class WinTypeKeywords;
 
20610
class ExtGnu;
27503
20611
class PragmaOnceUnitState;
27504
20612
class PragmaOnce;
27505
 
class CCExprResolve;
27506
 
class CExprResolve;
 
20613
class CMatchSyntax;
27507
20614
namespace Puma {
27508
20615
 
27509
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
20616
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
27510
20617
class CScopeInfo : public CObjectInfo {
27511
 
#line 27512 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
20618
#line 20619 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
20619
  friend class ::CCExprResolve;
 
20620
  friend class ::CExprResolve;
27512
20621
  friend class ::WinIfExists;
27513
20622
  friend class ::WinImportHandler;
27514
20623
  friend class ::WinMacros;
27515
 
  friend class ::CMatchSyntax;
27516
 
  friend class ::ExtGnu;
 
20624
  friend class ::WinAsm;
 
20625
  friend class ::WinDeclSpecs;
 
20626
  friend class ::WinMemberExplSpec;
 
20627
  friend class ::WinTypeKeywords;
 
20628
  friend class ::WinFriend;
27517
20629
  friend class ::ExtAC;
27518
20630
  friend class ::ExtACBuilderCoupling;
27519
20631
  friend class ::ExtACSyntaxCoupling;
27520
20632
  friend class ::ExtACTree;
27521
20633
  friend class ::ExtACKeywords;
27522
 
  friend class ::WinAsm;
27523
 
  friend class ::WinDeclSpecs;
27524
 
  friend class ::WinMemberExplSpec;
27525
 
  friend class ::WinTypeKeywords;
 
20634
  friend class ::ExtGnu;
27526
20635
  friend class ::PragmaOnceUnitState;
27527
20636
  friend class ::PragmaOnce;
27528
 
  friend class ::CCExprResolve;
27529
 
  friend class ::CExprResolve;
 
20637
  friend class ::CMatchSyntax;
27530
20638
 
27531
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
 
20639
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeInfo.h"
27532
20640
 
27533
20641
  Array<CScopeInfo*> _Children; // child scopes
27534
20642
  CScopeInfo *_Parent; // parent scope
27647
20755
 
27648
20756
#endif /* __CScopeInfo_h__ */
27649
20757
 
27650
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
20758
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
20759
 
 
20760
#line 20761 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
20761
 
 
20762
#ifndef __ac_fwd_ExtACKeywords__
 
20763
#define __ac_fwd_ExtACKeywords__
 
20764
class ExtACKeywords;
 
20765
namespace AC {
 
20766
  template <class JoinPoint>
 
20767
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
20768
  template <class JoinPoint>
 
20769
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
20770
  template <class JoinPoint>
 
20771
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
20772
}
 
20773
#endif
 
20774
 
 
20775
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
20776
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
20777
#endif
 
20778
 
 
20779
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
20780
// This file is part of PUMA.
 
20781
// Copyright (C) 1999-2003  The PUMA developer team.
 
20782
//                                                                
 
20783
// This program is free software;  you can redistribute it and/or 
 
20784
// modify it under the terms of the GNU General Public License as 
 
20785
// published by the Free Software Foundation; either version 2 of 
 
20786
// the License, or (at your option) any later version.            
 
20787
//                                                                
 
20788
// This program is distributed in the hope that it will be useful,
 
20789
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
20790
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
20791
// GNU General Public License for more details.                   
 
20792
//                                                                
 
20793
// You should have received a copy of the GNU General Public      
 
20794
// License along with this program; if not, write to the Free     
 
20795
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
20796
// MA  02111-1307  USA                                            
 
20797
 
 
20798
#ifndef __CProject_h__
 
20799
#define __CProject_h__
 
20800
 
 
20801
// Special project derivation for C++ sources.
 
20802
 
 
20803
 
 
20804
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
20805
// This file is part of PUMA.
 
20806
// Copyright (C) 1999-2003  The PUMA developer team.
 
20807
//                                                                
 
20808
// This program is free software;  you can redistribute it and/or 
 
20809
// modify it under the terms of the GNU General Public License as 
 
20810
// published by the Free Software Foundation; either version 2 of 
 
20811
// the License, or (at your option) any later version.            
 
20812
//                                                                
 
20813
// This program is distributed in the hope that it will be useful,
 
20814
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
20815
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
20816
// GNU General Public License for more details.                   
 
20817
//                                                                
 
20818
// You should have received a copy of the GNU General Public      
 
20819
// License along with this program; if not, write to the Free     
 
20820
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
20821
// MA  02111-1307  USA                                            
 
20822
 
 
20823
#ifndef __Config_h__
 
20824
#define __Config_h__
 
20825
 
 
20826
// Class Config provides evaluation of configuration 
 
20827
// information from file or command line.
 
20828
 
 
20829
 
 
20830
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
20831
// This file is part of PUMA.
 
20832
// Copyright (C) 1999-2003  The PUMA developer team.
 
20833
//                                                                
 
20834
// This program is free software;  you can redistribute it and/or 
 
20835
// modify it under the terms of the GNU General Public License as 
 
20836
// published by the Free Software Foundation; either version 2 of 
 
20837
// the License, or (at your option) any later version.            
 
20838
//                                                                
 
20839
// This program is distributed in the hope that it will be useful,
 
20840
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
20841
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
20842
// GNU General Public License for more details.                   
 
20843
//                                                                
 
20844
// You should have received a copy of the GNU General Public      
 
20845
// License along with this program; if not, write to the Free     
 
20846
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
20847
// MA  02111-1307  USA                                            
 
20848
 
 
20849
#ifndef __Flags_h__
 
20850
#define __Flags_h__
 
20851
 
 
20852
namespace Puma {
 
20853
 
 
20854
 
 
20855
 
 
20856
#line 20857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
20857
} // closed Puma
 
20858
class CCExprResolve;
 
20859
class CExprResolve;
 
20860
class WinIfExists;
 
20861
class WinImportHandler;
 
20862
class WinMacros;
 
20863
class WinAsm;
 
20864
class WinDeclSpecs;
 
20865
class WinMemberExplSpec;
 
20866
class WinTypeKeywords;
 
20867
class WinFriend;
 
20868
class ExtAC;
 
20869
class ExtACBuilderCoupling;
 
20870
class ExtACSyntaxCoupling;
 
20871
class ExtACTree;
 
20872
class ExtACKeywords;
 
20873
class ExtGnu;
 
20874
class PragmaOnceUnitState;
 
20875
class PragmaOnce;
 
20876
class CMatchSyntax;
 
20877
namespace Puma {
 
20878
 
 
20879
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
20880
class Flags {
 
20881
#line 20882 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
20882
  friend class ::CCExprResolve;
 
20883
  friend class ::CExprResolve;
 
20884
  friend class ::WinIfExists;
 
20885
  friend class ::WinImportHandler;
 
20886
  friend class ::WinMacros;
 
20887
  friend class ::WinAsm;
 
20888
  friend class ::WinDeclSpecs;
 
20889
  friend class ::WinMemberExplSpec;
 
20890
  friend class ::WinTypeKeywords;
 
20891
  friend class ::WinFriend;
 
20892
  friend class ::ExtAC;
 
20893
  friend class ::ExtACBuilderCoupling;
 
20894
  friend class ::ExtACSyntaxCoupling;
 
20895
  friend class ::ExtACTree;
 
20896
  friend class ::ExtACKeywords;
 
20897
  friend class ::ExtGnu;
 
20898
  friend class ::PragmaOnceUnitState;
 
20899
  friend class ::PragmaOnce;
 
20900
  friend class ::CMatchSyntax;
 
20901
 
 
20902
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Flags.h"
 
20903
 
 
20904
public:
 
20905
  enum Flag {
 
20906
    NONE                       = 0x0,
 
20907
    
 
20908
    SKIP_FCT_BODY              = 0x1,
 
20909
    SKIP_INITS                 = 0x2,
 
20910
    
 
20911
    // GNU extensions
 
20912
    GNU_NESTED_FCT             = 0x4,
 
20913
    GNU_CONDITION_SCOPE        = 0x8,
 
20914
    GNU_PARAM_DECL             = 0x10,
 
20915
    GNU_FCT_DECL               = 0x20,
 
20916
    GNU_PARAM_SCOPE            = 0x40,
 
20917
    GNU_DEFAULT_ARGS           = 0x80,
 
20918
    GNU_EXTENDED_ASM           = 0x100,
 
20919
    GNU_EXTENDED_EXPR          = 0x200,
 
20920
    GNU_LONG_LONG              = 0x400,
 
20921
    GNU_NAME_SCOPE             = 0x800, 
 
20922
    GNU_IMPLICIT_INT           = 0x1000,
 
20923
    GNU_FCT_ATTRIBUTE          = 0x2000,
 
20924
    GNU_IF_THEN_EXPR           = 0x4000
 
20925
  };
 
20926
  
 
20927
private:
 
20928
  Flag _Flags;
 
20929
  
 
20930
public:
 
20931
  Flags ();
 
20932
  Flags (const Flags &);
 
20933
  Flags &operator =(const Flags &);
 
20934
 
 
20935
  // add/remove flag
 
20936
  Flags &operator +=(Flag);
 
20937
  Flags &operator -=(Flag);
 
20938
  
 
20939
  // test for flag
 
20940
  bool operator ==(Flag) const;
 
20941
  bool operator !=(Flag) const;
 
20942
};
 
20943
 
 
20944
inline Flags::Flags () : _Flags (NONE) 
 
20945
 {}
 
20946
inline Flags::Flags (const Flags &f)
 
20947
 { _Flags = f._Flags; }
 
20948
inline Flags &Flags::operator =(const Flags &f)
 
20949
 { _Flags = f._Flags; return *(Flags*)this; }
 
20950
 
 
20951
inline Flags &Flags::operator +=(Flags::Flag f)
 
20952
 { _Flags = (Flag)(_Flags | f); return *(Flags*)this; }
 
20953
inline Flags &Flags::operator -=(Flags::Flag f)
 
20954
 { _Flags = (Flag)(_Flags ^ (_Flags & f)); return *(Flags*)this; }
 
20955
 
 
20956
inline bool Flags::operator ==(Flags::Flag f) const
 
20957
 { return _Flags & f; }
 
20958
inline bool Flags::operator !=(Flags::Flag f) const
 
20959
 { return ! (_Flags & f); }
 
20960
 
 
20961
 
 
20962
} // namespace Puma
 
20963
 
 
20964
#endif /* __Flags_h__ */
 
20965
 
 
20966
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
20967
// This file is part of PUMA.
 
20968
// Copyright (C) 1999-2003  The PUMA developer team.
 
20969
//                                                                
 
20970
// This program is free software;  you can redistribute it and/or 
 
20971
// modify it under the terms of the GNU General Public License as 
 
20972
// published by the Free Software Foundation; either version 2 of 
 
20973
// the License, or (at your option) any later version.            
 
20974
//                                                                
 
20975
// This program is distributed in the hope that it will be useful,
 
20976
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
20977
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
20978
// GNU General Public License for more details.                   
 
20979
//                                                                
 
20980
// You should have received a copy of the GNU General Public      
 
20981
// License along with this program; if not, write to the Free     
 
20982
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
20983
// MA  02111-1307  USA                                            
 
20984
 
 
20985
#ifndef __ConfOption_h__
 
20986
#define __ConfOption_h__
 
20987
 
 
20988
 
 
20989
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
20990
#include <stdlib.h>
 
20991
 
 
20992
namespace Puma {
 
20993
 
 
20994
 
 
20995
 
 
20996
#line 20997 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
20997
} // closed Puma
 
20998
class CCExprResolve;
 
20999
class CExprResolve;
 
21000
class WinIfExists;
 
21001
class WinImportHandler;
 
21002
class WinMacros;
 
21003
class WinAsm;
 
21004
class WinDeclSpecs;
 
21005
class WinMemberExplSpec;
 
21006
class WinTypeKeywords;
 
21007
class WinFriend;
 
21008
class ExtAC;
 
21009
class ExtACBuilderCoupling;
 
21010
class ExtACSyntaxCoupling;
 
21011
class ExtACTree;
 
21012
class ExtACKeywords;
 
21013
class ExtGnu;
 
21014
class PragmaOnceUnitState;
 
21015
class PragmaOnce;
 
21016
class CMatchSyntax;
 
21017
namespace Puma {
 
21018
 
 
21019
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
21020
class ConfOption {
 
21021
#line 21022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
21022
  friend class ::CCExprResolve;
 
21023
  friend class ::CExprResolve;
 
21024
  friend class ::WinIfExists;
 
21025
  friend class ::WinImportHandler;
 
21026
  friend class ::WinMacros;
 
21027
  friend class ::WinAsm;
 
21028
  friend class ::WinDeclSpecs;
 
21029
  friend class ::WinMemberExplSpec;
 
21030
  friend class ::WinTypeKeywords;
 
21031
  friend class ::WinFriend;
 
21032
  friend class ::ExtAC;
 
21033
  friend class ::ExtACBuilderCoupling;
 
21034
  friend class ::ExtACSyntaxCoupling;
 
21035
  friend class ::ExtACTree;
 
21036
  friend class ::ExtACKeywords;
 
21037
  friend class ::ExtGnu;
 
21038
  friend class ::PragmaOnceUnitState;
 
21039
  friend class ::PragmaOnce;
 
21040
  friend class ::CMatchSyntax;
 
21041
 
 
21042
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ConfOption.h"
 
21043
 
 
21044
  const char *_name;
 
21045
  Array<const char *> _args;
 
21046
  
 
21047
public:
 
21048
  ConfOption (const char *);
 
21049
  ConfOption (const char *, const char *);
 
21050
  ConfOption (const char *, const char *, const char *);
 
21051
  ~ConfOption ();
 
21052
  
 
21053
  const char *Name () const;
 
21054
  unsigned Arguments () const;
 
21055
  const char *Argument (unsigned) const;
 
21056
  
 
21057
  void addArgument (const char *);
 
21058
};
 
21059
 
 
21060
inline ConfOption::ConfOption (const char *n) : _args (1, 1) 
 
21061
 { _name = StrCol::dup (n); }
 
21062
inline ConfOption::ConfOption (const char *n, const char *a1) : _args (1, 1) 
 
21063
 { _name = StrCol::dup (n); addArgument (a1); }
 
21064
inline ConfOption::ConfOption (const char *n, const char *a1, const char *a2) : _args (2, 1) 
 
21065
 { _name = StrCol::dup (n); addArgument (a1); addArgument (a2); }
 
21066
 
 
21067
inline ConfOption::~ConfOption ()
 
21068
 { delete[] _name; 
 
21069
   for (unsigned i = 0; i < Arguments (); i++) 
 
21070
     delete[] Argument (i);
 
21071
 }
 
21072
 
 
21073
inline const char *ConfOption::Name () const 
 
21074
 { return _name; }
 
21075
inline unsigned ConfOption::Arguments () const
 
21076
 { return _args.length (); }
 
21077
inline const char *ConfOption::Argument (unsigned i) const
 
21078
 { return _args.lookup (i); }
 
21079
  
 
21080
inline void ConfOption::addArgument (const char *a) 
 
21081
 { if (a) _args.append (StrCol::dup (a)); }
 
21082
 
 
21083
 
 
21084
} // namespace Puma
 
21085
 
 
21086
#endif /* __ConfOption_h__ */
 
21087
 
 
21088
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
21089
// This file is part of PUMA.
 
21090
// Copyright (C) 1999-2003  The PUMA developer team.
 
21091
//                                                                
 
21092
// This program is free software;  you can redistribute it and/or 
 
21093
// modify it under the terms of the GNU General Public License as 
 
21094
// published by the Free Software Foundation; either version 2 of 
 
21095
// the License, or (at your option) any later version.            
 
21096
//                                                                
 
21097
// This program is distributed in the hope that it will be useful,
 
21098
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
21099
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
21100
// GNU General Public License for more details.                   
 
21101
//                                                                
 
21102
// You should have received a copy of the GNU General Public      
 
21103
// License along with this program; if not, write to the Free     
 
21104
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
21105
// MA  02111-1307  USA                                            
 
21106
 
 
21107
#ifndef __error_stream_h__
 
21108
#define __error_stream_h__
 
21109
 
 
21110
// An ErrorStream is a special ErrorSink that prints out an error message
 
21111
// as soon as it complete. It also stores the maximum error severity.
 
21112
// The ErrorStream can be reset to it's initial state.
 
21113
 
 
21114
 
 
21115
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
21116
using namespace std;
 
21117
 
 
21118
namespace Puma {
 
21119
 
 
21120
 
 
21121
 
 
21122
#line 21123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
21123
} // closed Puma
 
21124
class CCExprResolve;
 
21125
class CExprResolve;
 
21126
class WinIfExists;
 
21127
class WinImportHandler;
 
21128
class WinMacros;
 
21129
class WinAsm;
 
21130
class WinDeclSpecs;
 
21131
class WinMemberExplSpec;
 
21132
class WinTypeKeywords;
 
21133
class WinFriend;
 
21134
class ExtAC;
 
21135
class ExtACBuilderCoupling;
 
21136
class ExtACSyntaxCoupling;
 
21137
class ExtACTree;
 
21138
class ExtACKeywords;
 
21139
class ExtGnu;
 
21140
class PragmaOnceUnitState;
 
21141
class PragmaOnce;
 
21142
class CMatchSyntax;
 
21143
namespace Puma {
 
21144
 
 
21145
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
21146
class ErrorStream : public ErrorSink {
 
21147
#line 21148 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
21148
  friend class ::CCExprResolve;
 
21149
  friend class ::CExprResolve;
 
21150
  friend class ::WinIfExists;
 
21151
  friend class ::WinImportHandler;
 
21152
  friend class ::WinMacros;
 
21153
  friend class ::WinAsm;
 
21154
  friend class ::WinDeclSpecs;
 
21155
  friend class ::WinMemberExplSpec;
 
21156
  friend class ::WinTypeKeywords;
 
21157
  friend class ::WinFriend;
 
21158
  friend class ::ExtAC;
 
21159
  friend class ::ExtACBuilderCoupling;
 
21160
  friend class ::ExtACSyntaxCoupling;
 
21161
  friend class ::ExtACTree;
 
21162
  friend class ::ExtACKeywords;
 
21163
  friend class ::ExtGnu;
 
21164
  friend class ::PragmaOnceUnitState;
 
21165
  friend class ::PragmaOnce;
 
21166
  friend class ::CMatchSyntax;
 
21167
 
 
21168
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
 
21169
 
 
21170
  ostream *_ostream;
 
21171
  ErrorSeverity _max_severity;
 
21172
  ErrorSeverity _curr_severity;
 
21173
  Location _location;
 
21174
  bool _have_location;
 
21175
  std::ostringstream *_msg;
 
21176
  bool _silently;
 
21177
 
 
21178
  void output ();
 
21179
  void clear ();
 
21180
 
 
21181
public:
 
21182
  ErrorStream (std::ostream &s = cerr) : _ostream (&s), _msg ((std::ostringstream*)0)
 
21183
   { reset (); _silently = false; }
 
21184
  virtual ~ErrorStream () { delete _msg; }
 
21185
 
 
21186
  ErrorStream &operator << (const char *);
 
21187
  ErrorStream &operator << (long);
 
21188
  ErrorStream &operator << (unsigned);
 
21189
  ErrorStream &operator << (int);
 
21190
  ErrorStream &operator << (short);
 
21191
  ErrorStream &operator << (char);
 
21192
  ErrorStream &operator << (double);
 
21193
  ErrorStream &operator << (const ErrorSeverity &);
 
21194
  ErrorStream &operator << (Location);
 
21195
  ErrorStream &operator << (const Printable &);
 
21196
  ErrorStream &operator << (void (*f)(ErrorSink &));
 
21197
 
 
21198
  void endMessage ();
 
21199
  void reset ();
 
21200
  void silent ();
 
21201
  void loud ();
 
21202
 
 
21203
  ErrorSeverity severity () const { return _max_severity; }
 
21204
};
 
21205
 
 
21206
 
 
21207
} // namespace Puma
 
21208
 
 
21209
#endif /* __error_stream_h__ */
 
21210
 
 
21211
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
21212
// This file is part of PUMA.
 
21213
// Copyright (C) 1999-2003  The PUMA developer team.
 
21214
//                                                                
 
21215
// This program is free software;  you can redistribute it and/or 
 
21216
// modify it under the terms of the GNU General Public License as 
 
21217
// published by the Free Software Foundation; either version 2 of 
 
21218
// the License, or (at your option) any later version.            
 
21219
//                                                                
 
21220
// This program is distributed in the hope that it will be useful,
 
21221
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
21222
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
21223
// GNU General Public License for more details.                   
 
21224
//                                                                
 
21225
// You should have received a copy of the GNU General Public      
 
21226
// License along with this program; if not, write to the Free     
 
21227
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
21228
// MA  02111-1307  USA                                            
 
21229
 
 
21230
#ifndef __OptsParser_h__
 
21231
#define __OptsParser_h__
 
21232
 
 
21233
 
 
21234
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
21235
// This file is part of PUMA.
 
21236
// Copyright (C) 1999-2003  The PUMA developer team.
 
21237
//                                                                
 
21238
// This program is free software;  you can redistribute it and/or 
 
21239
// modify it under the terms of the GNU General Public License as 
 
21240
// published by the Free Software Foundation; either version 2 of 
 
21241
// the License, or (at your option) any later version.            
 
21242
//                                                                
 
21243
// This program is distributed in the hope that it will be useful,
 
21244
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
21245
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
21246
// GNU General Public License for more details.                   
 
21247
//                                                                
 
21248
// You should have received a copy of the GNU General Public      
 
21249
// License along with this program; if not, write to the Free     
 
21250
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
21251
// MA  02111-1307  USA                                            
 
21252
 
 
21253
#ifndef __SimpleParser_h__
 
21254
#define __SimpleParser_h__
 
21255
 
 
21256
 
 
21257
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
21258
#include <vector>
 
21259
using namespace std;
 
21260
 
 
21261
namespace Puma {
 
21262
 
 
21263
 
 
21264
/** 
 
21265
 * Simple string parser. 
 
21266
 * \class SimpleParser SimpleParser.h Puma/common/SimpleParser.h
 
21267
 */
 
21268
 
 
21269
#line 21270 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
21270
} // closed Puma
 
21271
class CCExprResolve;
 
21272
class CExprResolve;
 
21273
class WinIfExists;
 
21274
class WinImportHandler;
 
21275
class WinMacros;
 
21276
class WinAsm;
 
21277
class WinDeclSpecs;
 
21278
class WinMemberExplSpec;
 
21279
class WinTypeKeywords;
 
21280
class WinFriend;
 
21281
class ExtAC;
 
21282
class ExtACBuilderCoupling;
 
21283
class ExtACSyntaxCoupling;
 
21284
class ExtACTree;
 
21285
class ExtACKeywords;
 
21286
class ExtGnu;
 
21287
class PragmaOnceUnitState;
 
21288
class PragmaOnce;
 
21289
class CMatchSyntax;
 
21290
namespace Puma {
 
21291
 
 
21292
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
21293
class SimpleParser {
 
21294
#line 21295 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
21295
  friend class ::CCExprResolve;
 
21296
  friend class ::CExprResolve;
 
21297
  friend class ::WinIfExists;
 
21298
  friend class ::WinImportHandler;
 
21299
  friend class ::WinMacros;
 
21300
  friend class ::WinAsm;
 
21301
  friend class ::WinDeclSpecs;
 
21302
  friend class ::WinMemberExplSpec;
 
21303
  friend class ::WinTypeKeywords;
 
21304
  friend class ::WinFriend;
 
21305
  friend class ::ExtAC;
 
21306
  friend class ::ExtACBuilderCoupling;
 
21307
  friend class ::ExtACSyntaxCoupling;
 
21308
  friend class ::ExtACTree;
 
21309
  friend class ::ExtACKeywords;
 
21310
  friend class ::ExtGnu;
 
21311
  friend class ::PragmaOnceUnitState;
 
21312
  friend class ::PragmaOnce;
 
21313
  friend class ::CMatchSyntax;
 
21314
 
 
21315
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
 
21316
 
 
21317
public:
 
21318
  /**
 
21319
   * Remove enclosing double-quotes from a string.
 
21320
   * \param str The string to strip.
 
21321
   * \return String without the enclosing double-quotes.
 
21322
   */
 
21323
  static string strip (const string& str);
 
21324
  /**
 
21325
   * Splits a given string into tokens recognized by the given delimiters.
 
21326
   * \param str The string to split.
 
21327
   * \param tokens A vector for the tokens.
 
21328
   * \param delimiters A string with the delimiters. Default is a space or tab.
 
21329
   * \return Number of recognized tokens.
 
21330
   */
 
21331
  static int tokenize (const string& str, vector<string>& tokens, const string& delimiters = " ");
 
21332
 
 
21333
private:
 
21334
  /**
 
21335
   * Get the position of the next token.
 
21336
   * \param line The string to tokenize.
 
21337
   * \param delimiters A string with the token delimiters.
 
21338
   * \param pos The current position in the string.
 
21339
   * \param lastPos The last position in the string.
 
21340
   * \return The position of the next token.
 
21341
   */
 
21342
  static string::size_type next (const string& line, const string& delimiters, string::size_type pos, string::size_type& lastPos);
 
21343
  /**
 
21344
   * Get the begin of the next token.
 
21345
   * \param line The string to tokenize.
 
21346
   * \param delimiters A string with the token delimiters.
 
21347
   * \param pos The current position in the string.
 
21348
   * \return The begin of the next token.
 
21349
   */
 
21350
  static string::size_type findBeginOfNextToken (const string& line, const string& delimiters, string::size_type pos);
 
21351
  /**
 
21352
   * Get the end of the next token.
 
21353
   * \param line The string to tokenize.
 
21354
   * \param delimiters A string with the token delimiters.
 
21355
   * \param lastPos The last position in the string, i.e. the begin of the next token.
 
21356
   * \return The end of the next token.
 
21357
   */
 
21358
  static string::size_type findEndOfNextToken (const string& line, const string& delimiters, string::size_type lastPos);
 
21359
};
 
21360
 
 
21361
 
 
21362
} // namespace Puma
 
21363
 
 
21364
#endif /* __SimpleParser_h__ */
 
21365
 
 
21366
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
21367
using namespace std;
 
21368
 
 
21369
namespace Puma {
 
21370
 
 
21371
 
 
21372
/** \brief The %Options %Parser searches command line parameters for options and
 
21373
 *  handles their option arguments, if applicable.
 
21374
 */
 
21375
 
 
21376
#line 21377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
21377
} // closed Puma
 
21378
class CCExprResolve;
 
21379
class CExprResolve;
 
21380
class WinIfExists;
 
21381
class WinImportHandler;
 
21382
class WinMacros;
 
21383
class WinAsm;
 
21384
class WinDeclSpecs;
 
21385
class WinMemberExplSpec;
 
21386
class WinTypeKeywords;
 
21387
class WinFriend;
 
21388
class ExtAC;
 
21389
class ExtACBuilderCoupling;
 
21390
class ExtACSyntaxCoupling;
 
21391
class ExtACTree;
 
21392
class ExtACKeywords;
 
21393
class ExtGnu;
 
21394
class PragmaOnceUnitState;
 
21395
class PragmaOnce;
 
21396
class CMatchSyntax;
 
21397
namespace Puma {
 
21398
 
 
21399
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
21400
class OptsParser : public SimpleParser {
 
21401
#line 21402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
21402
  friend class ::CCExprResolve;
 
21403
  friend class ::CExprResolve;
 
21404
  friend class ::WinIfExists;
 
21405
  friend class ::WinImportHandler;
 
21406
  friend class ::WinMacros;
 
21407
  friend class ::WinAsm;
 
21408
  friend class ::WinDeclSpecs;
 
21409
  friend class ::WinMemberExplSpec;
 
21410
  friend class ::WinTypeKeywords;
 
21411
  friend class ::WinFriend;
 
21412
  friend class ::ExtAC;
 
21413
  friend class ::ExtACBuilderCoupling;
 
21414
  friend class ::ExtACSyntaxCoupling;
 
21415
  friend class ::ExtACTree;
 
21416
  friend class ::ExtACKeywords;
 
21417
  friend class ::ExtGnu;
 
21418
  friend class ::PragmaOnceUnitState;
 
21419
  friend class ::PragmaOnce;
 
21420
  friend class ::CMatchSyntax;
 
21421
 
 
21422
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
21423
 
 
21424
  
 
21425
  
 
21426
  /** \brief Vector holding the commandline parameters. 
 
21427
   *  
 
21428
   *  This vector is filled in the constructor
 
21429
   */
 
21430
  vector<string> m_argv;
 
21431
 
 
21432
  /** \brief Position of current parameter analyzed by the 
 
21433
   *  options parser.
 
21434
   */
 
21435
  unsigned int m_curarg;
 
21436
  
 
21437
  /** \brief The increment added to m_curarg used to get to the next 
 
21438
   *  entry of m_argv which shall be analysed.
 
21439
   */
 
21440
  unsigned int m_tonext;
 
21441
  
 
21442
  /** \brief %Option number of currently processed element of m_argv
 
21443
   */
 
21444
  int m_number;
 
21445
  
 
21446
  /** \brief Name of current option
 
21447
   */
 
21448
  string m_opt;
 
21449
 
 
21450
  /** \brief Value of current option argument
 
21451
   */
 
21452
  string m_arg;
 
21453
  
 
21454
   
 
21455
public:
 
21456
  
 
21457
  /** \enum
 
21458
   *  Return codes for OptsParser::getOption() and OptsParser::getArgument()
 
21459
   */
 
21460
  enum {
 
21461
     NOARG =-4, /**< %Option has no argument */
 
21462
     ERR = -3, /**< Error when parsing option */
 
21463
     NOOPTION = -2, /**< Command line parameter is not an option */
 
21464
     UNKNOWN = -1, /**< Parameter is an unknown option */
 
21465
     FINISH = 0 /**< All options are handled */
 
21466
  };
 
21467
  
 
21468
  /** \enum
 
21469
   *  Type of argument associated to an option  
 
21470
   */
 
21471
  enum ArgType { 
 
21472
     AT_NONE = 0, /**< %Option receives no argument */
 
21473
     AT_MANDATORY = 1, /**< %Option requires an argument */
 
21474
     AT_OPTIONAL = 2 /**< %Option has optionally an argument */
 
21475
  };
 
21476
  
 
21477
  /** \struct
 
21478
   *  Type for specifying an array of options recognized by the %Option %Parser.
 
21479
   *  An array of this type has to be passed to the constructor OptsParser::OptsParser()
 
21480
   */
 
21481
  struct Option {
 
21482
#line 21483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
21483
  friend class ::CCExprResolve;
 
21484
  friend class ::CExprResolve;
 
21485
  friend class ::WinIfExists;
 
21486
  friend class ::WinImportHandler;
 
21487
  friend class ::WinMacros;
 
21488
  friend class ::WinAsm;
 
21489
  friend class ::WinDeclSpecs;
 
21490
  friend class ::WinMemberExplSpec;
 
21491
  friend class ::WinTypeKeywords;
 
21492
  friend class ::WinFriend;
 
21493
  friend class ::ExtAC;
 
21494
  friend class ::ExtACBuilderCoupling;
 
21495
  friend class ::ExtACSyntaxCoupling;
 
21496
  friend class ::ExtACTree;
 
21497
  friend class ::ExtACKeywords;
 
21498
  friend class ::ExtGnu;
 
21499
  friend class ::PragmaOnceUnitState;
 
21500
  friend class ::PragmaOnce;
 
21501
  friend class ::CMatchSyntax;
 
21502
 
 
21503
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OptsParser.h"
 
21504
 
 
21505
    int number; /**< Number associated with this option */
 
21506
    const char *shortName; /**< Short name of this option. Should ideally not contain more than one character */
 
21507
    const char *longName; /**< Long namen of this option */
 
21508
    const char *desc; /**< Description of this option **/ 
 
21509
    ArgType argType; /**< Type of argument for this option */
 
21510
  };
 
21511
 
 
21512
private:
 
21513
  /** Pointer to array of available options. This value is set to the value of the 
 
21514
   * parameter passed to the constructor OptsParser::OptsParser()
 
21515
   */
 
21516
  const Option *m_opts;
 
21517
   
 
21518
public:
 
21519
  /** \brief Constructor of OptsParser
 
21520
   *  
 
21521
   *  \param argc Number of parameters to be analyzed
 
21522
   *  \param argv Parameters to be analyzed
 
21523
   *  \param opts Pointer to array of options which shall be
 
21524
   *              recognized by the options parser
 
21525
   *
 
21526
   */
 
21527
  OptsParser (int argc, char **argv, const Option *opts);
 
21528
  
 
21529
  /** \brief Constructor of OptsParser
 
21530
   *  
 
21531
   *  \param line Reference to string with parameters to analyse
 
21532
   *              The paramaters are extracted from the string by splitting it up 
 
21533
   *              into tokens at:
 
21534
   *               - space character
 
21535
   *               - tabs 
 
21536
   *               - newline
 
21537
   *               - carriage return
 
21538
   *  \param opts Pointer to array of options which shall be 
 
21539
   *              recognized by the options parser
 
21540
   */
 
21541
  OptsParser (const string &line, const Option *);
 
21542
 
 
21543
  
 
21544
  /** Get next parameter without modification. 
 
21545
   * No option parsing is done
 
21546
   *
 
21547
   * \return OptsParser::NOOPTION or OptsParser::FINISH 
 
21548
   */
 
21549
  int getRawOption ();
 
21550
  
 
21551
  /** \brief Get next option
 
21552
   *
 
21553
   * This function processes the next parameter passed to the constructor 
 
21554
   * OptsParser::OptsParser(). 
 
21555
   * That is, search for options and eventually process
 
21556
   * option and option arguement. 
 
21557
   *
 
21558
   * \return Number of option recognized by the options parser or
 
21559
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
21560
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
21561
   *
 
21562
   */
 
21563
  int getOption ();
 
21564
  
 
21565
  /** \brief Get result of last processed parameter
 
21566
   *
 
21567
   *  The number returned by this function is identical to the number 
 
21568
   *  returned by the last call of OptsParser::getOption
 
21569
   *   
 
21570
   * \return Number of option recognized by the options parser or
 
21571
   *         OptsParser::NOARG, OptsParser::ERR, OptsParser::NOOPTION,
 
21572
   *         OptsParser::UNKNOWN or OptsParser::FINISH.
 
21573
   *
 
21574
   */
 
21575
  int getResult () const;
 
21576
  
 
21577
  /** \brief Get option argument of last processed parameter
 
21578
   *
 
21579
   *  This function returns the argument of the option processed during 
 
21580
   *  OptsParser::getOption. If the option does not provide any argument
 
21581
   *  the string will be empty.
 
21582
   *
 
21583
   *  If OptsParser::getOption or respectively OptsParser::getResult returns with 
 
21584
   *  OptsParser::NOOPTION this function (OptsParser::getArgument) returns the last processed parameter, 
 
21585
   *  which is no option, of course.
 
21586
   *
 
21587
   *  \return Argument of last processed parameter
 
21588
   */
 
21589
  const string &getArgument () const;
 
21590
  
 
21591
  /** \brief Get option name of last processed parameter
 
21592
   *
 
21593
   *  If the last processed parameter did not contain an option the string 
 
21594
   *  returned by this function is empty.
 
21595
   *
 
21596
   *  \return Name of last processed parameter
 
21597
   *
 
21598
   */
 
21599
  const string &getOptionName () const;
 
21600
  
 
21601
  /** \brief Get position of current argument
 
21602
   *
 
21603
   *  \return Position of currently processed parameter previously passed to OptsParser::OptsParser()
 
21604
   *
 
21605
   */
 
21606
  int getCurrentArgNum () const;
 
21607
  
 
21608
  /** \brief Get position of next argument
 
21609
   *
 
21610
   *  \return Position of next parameter which will be processed by the %Options %Parser
 
21611
   *
 
21612
   */
 
21613
  int getNextArgNum () const;
 
21614
 
 
21615
private:
 
21616
  /** Search for an option in m_argv at position m_curarg
 
21617
   *
 
21618
   *  \param arg Currently processed parameter 
 
21619
   */
 
21620
  const Option*  findOption(const string &arg, bool isLong);
 
21621
  
 
21622
  /** Process an option found by OptsParser::findOption(). 
 
21623
   */
 
21624
  bool processOption  (const string &arg, const Option* curOpt, bool isLong);
 
21625
};
 
21626
 
 
21627
 
 
21628
} // namespace Puma
 
21629
 
 
21630
#endif /* __OptsParser_h__ */
 
21631
 
 
21632
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
21633
using namespace std;
 
21634
 
 
21635
namespace Puma {
 
21636
 
 
21637
 
 
21638
 
 
21639
#line 21640 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
21640
} // closed Puma
 
21641
class CCExprResolve;
 
21642
class CExprResolve;
 
21643
class WinIfExists;
 
21644
class WinImportHandler;
 
21645
class WinMacros;
 
21646
class WinAsm;
 
21647
class WinDeclSpecs;
 
21648
class WinMemberExplSpec;
 
21649
class WinTypeKeywords;
 
21650
class WinFriend;
 
21651
class ExtAC;
 
21652
class ExtACBuilderCoupling;
 
21653
class ExtACSyntaxCoupling;
 
21654
class ExtACTree;
 
21655
class ExtACKeywords;
 
21656
class ExtGnu;
 
21657
class PragmaOnceUnitState;
 
21658
class PragmaOnce;
 
21659
class CMatchSyntax;
 
21660
namespace Puma {
 
21661
 
 
21662
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
21663
class Config {
 
21664
#line 21665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
21665
  friend class ::CCExprResolve;
 
21666
  friend class ::CExprResolve;
 
21667
  friend class ::WinIfExists;
 
21668
  friend class ::WinImportHandler;
 
21669
  friend class ::WinMacros;
 
21670
  friend class ::WinAsm;
 
21671
  friend class ::WinDeclSpecs;
 
21672
  friend class ::WinMemberExplSpec;
 
21673
  friend class ::WinTypeKeywords;
 
21674
  friend class ::WinFriend;
 
21675
  friend class ::ExtAC;
 
21676
  friend class ::ExtACBuilderCoupling;
 
21677
  friend class ::ExtACSyntaxCoupling;
 
21678
  friend class ::ExtACTree;
 
21679
  friend class ::ExtACKeywords;
 
21680
  friend class ::ExtGnu;
 
21681
  friend class ::PragmaOnceUnitState;
 
21682
  friend class ::PragmaOnce;
 
21683
  friend class ::CMatchSyntax;
 
21684
 
 
21685
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Config.h"
 
21686
 
 
21687
  Flags _flags;
 
21688
  ErrorStream &_err;
 
21689
  Array<const ConfOption *> _options;
 
21690
  
 
21691
public:
 
21692
  enum OPTIONS {
 
21693
    PRE_ASSERT = 1,
 
21694
    PRE_DEFINE, 
 
21695
    PRE_UNDEFINE, 
 
21696
    PRE_LOCK_MACRO,
 
21697
    PRE_INCLUDE,
 
21698
    CFG_FILE, 
 
21699
    PROJ_PATH, 
 
21700
    PROJ_DESTINATION,
 
21701
    SET_SUFFIX, 
 
21702
    SET_EXTENSION, 
 
21703
    SET_WRITE_PROTECTED,
 
21704
    SET_OPTION, 
 
21705
    SET_OPTION_ARG
 
21706
  };
 
21707
   
 
21708
public:
 
21709
  Config (ErrorStream &);
 
21710
  Config (const Config &);
 
21711
  ~Config ();
 
21712
  
 
21713
  // read config file
 
21714
  Config (ErrorStream &, const char *);
 
21715
  // read command line
 
21716
  Config (ErrorStream &, int &, char **&);
 
21717
  // read config file and command line
 
21718
  Config (ErrorStream &, const char *, int &, char **&);
 
21719
        
 
21720
  // join with another configuration
 
21721
  void Join (const Config &);
 
21722
 
 
21723
  // evaluate file, if file not given read from $PUMA_CONFIG
 
21724
  // or /etc/puma.config
 
21725
  void Read (const char * = (const char *)0);
 
21726
  // evaluate command line
 
21727
  void Read (int &, char **&);
 
21728
 
 
21729
  // add options to configuration
 
21730
  void Add (const ConfOption *);
 
21731
  void Add (const char *);
 
21732
  void Add (const char *, const char *);
 
21733
  void Add (const char *, const char *, const char *);
 
21734
 
 
21735
  // get options
 
21736
  unsigned Options () const;
 
21737
  const ConfOption *Option (unsigned) const;
 
21738
  const ConfOption *Option (const char *) const;
 
21739
 
 
21740
  Flags FlagTable () const;
 
21741
  
 
21742
private:
 
21743
  bool Valid (const char *, const char * = (const char *)0) const;
 
21744
 
 
21745
  bool Process (OptsParser&, bool unescape = false);
 
21746
  bool ProcessAssert (const string&);
 
21747
  bool ProcessDefine (const string&);
 
21748
  bool ProcessLockMacro (const string&);
 
21749
  bool ProcessUndefine (const string&);
 
21750
  bool ProcessConfigFile (const string&,const string&);
 
21751
  bool ProcessArgument (const string&,const string&);
 
21752
  bool ProcessPathArgument (const string&,const string&);
 
21753
 
 
21754
  string Unescape(const string&);
 
21755
};
 
21756
 
 
21757
inline Config::Config (ErrorStream &e) : _err (e)
 
21758
 {}
 
21759
inline Config::Config (const Config &c) : _err (c._err)
 
21760
 { Join (c); }
 
21761
  
 
21762
inline Config::Config (ErrorStream &e, const char *file) : _err (e)
 
21763
 { Read (file); }
 
21764
inline Config::Config (ErrorStream &e, int &argc, char **&argv) : _err (e)
 
21765
 { Read (argc, argv); }
 
21766
inline Config::Config (ErrorStream &e, const char *file, int &argc, char **&argv) : _err (e)
 
21767
 { Read (file); Read (argc, argv); }
 
21768
 
 
21769
inline Config::~Config  ()
 
21770
 { for (unsigned i = 0; i < Options (); i++)
 
21771
     delete (ConfOption *) Option (i);
 
21772
 }
 
21773
 
 
21774
inline void Config::Add (const ConfOption *o) 
 
21775
 { _options.append (o); }
 
21776
inline void Config::Add (const char *n)
 
21777
 { Add (new ConfOption (n)); }
 
21778
inline void Config::Add (const char *n, const char *a1)
 
21779
 { Add (new ConfOption (n, a1)); }
 
21780
inline void Config::Add (const char *n, const char *a1, const char *a2)
 
21781
 { Add (new ConfOption (n, a1, a2)); }
 
21782
 
 
21783
inline unsigned Config::Options () const
 
21784
 { return _options.length (); }
 
21785
inline const ConfOption *Config::Option (unsigned i) const
 
21786
 { return _options.lookup (i); }
 
21787
 
 
21788
inline Flags Config::FlagTable () const
 
21789
 { return _flags; }
 
21790
 
 
21791
 
 
21792
} // namespace Puma
 
21793
 
 
21794
#endif /* __Config_h__ */
 
21795
 
 
21796
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
21797
// This file is part of PUMA.
 
21798
// Copyright (C) 1999-2003  The PUMA developer team.
 
21799
//                                                                
 
21800
// This program is free software;  you can redistribute it and/or 
 
21801
// modify it under the terms of the GNU General Public License as 
 
21802
// published by the Free Software Foundation; either version 2 of 
 
21803
// the License, or (at your option) any later version.            
 
21804
//                                                                
 
21805
// This program is distributed in the hope that it will be useful,
 
21806
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
21807
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
21808
// GNU General Public License for more details.                   
 
21809
//                                                                
 
21810
// You should have received a copy of the GNU General Public      
 
21811
// License along with this program; if not, write to the Free     
 
21812
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
21813
// MA  02111-1307  USA                                            
 
21814
 
 
21815
#ifndef __project__
 
21816
#define __project__
 
21817
 
 
21818
// The basic project is a set of source directories. It provides 
 
21819
// methods for searching and writing files. 
 
21820
 
 
21821
 
 
21822
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
21823
// This file is part of PUMA.
 
21824
// Copyright (C) 1999-2003  The PUMA developer team.
 
21825
//                                                                
 
21826
// This program is free software;  you can redistribute it and/or 
 
21827
// modify it under the terms of the GNU General Public License as 
 
21828
// published by the Free Software Foundation; either version 2 of 
 
21829
// the License, or (at your option) any later version.            
 
21830
//                                                                
 
21831
// This program is distributed in the hope that it will be useful,
 
21832
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
21833
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
21834
// GNU General Public License for more details.                   
 
21835
//                                                                
 
21836
// You should have received a copy of the GNU General Public      
 
21837
// License along with this program; if not, write to the Free     
 
21838
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
21839
// MA  02111-1307  USA                                            
 
21840
 
 
21841
#ifndef __path_manager__
 
21842
#define __path_manager__
 
21843
 
 
21844
// Manages directories and methods to access the files in it.
 
21845
 
 
21846
 
 
21847
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
21848
// This file is part of PUMA.
 
21849
// Copyright (C) 1999-2003  The PUMA developer team.
 
21850
//                                                                
 
21851
// This program is free software;  you can redistribute it and/or 
 
21852
// modify it under the terms of the GNU General Public License as 
 
21853
// published by the Free Software Foundation; either version 2 of 
 
21854
// the License, or (at your option) any later version.            
 
21855
//                                                                
 
21856
// This program is distributed in the hope that it will be useful,
 
21857
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
21858
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
21859
// GNU General Public License for more details.                   
 
21860
//                                                                
 
21861
// You should have received a copy of the GNU General Public      
 
21862
// License along with this program; if not, write to the Free     
 
21863
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
21864
// MA  02111-1307  USA                                            
 
21865
 
 
21866
#ifndef __path_info__
 
21867
#define __path_info__
 
21868
 
 
21869
// A path information object consists of a source and optionally
 
21870
// a destination path.
 
21871
 
 
21872
namespace Puma {
 
21873
 
 
21874
 
 
21875
 
 
21876
#line 21877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
21877
} // closed Puma
 
21878
class CCExprResolve;
 
21879
class CExprResolve;
 
21880
class WinIfExists;
 
21881
class WinImportHandler;
 
21882
class WinMacros;
 
21883
class WinAsm;
 
21884
class WinDeclSpecs;
 
21885
class WinMemberExplSpec;
 
21886
class WinTypeKeywords;
 
21887
class WinFriend;
 
21888
class ExtAC;
 
21889
class ExtACBuilderCoupling;
 
21890
class ExtACSyntaxCoupling;
 
21891
class ExtACTree;
 
21892
class ExtACKeywords;
 
21893
class ExtGnu;
 
21894
class PragmaOnceUnitState;
 
21895
class PragmaOnce;
 
21896
class CMatchSyntax;
 
21897
namespace Puma {
 
21898
 
 
21899
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
21900
class PathInfo {
 
21901
#line 21902 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
21902
  friend class ::CCExprResolve;
 
21903
  friend class ::CExprResolve;
 
21904
  friend class ::WinIfExists;
 
21905
  friend class ::WinImportHandler;
 
21906
  friend class ::WinMacros;
 
21907
  friend class ::WinAsm;
 
21908
  friend class ::WinDeclSpecs;
 
21909
  friend class ::WinMemberExplSpec;
 
21910
  friend class ::WinTypeKeywords;
 
21911
  friend class ::WinFriend;
 
21912
  friend class ::ExtAC;
 
21913
  friend class ::ExtACBuilderCoupling;
 
21914
  friend class ::ExtACSyntaxCoupling;
 
21915
  friend class ::ExtACTree;
 
21916
  friend class ::ExtACKeywords;
 
21917
  friend class ::ExtGnu;
 
21918
  friend class ::PragmaOnceUnitState;
 
21919
  friend class ::PragmaOnce;
 
21920
  friend class ::CMatchSyntax;
 
21921
 
 
21922
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathInfo.h"
 
21923
 
 
21924
  const char *_src;        // Source path.
 
21925
  const char *_dest;        // Destination path.
 
21926
        
 
21927
public:
 
21928
  PathInfo () : _src ((const char*) 0), _dest ((const char*) 0) {}
 
21929
  PathInfo (const PathInfo &);
 
21930
  ~PathInfo ();
 
21931
        
 
21932
  // Needed for class Array.
 
21933
  PathInfo &operator =(const PathInfo &);
 
21934
 
 
21935
  // Set or get the source path.
 
21936
  void src (const char *);
 
21937
  const char *src () const { return _src; }
 
21938
        
 
21939
  // Set or get the destination path.
 
21940
  void dest (const char *);
 
21941
  const char *dest () const { return _dest; }
 
21942
};
 
21943
 
 
21944
 
 
21945
} // namespace Puma
 
21946
 
 
21947
#endif /* __path_info__ */
 
21948
 
 
21949
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
21950
// This file is part of PUMA.
 
21951
// Copyright (C) 1999-2003  The PUMA developer team.
 
21952
//                                                                
 
21953
// This program is free software;  you can redistribute it and/or 
 
21954
// modify it under the terms of the GNU General Public License as 
 
21955
// published by the Free Software Foundation; either version 2 of 
 
21956
// the License, or (at your option) any later version.            
 
21957
//                                                                
 
21958
// This program is distributed in the hope that it will be useful,
 
21959
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
21960
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
21961
// GNU General Public License for more details.                   
 
21962
//                                                                
 
21963
// You should have received a copy of the GNU General Public      
 
21964
// License along with this program; if not, write to the Free     
 
21965
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
21966
// MA  02111-1307  USA                                            
 
21967
 
 
21968
#ifndef __path_iterator__
 
21969
#define __path_iterator__
 
21970
 
 
21971
// A path iterator is used to iterate the contents of the paths
 
21972
// a project is managing. But only files matching a given pattern 
 
21973
// are iterated. 
 
21974
 
 
21975
 
 
21976
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
21977
// This file is part of PUMA.
 
21978
// Copyright (C) 1999-2003  The PUMA developer team.
 
21979
//                                                                
 
21980
// This program is free software;  you can redistribute it and/or 
 
21981
// modify it under the terms of the GNU General Public License as 
 
21982
// published by the Free Software Foundation; either version 2 of 
 
21983
// the License, or (at your option) any later version.            
 
21984
//                                                                
 
21985
// This program is distributed in the hope that it will be useful,
 
21986
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
21987
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
21988
// GNU General Public License for more details.                   
 
21989
//                                                                
 
21990
// You should have received a copy of the GNU General Public      
 
21991
// License along with this program; if not, write to the Free     
 
21992
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
21993
// MA  02111-1307  USA                                            
 
21994
 
 
21995
#ifndef __project_file__
 
21996
#define __project_file__
 
21997
 
 
21998
#include <map>
 
21999
using std::map;
 
22000
 
 
22001
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
22002
using std::string;
 
22003
 
 
22004
 
 
22005
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
22006
namespace Puma {
 
22007
 
 
22008
// the project file abstraction is used to store all filenames relevant
 
22009
// for a specific file that is managed by Puma.
 
22010
 
 
22011
 
 
22012
#line 22013 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22013
} // closed Puma
 
22014
class CCExprResolve;
 
22015
class CExprResolve;
 
22016
class WinIfExists;
 
22017
class WinImportHandler;
 
22018
class WinMacros;
 
22019
class WinAsm;
 
22020
class WinDeclSpecs;
 
22021
class WinMemberExplSpec;
 
22022
class WinTypeKeywords;
 
22023
class WinFriend;
 
22024
class ExtAC;
 
22025
class ExtACBuilderCoupling;
 
22026
class ExtACSyntaxCoupling;
 
22027
class ExtACTree;
 
22028
class ExtACKeywords;
 
22029
class ExtGnu;
 
22030
class PragmaOnceUnitState;
 
22031
class PragmaOnce;
 
22032
class CMatchSyntax;
 
22033
namespace Puma {
 
22034
 
 
22035
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
22036
class ProjectFile {
 
22037
#line 22038 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22038
  friend class ::CCExprResolve;
 
22039
  friend class ::CExprResolve;
 
22040
  friend class ::WinIfExists;
 
22041
  friend class ::WinImportHandler;
 
22042
  friend class ::WinMacros;
 
22043
  friend class ::WinAsm;
 
22044
  friend class ::WinDeclSpecs;
 
22045
  friend class ::WinMemberExplSpec;
 
22046
  friend class ::WinTypeKeywords;
 
22047
  friend class ::WinFriend;
 
22048
  friend class ::ExtAC;
 
22049
  friend class ::ExtACBuilderCoupling;
 
22050
  friend class ::ExtACSyntaxCoupling;
 
22051
  friend class ::ExtACTree;
 
22052
  friend class ::ExtACKeywords;
 
22053
  friend class ::ExtGnu;
 
22054
  friend class ::PragmaOnceUnitState;
 
22055
  friend class ::PragmaOnce;
 
22056
  friend class ::CMatchSyntax;
 
22057
 
 
22058
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
 
22059
 
 
22060
  Filename _nick_name;
 
22061
  Filename _dest_path;
 
22062
public:  
 
22063
  ProjectFile (const Filename &nn) : _nick_name (nn) {}
 
22064
  ProjectFile (const Filename &nn, const Filename &dp) :
 
22065
    _nick_name (nn), _dest_path (dp) {}
 
22066
  void dest (const Filename &dp) { _dest_path = dp; }
 
22067
  Filename name () const { return _nick_name; }
 
22068
  Filename dest () const {
 
22069
    assert (_dest_path.is_defined ());
 
22070
    return _dest_path;
 
22071
  }
 
22072
};
 
22073
 
 
22074
typedef map<string, ProjectFile> PFMap;
 
22075
typedef PFMap::value_type PFMPair;
 
22076
typedef PFMap::const_iterator PFMConstIter;
 
22077
 
 
22078
} // namespace Puma
 
22079
 
 
22080
#endif // __project_file__
 
22081
 
 
22082
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
22083
namespace Puma {
 
22084
 
 
22085
class PathManager;
 
22086
class RegComp;
 
22087
 
 
22088
 
 
22089
#line 22090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22090
} // closed Puma
 
22091
class CCExprResolve;
 
22092
class CExprResolve;
 
22093
class WinIfExists;
 
22094
class WinImportHandler;
 
22095
class WinMacros;
 
22096
class WinAsm;
 
22097
class WinDeclSpecs;
 
22098
class WinMemberExplSpec;
 
22099
class WinTypeKeywords;
 
22100
class WinFriend;
 
22101
class ExtAC;
 
22102
class ExtACBuilderCoupling;
 
22103
class ExtACSyntaxCoupling;
 
22104
class ExtACTree;
 
22105
class ExtACKeywords;
 
22106
class ExtGnu;
 
22107
class PragmaOnceUnitState;
 
22108
class PragmaOnce;
 
22109
class CMatchSyntax;
 
22110
namespace Puma {
 
22111
 
 
22112
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
22113
class PathIterator : public PFMConstIter {
 
22114
#line 22115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22115
  friend class ::CCExprResolve;
 
22116
  friend class ::CExprResolve;
 
22117
  friend class ::WinIfExists;
 
22118
  friend class ::WinImportHandler;
 
22119
  friend class ::WinMacros;
 
22120
  friend class ::WinAsm;
 
22121
  friend class ::WinDeclSpecs;
 
22122
  friend class ::WinMemberExplSpec;
 
22123
  friend class ::WinTypeKeywords;
 
22124
  friend class ::WinFriend;
 
22125
  friend class ::ExtAC;
 
22126
  friend class ::ExtACBuilderCoupling;
 
22127
  friend class ::ExtACSyntaxCoupling;
 
22128
  friend class ::ExtACTree;
 
22129
  friend class ::ExtACKeywords;
 
22130
  friend class ::ExtGnu;
 
22131
  friend class ::PragmaOnceUnitState;
 
22132
  friend class ::PragmaOnce;
 
22133
  friend class ::CMatchSyntax;
 
22134
 
 
22135
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathIterator.h"
 
22136
 
 
22137
  friend class PathManager;
 
22138
 
 
22139
  RegComp *_regexp;  // Search pattern.
 
22140
  bool _in_use;
 
22141
 
 
22142
public:
 
22143
  PathIterator (const char *);     // Expects a regular expression.
 
22144
  ~PathIterator ();                // for the files to match.
 
22145
 
 
22146
  void pattern (const char *);     // Set the search pattern.
 
22147
  void init (const PFMConstIter &begin);
 
22148
  bool in_use () const { return _in_use; }
 
22149
  void done () { _in_use = false; }
 
22150
 
 
22151
  // retrieve information about the currently referenced ProjectFile
 
22152
  const char *file () const;
 
22153
  const char *dest () const;
 
22154
};
 
22155
 
 
22156
} // namespace Puma
 
22157
 
 
22158
#endif /* __path_iterator__ */
 
22159
 
 
22160
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
22161
namespace Puma {
 
22162
 
 
22163
class RegComp;
 
22164
class Config;
 
22165
class Unit;
 
22166
 
 
22167
 
 
22168
#line 22169 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22169
} // closed Puma
 
22170
class CCExprResolve;
 
22171
class CExprResolve;
 
22172
class WinIfExists;
 
22173
class WinImportHandler;
 
22174
class WinMacros;
 
22175
class WinAsm;
 
22176
class WinDeclSpecs;
 
22177
class WinMemberExplSpec;
 
22178
class WinTypeKeywords;
 
22179
class WinFriend;
 
22180
class ExtAC;
 
22181
class ExtACBuilderCoupling;
 
22182
class ExtACSyntaxCoupling;
 
22183
class ExtACTree;
 
22184
class ExtACKeywords;
 
22185
class ExtGnu;
 
22186
class PragmaOnceUnitState;
 
22187
class PragmaOnce;
 
22188
class CMatchSyntax;
 
22189
namespace Puma {
 
22190
 
 
22191
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
22192
class PathManager {
 
22193
#line 22194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22194
  friend class ::CCExprResolve;
 
22195
  friend class ::CExprResolve;
 
22196
  friend class ::WinIfExists;
 
22197
  friend class ::WinImportHandler;
 
22198
  friend class ::WinMacros;
 
22199
  friend class ::WinAsm;
 
22200
  friend class ::WinDeclSpecs;
 
22201
  friend class ::WinMemberExplSpec;
 
22202
  friend class ::WinTypeKeywords;
 
22203
  friend class ::WinFriend;
 
22204
  friend class ::ExtAC;
 
22205
  friend class ::ExtACBuilderCoupling;
 
22206
  friend class ::ExtACSyntaxCoupling;
 
22207
  friend class ::ExtACTree;
 
22208
  friend class ::ExtACKeywords;
 
22209
  friend class ::ExtGnu;
 
22210
  friend class ::PragmaOnceUnitState;
 
22211
  friend class ::PragmaOnce;
 
22212
  friend class ::CMatchSyntax;
 
22213
 
 
22214
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PathManager.h"
 
22215
 
 
22216
 
 
22217
  ErrorStream     *_err;
 
22218
  Array<PathInfo>  _paths;     // List of directories path.
 
22219
  Array<RegComp*>  _protected; // List of regular patterns specifying 
 
22220
                               // protected paths.
 
22221
  PFMap _files;                // Maps the canonical filename of a project
 
22222
                               // to its related information
 
22223
 
 
22224
  // find all files of a directory tree and add them to _files
 
22225
  void traverse (const char *path);
 
22226
 
 
22227
  // find the canonical filename representation for a file
 
22228
  bool canonFilename (Filename name, Filename &abs_name) const;
 
22229
  
 
22230
  // Add a new file to the project file list
 
22231
  PFMConstIter addFile (const ProjectFile &file);
 
22232
 
 
22233
protected:
 
22234
  // Get the destination directory for a given source directory.
 
22235
  const char *getDestination (Filename file, ostream * = 0) const;
 
22236
        
 
22237
  // Called for every matched file.
 
22238
  virtual void action (PathIterator &) {}
 
22239
        
 
22240
  // Add the separator '/' to the copy of the given string.
 
22241
  char *addSeparator (const char *) const;
 
22242
 
 
22243
public:
 
22244
  PathManager (ErrorStream &e) : _err (&e) {} 
 
22245
  // Copy-constructor.
 
22246
  PathManager (PathManager &pm) { _err = pm._err; join (pm); }
 
22247
  virtual ~PathManager ();
 
22248
 
 
22249
  // Start the globbing. Let call action for every match.
 
22250
  void glob (char *pattern = (char*) 0);
 
22251
 
 
22252
  // Iterate the contents of the paths.
 
22253
  const char *iterate (PathIterator &) const;
 
22254
        
 
22255
  // Add a source and destination directories pair.
 
22256
  virtual void addPath (const char *, const char * = (const char*) 0);
 
22257
 
 
22258
  // Add a new file to the project file list
 
22259
  PFMConstIter addFile (Filename name);
 
22260
 
 
22261
  // Add a new file to the project file list with destination path
 
22262
  PFMConstIter addFile (Filename name, Filename dest);
 
22263
 
 
22264
  // search an absolute file name in the project tree
 
22265
  bool lookupFile (Filename abs_name, PFMConstIter &iter) const;
 
22266
 
 
22267
  // Set the destination directory of the given source directory.
 
22268
  void setDest (const char *, const char *);
 
22269
 
 
22270
  // Add a protected-path pattern.
 
22271
  void protect (const char *);
 
22272
 
 
22273
  // Get path information.
 
22274
  long numPaths () const { return _paths.length (); }
 
22275
  long numProts () const { return _protected.length (); }
 
22276
  const char *src (long pos) const { return _paths.lookup (pos).src (); }
 
22277
  const char *dest (long pos) const { return _paths.lookup (pos).dest (); }
 
22278
  RegComp *prot (long pos) const { return _protected.lookup (pos); }
 
22279
 
 
22280
  // Return true if the given file or path is protected.
 
22281
  bool isProtected (const char *file) const;
 
22282
 
 
22283
  // checks if a give file (by name) is a registered file of this path manager
 
22284
  // In case of success (found!) the an iterator is returned, which can be
 
22285
  // used to access more information about the file.
 
22286
  bool isBelow (const char *file, PFMConstIter &iter) const;
 
22287
 
 
22288
  // Returns true if the given file is registered with this path manager
 
22289
  virtual bool isBelow (const char *file) const;
 
22290
 
 
22291
  // Configure the project from the command line or a file.
 
22292
  virtual void configure (const Config &);
 
22293
 
 
22294
  // Join the paths of the given manager with the paths 
 
22295
  // of this path manager.
 
22296
  virtual void join (PathManager &);
 
22297
        
 
22298
  // Get the error stream object.
 
22299
  ErrorStream &err () const { return *_err; }
 
22300
 
 
22301
  // Get the path of a file in the destination directory.
 
22302
  bool getDestinationPath (const char *filename, ostream &out) const;
 
22303
        
 
22304
};
 
22305
 
 
22306
inline bool PathManager::isBelow (const char *file) const { 
 
22307
  PFMConstIter iter;
 
22308
  return isBelow (file, iter);
 
22309
}
 
22310
 
 
22311
 
 
22312
} // namespace Puma
 
22313
 
 
22314
#endif /* __path_manager__ */
 
22315
 
 
22316
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
22317
 
 
22318
#line 22319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22319
 
 
22320
#ifndef __ac_fwd_PragmaOnceUnitState__
 
22321
#define __ac_fwd_PragmaOnceUnitState__
 
22322
class PragmaOnceUnitState;
 
22323
namespace AC {
 
22324
  template <class JoinPoint>
 
22325
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
22326
  template <class JoinPoint>
 
22327
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
22328
}
 
22329
#endif
 
22330
 
 
22331
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
22332
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
22333
#endif
 
22334
 
 
22335
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
22336
// This file is part of PUMA.
 
22337
// Copyright (C) 1999-2003  The PUMA developer team.
 
22338
//                                                                
 
22339
// This program is free software;  you can redistribute it and/or 
 
22340
// modify it under the terms of the GNU General Public License as 
 
22341
// published by the Free Software Foundation; either version 2 of 
 
22342
// the License, or (at your option) any later version.            
 
22343
//                                                                
 
22344
// This program is distributed in the hope that it will be useful,
 
22345
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
22346
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
22347
// GNU General Public License for more details.                   
 
22348
//                                                                
 
22349
// You should have received a copy of the GNU General Public      
 
22350
// License along with this program; if not, write to the Free     
 
22351
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
22352
// MA  02111-1307  USA                                            
 
22353
 
 
22354
#ifndef __UnitManager__
 
22355
#define __UnitManager__
 
22356
 
 
22357
// Class UnitManager helps you to have control of all units built.
 
22358
 
 
22359
 
 
22360
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
22361
#include <list>
 
22362
 
 
22363
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
22364
using namespace std;
 
22365
 
 
22366
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
22367
namespace Puma {
 
22368
 
 
22369
 
 
22370
class Unit;
 
22371
class Source;
 
22372
class Tokenizer;
 
22373
 
 
22374
 
 
22375
#line 22376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22376
} // closed Puma
 
22377
class CCExprResolve;
 
22378
class CExprResolve;
 
22379
class WinIfExists;
 
22380
class WinImportHandler;
 
22381
class WinMacros;
 
22382
class WinAsm;
 
22383
class WinDeclSpecs;
 
22384
class WinMemberExplSpec;
 
22385
class WinTypeKeywords;
 
22386
class WinFriend;
 
22387
class ExtAC;
 
22388
class ExtACBuilderCoupling;
 
22389
class ExtACSyntaxCoupling;
 
22390
class ExtACTree;
 
22391
class ExtACKeywords;
 
22392
class ExtGnu;
 
22393
class PragmaOnceUnitState;
 
22394
class PragmaOnce;
 
22395
class CMatchSyntax;
 
22396
namespace Puma {
 
22397
 
 
22398
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
22399
class UnitManager {
 
22400
#line 22401 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22401
  friend class ::CCExprResolve;
 
22402
  friend class ::CExprResolve;
 
22403
  friend class ::WinIfExists;
 
22404
  friend class ::WinImportHandler;
 
22405
  friend class ::WinMacros;
 
22406
  friend class ::WinAsm;
 
22407
  friend class ::WinDeclSpecs;
 
22408
  friend class ::WinMemberExplSpec;
 
22409
  friend class ::WinTypeKeywords;
 
22410
  friend class ::WinFriend;
 
22411
  friend class ::ExtAC;
 
22412
  friend class ::ExtACBuilderCoupling;
 
22413
  friend class ::ExtACSyntaxCoupling;
 
22414
  friend class ::ExtACTree;
 
22415
  friend class ::ExtACKeywords;
 
22416
  friend class ::ExtGnu;
 
22417
  friend class ::PragmaOnceUnitState;
 
22418
  friend class ::PragmaOnce;
 
22419
  friend class ::CMatchSyntax;
 
22420
 
 
22421
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
22422
 
 
22423
public:
 
22424
  typedef map<string, Unit*> UMap;
 
22425
private:
 
22426
  ErrorStream *_err;        // For error messages.
 
22427
  list<Unit*> _nonames;     // Noname units list.
 
22428
  mutable UMap _umap;       // Named units, map supports fast lookup by name
 
22429
  typedef UMap::value_type UMapPair;
 
22430
  Tokenizer *_tokenizer;    // File scanner.
 
22431
 
 
22432
public:
 
22433
  UnitManager (ErrorStream &err) : _err (&err), _tokenizer (0) {}
 
22434
        
 
22435
  // Destructor: Delete all units.
 
22436
  virtual ~UnitManager ();
 
22437
        
 
22438
  // Get the unit hash table.
 
22439
  UMap &getTable () const { return _umap; }
 
22440
  typedef UMap::iterator UMapIter;
 
22441
        
 
22442
  // Get/Set the file scanner that is used by newUnit
 
22443
  Tokenizer *tokenizer () const { return _tokenizer; }
 
22444
  void tokenizer (Tokenizer *t) { _tokenizer = t; }
 
22445
 
 
22446
  // Add a unit to manager.
 
22447
  void addUnit (Unit *unit);
 
22448
        
 
22449
  // Remove (and destroy) a unit from hash table. If the name
 
22450
  // is NULL remove all (but not the nonames).
 
22451
  void removeUnit (const char *name = (const char*) 0, bool = false, 
 
22452
                   bool destroy = true) const;
 
22453
 
 
22454
  // Empty a unit. Don't remove from hash table.
 
22455
  // Preserve the last save location information.
 
22456
  void closeUnit (const char *name = (const char*) 0, bool = false) const;
 
22457
 
 
22458
  // Build and add a new unit. 
 
22459
  Unit *newUnit (const char *, Source *in = (Source*) 0, bool = false);
 
22460
        
 
22461
  // Get a unit by name. 
 
22462
  Unit *getUnit (const char *name, bool = false) const;
 
22463
                        
 
22464
  // Print given unit to the given outstream. If no
 
22465
  // name is given, print all units.
 
22466
  void print (const char *name = (const char*) 0, bool = false, 
 
22467
              ostream &out = cout) const;
 
22468
 
 
22469
  // Destroy all noname units.
 
22470
  void removeNonames ();
 
22471
      
 
22472
  // Initialize the unit manager and the managed 
 
22473
  // units for the next parse process.
 
22474
  
 
22475
#line 22476 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22476
public: __attribute__((always_inline)) inline void __exec_old_init();
 
22477
 
 
22478
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
22479
void init ();
 
22480
};
 
22481
 
 
22482
 
 
22483
} // namespace Puma
 
22484
 
 
22485
#endif /* __UnitManager__ */
 
22486
 
 
22487
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
22488
// This file is part of PUMA.
 
22489
// Copyright (C) 1999-2003  The PUMA developer team.
 
22490
//                                                                
 
22491
// This program is free software;  you can redistribute it and/or 
 
22492
// modify it under the terms of the GNU General Public License as 
 
22493
// published by the Free Software Foundation; either version 2 of 
 
22494
// the License, or (at your option) any later version.            
 
22495
//                                                                
 
22496
// This program is distributed in the hope that it will be useful,
 
22497
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
22498
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
22499
// GNU General Public License for more details.                   
 
22500
//                                                                
 
22501
// You should have received a copy of the GNU General Public      
 
22502
// License along with this program; if not, write to the Free     
 
22503
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
22504
// MA  02111-1307  USA                                            
 
22505
 
 
22506
#ifndef __SaveMode__
 
22507
#define __SaveMode__
 
22508
 
 
22509
namespace Puma {
 
22510
 
 
22511
 
 
22512
// Project file save mode.
 
22513
 
 
22514
#line 22515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22515
} // closed Puma
 
22516
class CCExprResolve;
 
22517
class CExprResolve;
 
22518
class WinIfExists;
 
22519
class WinImportHandler;
 
22520
class WinMacros;
 
22521
class WinAsm;
 
22522
class WinDeclSpecs;
 
22523
class WinMemberExplSpec;
 
22524
class WinTypeKeywords;
 
22525
class WinFriend;
 
22526
class ExtAC;
 
22527
class ExtACBuilderCoupling;
 
22528
class ExtACSyntaxCoupling;
 
22529
class ExtACTree;
 
22530
class ExtACKeywords;
 
22531
class ExtGnu;
 
22532
class PragmaOnceUnitState;
 
22533
class PragmaOnce;
 
22534
class CMatchSyntax;
 
22535
namespace Puma {
 
22536
 
 
22537
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
22538
struct SaveMode {
 
22539
#line 22540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22540
  friend class ::CCExprResolve;
 
22541
  friend class ::CExprResolve;
 
22542
  friend class ::WinIfExists;
 
22543
  friend class ::WinImportHandler;
 
22544
  friend class ::WinMacros;
 
22545
  friend class ::WinAsm;
 
22546
  friend class ::WinDeclSpecs;
 
22547
  friend class ::WinMemberExplSpec;
 
22548
  friend class ::WinTypeKeywords;
 
22549
  friend class ::WinFriend;
 
22550
  friend class ::ExtAC;
 
22551
  friend class ::ExtACBuilderCoupling;
 
22552
  friend class ::ExtACSyntaxCoupling;
 
22553
  friend class ::ExtACTree;
 
22554
  friend class ::ExtACKeywords;
 
22555
  friend class ::ExtGnu;
 
22556
  friend class ::PragmaOnceUnitState;
 
22557
  friend class ::PragmaOnce;
 
22558
  friend class ::CMatchSyntax;
 
22559
 
 
22560
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/SaveMode.h"
 
22561
 
 
22562
  enum Mode { 
 
22563
    OVERWRITE = 1, 
 
22564
    RENAME_OLD, 
 
22565
    NEW_SUFFIX 
 
22566
  };
 
22567
};
 
22568
    
 
22569
 
 
22570
} // namespace Puma
 
22571
 
 
22572
#endif /* __SaveMode__ */
 
22573
 
 
22574
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
22575
#include <fstream>
 
22576
 
 
22577
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
22578
using namespace std;
 
22579
 
 
22580
namespace Puma {
 
22581
 
 
22582
 
 
22583
 
 
22584
#line 22585 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22585
} // closed Puma
 
22586
class CCExprResolve;
 
22587
class CExprResolve;
 
22588
class WinIfExists;
 
22589
class WinImportHandler;
 
22590
class WinMacros;
 
22591
class WinAsm;
 
22592
class WinDeclSpecs;
 
22593
class WinMemberExplSpec;
 
22594
class WinTypeKeywords;
 
22595
class WinFriend;
 
22596
class ExtAC;
 
22597
class ExtACBuilderCoupling;
 
22598
class ExtACSyntaxCoupling;
 
22599
class ExtACTree;
 
22600
class ExtACKeywords;
 
22601
class ExtGnu;
 
22602
class PragmaOnceUnitState;
 
22603
class PragmaOnce;
 
22604
class CMatchSyntax;
 
22605
namespace Puma {
 
22606
 
 
22607
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
22608
class Project : public PathManager, public SaveMode {
 
22609
#line 22610 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22610
  friend class ::CCExprResolve;
 
22611
  friend class ::CExprResolve;
 
22612
  friend class ::WinIfExists;
 
22613
  friend class ::WinImportHandler;
 
22614
  friend class ::WinMacros;
 
22615
  friend class ::WinAsm;
 
22616
  friend class ::WinDeclSpecs;
 
22617
  friend class ::WinMemberExplSpec;
 
22618
  friend class ::WinTypeKeywords;
 
22619
  friend class ::WinFriend;
 
22620
  friend class ::ExtAC;
 
22621
  friend class ::ExtACBuilderCoupling;
 
22622
  friend class ::ExtACSyntaxCoupling;
 
22623
  friend class ::ExtACTree;
 
22624
  friend class ::ExtACKeywords;
 
22625
  friend class ::ExtGnu;
 
22626
  friend class ::PragmaOnceUnitState;
 
22627
  friend class ::PragmaOnce;
 
22628
  friend class ::CMatchSyntax;
 
22629
 
 
22630
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Project.h"
 
22631
 
 
22632
  UnitManager  _unitManager; 
 
22633
  const char  *_suffix;           // Current file name suffix.
 
22634
  Mode         _mode;      // Current save mode.
 
22635
 
 
22636
  // Change to the directory, or create it if necessary.
 
22637
  bool makeDir (const char *) const;
 
22638
        
 
22639
  // Create the directory hierarchy need for file 'path'.
 
22640
  bool makeDirHierarchy (Filename path) const;
 
22641
 
 
22642
protected:
 
22643
  // Write a unit on a file. Called by save().
 
22644
  virtual void write (Unit *unit, ofstream &) const; 
 
22645
 
 
22646
  // Check/update the state of the given unit.
 
22647
  bool checkState (const char *, Unit *) const;
 
22648
  void updateState (const char *, Unit *) const;
 
22649
        
 
22650
public:
 
22651
  Project (ErrorStream &);
 
22652
  virtual ~Project ();
 
22653
 
 
22654
  // Set the mode for saving an unit.
 
22655
  // OVERWRITE  -> Save the unit under its name and overwrite existing
 
22656
  //                   files.
 
22657
  // RENAME_OLD -> An existing file will be renamed. A suffix will be
 
22658
  //                   added to the name of the file, like `main.cc.old'
 
22659
  //                   for the file `main.cc' and the suffix `.old'.
 
22660
  // NEW_SUFFIX -> The unit will be saved with a new suffix, like 
 
22661
  //                   `main.cpp' for the unit `main.cc' and the suffix 
 
22662
  //               `cpp'.
 
22663
  void saveMode (Mode = OVERWRITE, const char *suffix = (const char*)0);
 
22664
 
 
22665
  // Save a unit using the name of the unit to get the full 
 
22666
  // name of the file and path to save to. The save location
 
22667
  // must not be protected by a protect pattern and the original
 
22668
  // file must be located in one of the source directories.
 
22669
  virtual void save (Unit *, bool = false) const;
 
22670
        
 
22671
  // Save a FileUnit (or all) to a file (or files).
 
22672
  virtual void save (const char *file = (const char*)0,
 
22673
                     bool only_modified = false, bool is_reg_ex = false) const;
 
22674
 
 
22675
  // Print an unit, regular expression for more units.
 
22676
  // If no name is given print all units.
 
22677
  void print (const char *name = (const char*)0, ostream &out = cout,
 
22678
              bool is_reg_ex = false) const;
 
22679
        
 
22680
  // Close an unit, regular expression for more units.
 
22681
  // If no name is given close all units. If destroy is true,
 
22682
  // the unit(s) will be deleted. 
 
22683
  void close (const char *name = (const char*)0, bool destroy = false,
 
22684
              bool is_reg_ex = false) const;
 
22685
 
 
22686
  // Add a new file to the project.
 
22687
  Unit *addFile (Filename);
 
22688
  Unit *addFile (Filename, Filename);
 
22689
 
 
22690
  // Configure the project from the command line or a file.
 
22691
  virtual void configure (const Config &);
 
22692
        
 
22693
  // Member access.
 
22694
  UnitManager &unitManager ();
 
22695
        
 
22696
  // Return true if the given file in the source directory
 
22697
  // (or at the unit manager) is newer than the corresponding
 
22698
  // file in the destination directory.
 
22699
  bool isNewer (const char *) const;
 
22700
 
 
22701
  // Returns true if the given file is in or below the project dirs
 
22702
  virtual bool isBelow (const char *) const;
 
22703
  virtual bool isBelow (Unit *) const;
 
22704
};
 
22705
 
 
22706
inline UnitManager &Project::unitManager () 
 
22707
 {  return _unitManager; }
 
22708
 
 
22709
inline bool Project::isBelow (const char *file) const
 
22710
 { return PathManager::isBelow (file); }
 
22711
 
 
22712
 
 
22713
} // namespace Puma
 
22714
 
 
22715
#endif /* __project__ */
 
22716
 
 
22717
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
22718
 
 
22719
#line 22720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22720
 
 
22721
#ifndef __ac_fwd_ExtACKeywords__
 
22722
#define __ac_fwd_ExtACKeywords__
 
22723
class ExtACKeywords;
 
22724
namespace AC {
 
22725
  template <class JoinPoint>
 
22726
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
22727
  template <class JoinPoint>
 
22728
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
22729
  template <class JoinPoint>
 
22730
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
22731
}
 
22732
#endif
 
22733
 
 
22734
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
22735
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
22736
#endif
 
22737
 
 
22738
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
22739
// This file is part of PUMA.
 
22740
// Copyright (C) 1999-2003  The PUMA developer team.
 
22741
//                                                                
 
22742
// This program is free software;  you can redistribute it and/or 
 
22743
// modify it under the terms of the GNU General Public License as 
 
22744
// published by the Free Software Foundation; either version 2 of 
 
22745
// the License, or (at your option) any later version.            
 
22746
//                                                                
 
22747
// This program is distributed in the hope that it will be useful,
 
22748
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
22749
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
22750
// GNU General Public License for more details.                   
 
22751
//                                                                
 
22752
// You should have received a copy of the GNU General Public      
 
22753
// License along with this program; if not, write to the Free     
 
22754
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
22755
// MA  02111-1307  USA                                            
 
22756
 
 
22757
#ifndef __c_scanner_h__
 
22758
#define __c_scanner_h__
 
22759
 
 
22760
 
 
22761
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
22762
// This file is part of PUMA.
 
22763
// Copyright (C) 1999-2003  The PUMA developer team.
 
22764
//                                                                
 
22765
// This program is free software;  you can redistribute it and/or 
 
22766
// modify it under the terms of the GNU General Public License as 
 
22767
// published by the Free Software Foundation; either version 2 of 
 
22768
// the License, or (at your option) any later version.            
 
22769
//                                                                
 
22770
// This program is distributed in the hope that it will be useful,
 
22771
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
22772
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
22773
// GNU General Public License for more details.                   
 
22774
//                                                                
 
22775
// You should have received a copy of the GNU General Public      
 
22776
// License along with this program; if not, write to the Free     
 
22777
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
22778
// MA  02111-1307  USA                                            
 
22779
 
 
22780
#ifndef __c_recognizer_h__
 
22781
#define __c_recognizer_h__
 
22782
 
 
22783
 
 
22784
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
22785
// This file is part of PUMA.
 
22786
// Copyright (C) 1999-2003  The PUMA developer team.
 
22787
//                                                                
 
22788
// This program is free software;  you can redistribute it and/or 
 
22789
// modify it under the terms of the GNU General Public License as 
 
22790
// published by the Free Software Foundation; either version 2 of 
 
22791
// the License, or (at your option) any later version.            
 
22792
//                                                                
 
22793
// This program is distributed in the hope that it will be useful,
 
22794
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
22795
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
22796
// GNU General Public License for more details.                   
 
22797
//                                                                
 
22798
// You should have received a copy of the GNU General Public      
 
22799
// License along with this program; if not, write to the Free     
 
22800
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
22801
// MA  02111-1307  USA                                            
 
22802
 
 
22803
#ifndef __CScanBuffer_h__
 
22804
#define __CScanBuffer_h__
 
22805
 
 
22806
 
 
22807
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
22808
// This file is part of PUMA.
 
22809
// Copyright (C) 1999-2003  The PUMA developer team.
 
22810
//                                                                
 
22811
// This program is free software;  you can redistribute it and/or 
 
22812
// modify it under the terms of the GNU General Public License as 
 
22813
// published by the Free Software Foundation; either version 2 of 
 
22814
// the License, or (at your option) any later version.            
 
22815
//                                                                
 
22816
// This program is distributed in the hope that it will be useful,
 
22817
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
22818
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
22819
// GNU General Public License for more details.                   
 
22820
//                                                                
 
22821
// You should have received a copy of the GNU General Public      
 
22822
// License along with this program; if not, write to the Free     
 
22823
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
22824
// MA  02111-1307  USA                                            
 
22825
 
 
22826
#ifndef __scan_buffer_h__
 
22827
#define __scan_buffer_h__
 
22828
 
 
22829
 
 
22830
#line 23 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
22831
using namespace std;
 
22832
 
 
22833
namespace Puma {
 
22834
 
 
22835
 
 
22836
#line 22837 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22837
} // closed Puma
 
22838
class CCExprResolve;
 
22839
class CExprResolve;
 
22840
class WinIfExists;
 
22841
class WinImportHandler;
 
22842
class WinMacros;
 
22843
class WinAsm;
 
22844
class WinDeclSpecs;
 
22845
class WinMemberExplSpec;
 
22846
class WinTypeKeywords;
 
22847
class WinFriend;
 
22848
class ExtAC;
 
22849
class ExtACBuilderCoupling;
 
22850
class ExtACSyntaxCoupling;
 
22851
class ExtACTree;
 
22852
class ExtACKeywords;
 
22853
class ExtGnu;
 
22854
class PragmaOnceUnitState;
 
22855
class PragmaOnce;
 
22856
class CMatchSyntax;
 
22857
namespace Puma {
 
22858
 
 
22859
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
22860
class ScanBuffer {
 
22861
#line 22862 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22862
  friend class ::CCExprResolve;
 
22863
  friend class ::CExprResolve;
 
22864
  friend class ::WinIfExists;
 
22865
  friend class ::WinImportHandler;
 
22866
  friend class ::WinMacros;
 
22867
  friend class ::WinAsm;
 
22868
  friend class ::WinDeclSpecs;
 
22869
  friend class ::WinMemberExplSpec;
 
22870
  friend class ::WinTypeKeywords;
 
22871
  friend class ::WinFriend;
 
22872
  friend class ::ExtAC;
 
22873
  friend class ::ExtACBuilderCoupling;
 
22874
  friend class ::ExtACSyntaxCoupling;
 
22875
  friend class ::ExtACTree;
 
22876
  friend class ::ExtACKeywords;
 
22877
  friend class ::ExtGnu;
 
22878
  friend class ::PragmaOnceUnitState;
 
22879
  friend class ::PragmaOnce;
 
22880
  friend class ::CMatchSyntax;
 
22881
 
 
22882
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
 
22883
 
 
22884
public:
 
22885
  typedef enum { STATE_NEW, STATE_END, STATE_ERROR, STATE_OK } State;
 
22886
 
 
22887
private:
 
22888
  int _token;      // start position of current token
 
22889
  int _pos;        // current position (in token; _pos >= _token && pos < filled)
 
22890
  char *_buffer;   // token to the buffer that contains all input characters
 
22891
  int  _buff_size; // size of the input buffer
 
22892
  State _state;
 
22893
 
 
22894
public:  
 
22895
  ScanBuffer () : _state (STATE_NEW) {}
 
22896
 
 
22897
  // init buffer to directly scan from a string
 
22898
  void init (const char *str, int l = 0);
 
22899
  
 
22900
  char next () { return _buffer[_pos++]; }
 
22901
  char lookahead () { return _buffer[_pos]; }
 
22902
  char *token () const { return _buffer + _token; }
 
22903
  int len () const { return _pos - _token; }
 
22904
  void reset () { _token = _pos = 0; }
 
22905
  void retry () { _pos = _token; } 
 
22906
  void accept (int len) {
 
22907
    _token += len;
 
22908
    _pos = _token;
 
22909
  }
 
22910
  void more (int len) { _pos = _token + len; }
 
22911
  State state () {
 
22912
    if (_state == STATE_OK && _pos >= _buff_size)
 
22913
      return STATE_END;
 
22914
    return _state;
 
22915
  }
 
22916
};
 
22917
 
 
22918
 
 
22919
} // namespace Puma
 
22920
 
 
22921
#endif /* __scan_buffer_h__ */
 
22922
 
 
22923
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
22924
namespace Puma {
 
22925
 
 
22926
 
 
22927
 
 
22928
#line 22929 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22929
} // closed Puma
 
22930
class CCExprResolve;
 
22931
class CExprResolve;
 
22932
class WinIfExists;
 
22933
class WinImportHandler;
 
22934
class WinMacros;
 
22935
class WinAsm;
 
22936
class WinDeclSpecs;
 
22937
class WinMemberExplSpec;
 
22938
class WinTypeKeywords;
 
22939
class WinFriend;
 
22940
class ExtAC;
 
22941
class ExtACBuilderCoupling;
 
22942
class ExtACSyntaxCoupling;
 
22943
class ExtACTree;
 
22944
class ExtACKeywords;
 
22945
class ExtGnu;
 
22946
class PragmaOnceUnitState;
 
22947
class PragmaOnce;
 
22948
class CMatchSyntax;
 
22949
namespace Puma {
 
22950
 
 
22951
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
22952
class CScanBuffer : public ScanBuffer {
 
22953
#line 22954 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
22954
  friend class ::CCExprResolve;
 
22955
  friend class ::CExprResolve;
 
22956
  friend class ::WinIfExists;
 
22957
  friend class ::WinImportHandler;
 
22958
  friend class ::WinMacros;
 
22959
  friend class ::WinAsm;
 
22960
  friend class ::WinDeclSpecs;
 
22961
  friend class ::WinMemberExplSpec;
 
22962
  friend class ::WinTypeKeywords;
 
22963
  friend class ::WinFriend;
 
22964
  friend class ::ExtAC;
 
22965
  friend class ::ExtACBuilderCoupling;
 
22966
  friend class ::ExtACSyntaxCoupling;
 
22967
  friend class ::ExtACTree;
 
22968
  friend class ::ExtACKeywords;
 
22969
  friend class ::ExtGnu;
 
22970
  friend class ::PragmaOnceUnitState;
 
22971
  friend class ::PragmaOnce;
 
22972
  friend class ::CMatchSyntax;
 
22973
 
 
22974
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
 
22975
 
 
22976
 
 
22977
  int _new_line_pos;
 
22978
  void check ();
 
22979
 
 
22980
public:
 
22981
  CScanBuffer () : _new_line_pos (-1) {}
 
22982
  inline char next ();
 
22983
  inline void reset ();
 
22984
  inline void retry (); 
 
22985
  inline void accept (int len);
 
22986
  inline bool new_line (int len) const;
 
22987
};
 
22988
 
 
22989
 
 
22990
inline char CScanBuffer::next () {
 
22991
  char character = ScanBuffer::next ();
 
22992
  if (character == '\n' && _new_line_pos == -1)
 
22993
    _new_line_pos = len ();
 
22994
  if (ScanBuffer::state () == ScanBuffer::STATE_OK &&
 
22995
      ScanBuffer::lookahead () == '\\')
 
22996
    check ();
 
22997
  return character;
 
22998
}
 
22999
 
 
23000
inline void CScanBuffer::reset () { 
 
23001
  ScanBuffer::reset ();
 
23002
  _new_line_pos = -1;
 
23003
  check ();
 
23004
}
 
23005
 
 
23006
inline void CScanBuffer::retry () {
 
23007
  ScanBuffer::retry ();
 
23008
  _new_line_pos = -1;
 
23009
}
 
23010
 
 
23011
inline void CScanBuffer::accept (int len) {
 
23012
  ScanBuffer::accept (len);
 
23013
  _new_line_pos = -1;
 
23014
}
 
23015
 
 
23016
inline bool CScanBuffer::new_line (int len) const {
 
23017
  return _new_line_pos != -1 && _new_line_pos <= len;
 
23018
}
 
23019
 
 
23020
} // namespace Puma
 
23021
 
 
23022
#endif // __CScanBuffer_h__
 
23023
 
 
23024
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
23025
// This file is part of PUMA.
 
23026
// Copyright (C) 1999-2003  The PUMA developer team.
 
23027
//                                                                
 
23028
// This program is free software;  you can redistribute it and/or 
 
23029
// modify it under the terms of the GNU General Public License as 
 
23030
// published by the Free Software Foundation; either version 2 of 
 
23031
// the License, or (at your option) any later version.            
 
23032
//                                                                
 
23033
// This program is distributed in the hope that it will be useful,
 
23034
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
23035
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
23036
// GNU General Public License for more details.                   
 
23037
//                                                                
 
23038
// You should have received a copy of the GNU General Public      
 
23039
// License along with this program; if not, write to the Free     
 
23040
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
23041
// MA  02111-1307  USA                                            
 
23042
 
 
23043
#ifndef __c_comment_recognizer_h__
 
23044
#define __c_comment_recognizer_h__
 
23045
 
 
23046
 
 
23047
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
 
23048
// This file is part of PUMA.
 
23049
// Copyright (C) 1999-2003  The PUMA developer team.
 
23050
//                                                                
 
23051
// This program is free software;  you can redistribute it and/or 
 
23052
// modify it under the terms of the GNU General Public License as 
 
23053
// published by the Free Software Foundation; either version 2 of 
 
23054
// the License, or (at your option) any later version.            
 
23055
//                                                                
 
23056
// This program is distributed in the hope that it will be useful,
 
23057
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
23058
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
23059
// GNU General Public License for more details.                   
 
23060
//                                                                
 
23061
// You should have received a copy of the GNU General Public      
 
23062
// License along with this program; if not, write to the Free     
 
23063
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
23064
// MA  02111-1307  USA                                            
 
23065
 
 
23066
#ifndef __mapped_orange_recognizer_h__
 
23067
#define __mapped_orange_recognizer_h__
 
23068
 
 
23069
// The token recognizer class, which uses scanner tables generated by the
 
23070
// orange tool. Returned expressions mapped according to an orange
 
23071
// generated mapping table
 
23072
 
 
23073
 
 
23074
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
 
23075
// This file is part of PUMA.
 
23076
// Copyright (C) 1999-2003  The PUMA developer team.
 
23077
//                                                                
 
23078
// This program is free software;  you can redistribute it and/or 
 
23079
// modify it under the terms of the GNU General Public License as 
 
23080
// published by the Free Software Foundation; either version 2 of 
 
23081
// the License, or (at your option) any later version.            
 
23082
//                                                                
 
23083
// This program is distributed in the hope that it will be useful,
 
23084
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
23085
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
23086
// GNU General Public License for more details.                   
 
23087
//                                                                
 
23088
// You should have received a copy of the GNU General Public      
 
23089
// License along with this program; if not, write to the Free     
 
23090
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
23091
// MA  02111-1307  USA                                            
 
23092
 
 
23093
#ifndef __recognizer_h__
 
23094
#define __recognizer_h__
 
23095
 
 
23096
// The token recognizer class, which uses scanner tables generated by the
 
23097
// orange tool.
 
23098
 
 
23099
namespace Puma {
 
23100
 
 
23101
 
 
23102
#ifndef __TTGEN__
 
23103
#  define __TTGEN__
 
23104
typedef struct
 
23105
 { unsigned char Type;
 
23106
   unsigned char LookAhead;
 
23107
   int           Expression;
 
23108
   int           Start;
 
23109
 } States;                                                                   
 
23110
#endif
 
23111
 
 
23112
 
 
23113
// class declaration
 
23114
 
 
23115
template <typename TScanBuffer>
 
23116
class OrangeRecognizer {
 
23117
  // local structures generated by Orange
 
23118
 
 
23119
  char *_map;
 
23120
  int _start;
 
23121
  States *_state;
 
23122
  int *_next;
 
23123
  int *_control;
 
23124
  int _tab_size;
 
23125
 
 
23126
public:
 
23127
  OrangeRecognizer (char *map, int start, States *state, int *next,
 
23128
                    int *control, int tab_size) : 
 
23129
    _map (map), _start (start), _state (state), _next (next),
 
23130
    _control (control), _tab_size (tab_size)
 
23131
   {}
 
23132
 
 
23133
  // try to recognize the current token in the character buffer
 
23134
  // returns 1 on success, 0 on eof, -1 on unknown token
 
23135
  int recognize (TScanBuffer *scan_buffer, int &token, int &len); 
 
23136
};
 
23137
 
 
23138
template <typename TScanBuffer>
 
23139
int OrangeRecognizer<TScanBuffer>::recognize (TScanBuffer *scan_buffer,
 
23140
                                              int &token, int &len) {
 
23141
  int  NextState;
 
23142
  char Character;
 
23143
  char CharClass;
 
23144
  int  NextStatePos;
 
23145
  int  State;
 
23146
  int  LookAheadLen;
 
23147
  int  AcceptLen;
 
23148
  int  AcceptState;
 
23149
  typename TScanBuffer::State buffer_state = TScanBuffer::STATE_OK;
 
23150
 
 
23151
  State = _start;
 
23152
  AcceptState = -1;
 
23153
  LookAheadLen = 0;
 
23154
  AcceptLen = 0;
 
23155
 
 
23156
  do { 
 
23157
    Character = scan_buffer->next ();
 
23158
 
 
23159
    CharClass = _map[(unsigned char)Character];
 
23160
    if (CharClass == -1)
 
23161
      break;
 
23162
 
 
23163
    NextStatePos = _state[State].Start + CharClass;
 
23164
    if (NextStatePos < 0 || NextStatePos >= _tab_size ||
 
23165
        _control[NextStatePos] != State)
 
23166
      break;
 
23167
 
 
23168
    if ((NextState = _next[NextStatePos]) == -1)
 
23169
      break;
 
23170
 
 
23171
    State = NextState;
 
23172
 
 
23173
    if (_state[State].Type > 0) {
 
23174
      AcceptState = State; // remember this (terminal) state
 
23175
      AcceptLen = scan_buffer->len ();
 
23176
    }
 
23177
 
 
23178
    if (_state[State].LookAhead)
 
23179
      LookAheadLen = scan_buffer->len ();
 
23180
 
 
23181
    buffer_state = scan_buffer->state ();
 
23182
  } while (NextState != -1 && buffer_state == TScanBuffer::STATE_OK);
 
23183
 
 
23184
  if (buffer_state == TScanBuffer::STATE_ERROR)
 
23185
    return -1;
 
23186
 
 
23187
  if (AcceptState == -1)
 
23188
    return 0;
 
23189
 
 
23190
  len   = (_state[AcceptState].Type == 2) ? LookAheadLen : AcceptLen;
 
23191
  token = _state[AcceptState].Expression;
 
23192
 
 
23193
  return 1;
 
23194
}
 
23195
 
 
23196
} // namespace Puma
 
23197
 
 
23198
#endif /* __orange_recognizer_h__ */
 
23199
 
 
23200
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
 
23201
namespace Puma {
 
23202
 
 
23203
 
 
23204
// class declaration
 
23205
 
 
23206
template <class ScanBuffer>
 
23207
class MappedOrangeRecognizer : public OrangeRecognizer<ScanBuffer> {
 
23208
  int *_expr_map;
 
23209
 
 
23210
public:
 
23211
  MappedOrangeRecognizer (char *map, int *expr_map, int start, 
 
23212
                          States *state, int *next,
 
23213
                          int *control, int tab_size) : 
 
23214
    OrangeRecognizer<ScanBuffer> (map, start, state, next, control, tab_size),
 
23215
    _expr_map (expr_map) 
 
23216
   {}
 
23217
 
 
23218
  // try to recognize the current token in the character buffer
 
23219
  // returns 1 on success, 0 on eof, -1 on unknown token
 
23220
  int recognize (ScanBuffer *scan_buffer, int &token, int &len) {
 
23221
    int result;
 
23222
 
 
23223
    if ((result = OrangeRecognizer<ScanBuffer>::recognize (scan_buffer, token, len)) == 1) {
 
23224
      token = _expr_map[token];
 
23225
    }
 
23226
    return result;
 
23227
  }
 
23228
};
 
23229
 
 
23230
 
 
23231
} // namespace Puma
 
23232
 
 
23233
#endif // __mapped_orange_recognizer_h__
 
23234
 
 
23235
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
23236
namespace Puma {
 
23237
 
 
23238
 
 
23239
 
 
23240
#line 23241 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23241
} // closed Puma
 
23242
class CCExprResolve;
 
23243
class CExprResolve;
 
23244
class WinIfExists;
 
23245
class WinImportHandler;
 
23246
class WinMacros;
 
23247
class WinAsm;
 
23248
class WinDeclSpecs;
 
23249
class WinMemberExplSpec;
 
23250
class WinTypeKeywords;
 
23251
class WinFriend;
 
23252
class ExtAC;
 
23253
class ExtACBuilderCoupling;
 
23254
class ExtACSyntaxCoupling;
 
23255
class ExtACTree;
 
23256
class ExtACKeywords;
 
23257
class ExtGnu;
 
23258
class PragmaOnceUnitState;
 
23259
class PragmaOnce;
 
23260
class CMatchSyntax;
 
23261
namespace Puma {
 
23262
 
 
23263
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
23264
class CCommentRecognizer {
 
23265
#line 23266 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23266
  friend class ::CCExprResolve;
 
23267
  friend class ::CExprResolve;
 
23268
  friend class ::WinIfExists;
 
23269
  friend class ::WinImportHandler;
 
23270
  friend class ::WinMacros;
 
23271
  friend class ::WinAsm;
 
23272
  friend class ::WinDeclSpecs;
 
23273
  friend class ::WinMemberExplSpec;
 
23274
  friend class ::WinTypeKeywords;
 
23275
  friend class ::WinFriend;
 
23276
  friend class ::ExtAC;
 
23277
  friend class ::ExtACBuilderCoupling;
 
23278
  friend class ::ExtACSyntaxCoupling;
 
23279
  friend class ::ExtACTree;
 
23280
  friend class ::ExtACKeywords;
 
23281
  friend class ::ExtGnu;
 
23282
  friend class ::PragmaOnceUnitState;
 
23283
  friend class ::PragmaOnce;
 
23284
  friend class ::CMatchSyntax;
 
23285
 
 
23286
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
 
23287
 
 
23288
public:
 
23289
  typedef enum { NO_COMMENT, SL_COMMENT, ML_COMMENT } Mode;
 
23290
 
 
23291
private:
 
23292
  static MappedOrangeRecognizer<CScanBuffer> comment_recognizer;   
 
23293
  static MappedOrangeRecognizer<CScanBuffer> sl_comment_recognizer;   
 
23294
  static MappedOrangeRecognizer<CScanBuffer> ml_comment_recognizer;   
 
23295
  Mode comment_mode;
 
23296
 
 
23297
public:
 
23298
  CCommentRecognizer () : comment_mode (NO_COMMENT) {}
 
23299
  int recognize (CScanBuffer *scan_buffer, int &expr, int &len);
 
23300
  void mode (Mode mode) { comment_mode = mode; }
 
23301
  Mode mode () { return comment_mode; }
 
23302
};
 
23303
 
 
23304
 
 
23305
} // namespace Puma
 
23306
 
 
23307
#endif /* __c_comment_recognizer_h__ */
 
23308
 
 
23309
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
23310
// This file is part of PUMA.
 
23311
// Copyright (C) 1999-2003  The PUMA developer team.
 
23312
//                                                                
 
23313
// This program is free software;  you can redistribute it and/or 
 
23314
// modify it under the terms of the GNU General Public License as 
 
23315
// published by the Free Software Foundation; either version 2 of 
 
23316
// the License, or (at your option) any later version.            
 
23317
//                                                                
 
23318
// This program is distributed in the hope that it will be useful,
 
23319
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
23320
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
23321
// GNU General Public License for more details.                   
 
23322
//                                                                
 
23323
// You should have received a copy of the GNU General Public      
 
23324
// License along with this program; if not, write to the Free     
 
23325
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
23326
// MA  02111-1307  USA                                            
 
23327
 
 
23328
#ifndef __keyword_recognizer_h__
 
23329
#define __keyword_recognizer_h__
 
23330
 
 
23331
 
 
23332
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
23333
namespace Puma {
 
23334
 
 
23335
 
 
23336
 
 
23337
#line 23338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23338
} // closed Puma
 
23339
class CCExprResolve;
 
23340
class CExprResolve;
 
23341
class WinIfExists;
 
23342
class WinImportHandler;
 
23343
class WinMacros;
 
23344
class WinAsm;
 
23345
class WinDeclSpecs;
 
23346
class WinMemberExplSpec;
 
23347
class WinTypeKeywords;
 
23348
class WinFriend;
 
23349
class ExtAC;
 
23350
class ExtACBuilderCoupling;
 
23351
class ExtACSyntaxCoupling;
 
23352
class ExtACTree;
 
23353
class ExtACKeywords;
 
23354
class ExtGnu;
 
23355
class PragmaOnceUnitState;
 
23356
class PragmaOnce;
 
23357
class CMatchSyntax;
 
23358
namespace Puma {
 
23359
 
 
23360
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
23361
class KeywordRecognizer {
 
23362
#line 23363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23363
  friend class ::CCExprResolve;
 
23364
  friend class ::CExprResolve;
 
23365
  friend class ::WinIfExists;
 
23366
  friend class ::WinImportHandler;
 
23367
  friend class ::WinMacros;
 
23368
  friend class ::WinAsm;
 
23369
  friend class ::WinDeclSpecs;
 
23370
  friend class ::WinMemberExplSpec;
 
23371
  friend class ::WinTypeKeywords;
 
23372
  friend class ::WinFriend;
 
23373
  friend class ::ExtAC;
 
23374
  friend class ::ExtACBuilderCoupling;
 
23375
  friend class ::ExtACSyntaxCoupling;
 
23376
  friend class ::ExtACTree;
 
23377
  friend class ::ExtACKeywords;
 
23378
  friend class ::ExtGnu;
 
23379
  friend class ::PragmaOnceUnitState;
 
23380
  friend class ::PragmaOnce;
 
23381
  friend class ::CMatchSyntax;
 
23382
 
 
23383
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
 
23384
 
 
23385
protected:
 
23386
  virtual MappedOrangeRecognizer<CScanBuffer> &recognizer() = 0;
 
23387
 
 
23388
public:
 
23389
  virtual ~KeywordRecognizer () {}
 
23390
  virtual int recognize (CScanBuffer *scan_buffer, int &expr, int &len);
 
23391
};
 
23392
 
 
23393
 
 
23394
} // namespace Puma
 
23395
 
 
23396
#endif /* __keyword_recognizer_h__ */
 
23397
 
 
23398
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
23399
namespace Puma {
 
23400
 
 
23401
 
 
23402
 
 
23403
#line 23404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23404
} // closed Puma
 
23405
class CCExprResolve;
 
23406
class CExprResolve;
 
23407
class WinIfExists;
 
23408
class WinImportHandler;
 
23409
class WinMacros;
 
23410
class WinAsm;
 
23411
class WinDeclSpecs;
 
23412
class WinMemberExplSpec;
 
23413
class WinTypeKeywords;
 
23414
class WinFriend;
 
23415
class ExtAC;
 
23416
class ExtACBuilderCoupling;
 
23417
class ExtACSyntaxCoupling;
 
23418
class ExtACTree;
 
23419
class ExtACKeywords;
 
23420
class ExtGnu;
 
23421
class PragmaOnceUnitState;
 
23422
class PragmaOnce;
 
23423
class CMatchSyntax;
 
23424
namespace Puma {
 
23425
 
 
23426
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
23427
class CRecognizer {
 
23428
#line 23429 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23429
  friend class ::CCExprResolve;
 
23430
  friend class ::CExprResolve;
 
23431
  friend class ::WinIfExists;
 
23432
  friend class ::WinImportHandler;
 
23433
  friend class ::WinMacros;
 
23434
  friend class ::WinAsm;
 
23435
  friend class ::WinDeclSpecs;
 
23436
  friend class ::WinMemberExplSpec;
 
23437
  friend class ::WinTypeKeywords;
 
23438
  friend class ::WinFriend;
 
23439
  friend class ::ExtAC;
 
23440
  friend class ::ExtACBuilderCoupling;
 
23441
  friend class ::ExtACSyntaxCoupling;
 
23442
  friend class ::ExtACTree;
 
23443
  friend class ::ExtACKeywords;
 
23444
  friend class ::ExtGnu;
 
23445
  friend class ::PragmaOnceUnitState;
 
23446
  friend class ::PragmaOnce;
 
23447
  friend class ::CMatchSyntax;
 
23448
 
 
23449
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
 
23450
 
 
23451
  CCommentRecognizer comment_recognizer;
 
23452
  Array<KeywordRecognizer*> additional_keyword_recognizers;
 
23453
 
 
23454
public:
 
23455
  CScanBuffer scan_buffer; // TODO: temporarily made public!
 
23456
 
 
23457
  typedef enum { NORMAL, IN_COMP_DIR, IN_PRE_DIR } Mode;
 
23458
  typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, CORE, 
 
23459
                 KEYWORD, ID, WILDCARD, UNKNOWN } Lang;
 
23460
 
 
23461
  CRecognizer () : directives(true), wildcards (false),
 
23462
    aspectc (false), macro_ops (false),
 
23463
    std_c (true), std_cplusplus (true) {}
 
23464
  void allow_directives (bool flag = true)    { directives = flag; }
 
23465
  void allow_wildcards (bool flag = true)     { wildcards = flag; }
 
23466
  void allow_aspectc (bool flag = true)       { aspectc   = flag; } 
 
23467
  void allow_macro_ops (bool flag = true)     { macro_ops = flag; }
 
23468
  void allow_std_c (bool flag = true)         { std_c = flag; }
 
23469
  void allow_std_cplusplus (bool flag = true) { std_cplusplus = flag; }
 
23470
  void setup ();
 
23471
  int recognize (Lang &lang, int &expr, int &len);
 
23472
  Mode mode () const { return scan_mode; }
 
23473
  void mode (Mode mode) { scan_mode = mode; }
 
23474
  CScanBuffer& buffer () { return scan_buffer; }
 
23475
  void addRecognizer(KeywordRecognizer &recognizer) 
 
23476
   { additional_keyword_recognizers.append(&recognizer); }
 
23477
 
 
23478
private:
 
23479
  static MappedOrangeRecognizer<CScanBuffer> pre_dir_recognizer;
 
23480
  static MappedOrangeRecognizer<CScanBuffer> pre_token_recognizer;
 
23481
  static OrangeRecognizer<CScanBuffer> dir_recognizer;
 
23482
  static MappedOrangeRecognizer<CScanBuffer> wildcard_recognizer;
 
23483
  static MappedOrangeRecognizer<CScanBuffer> core_recognizer;
 
23484
  static MappedOrangeRecognizer<CScanBuffer> identifier_recognizer;
 
23485
 
 
23486
  Mode scan_mode;
 
23487
  bool directives;
 
23488
  bool wildcards;
 
23489
  bool aspectc;
 
23490
  bool macro_ops;
 
23491
  bool std_c;
 
23492
  bool std_cplusplus;
 
23493
};
 
23494
 
 
23495
 
 
23496
} // namespace Puma
 
23497
 
 
23498
#endif /* __c_recognizer_h__ */
 
23499
 
 
23500
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
23501
// This file is part of PUMA.
 
23502
// Copyright (C) 1999-2003  The PUMA developer team.
 
23503
//                                                                
 
23504
// This program is free software;  you can redistribute it and/or 
 
23505
// modify it under the terms of the GNU General Public License as 
 
23506
// published by the Free Software Foundation; either version 2 of 
 
23507
// the License, or (at your option) any later version.            
 
23508
//                                                                
 
23509
// This program is distributed in the hope that it will be useful,
 
23510
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
23511
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
23512
// GNU General Public License for more details.                   
 
23513
//                                                                
 
23514
// You should have received a copy of the GNU General Public      
 
23515
// License along with this program; if not, write to the Free     
 
23516
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
23517
// MA  02111-1307  USA                                            
 
23518
 
 
23519
#ifndef __Tokenizer_h__
 
23520
#define __Tokenizer_h__
 
23521
 
 
23522
// Tokenizer interface. Tokenizer read input from a "Source" and
 
23523
// form tokens, which used to fill a "Unit".
 
23524
 
 
23525
 
 
23526
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
 
23527
// This file is part of PUMA.
 
23528
// Copyright (C) 1999-2003  The PUMA developer team.
 
23529
//                                                                
 
23530
// This program is free software;  you can redistribute it and/or 
 
23531
// modify it under the terms of the GNU General Public License as 
 
23532
// published by the Free Software Foundation; either version 2 of 
 
23533
// the License, or (at your option) any later version.            
 
23534
//                                                                
 
23535
// This program is distributed in the hope that it will be useful,
 
23536
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
23537
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
23538
// GNU General Public License for more details.                   
 
23539
//                                                                
 
23540
// You should have received a copy of the GNU General Public      
 
23541
// License along with this program; if not, write to the Free     
 
23542
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
23543
// MA  02111-1307  USA                                            
 
23544
 
 
23545
#ifndef __source_h__
 
23546
#define __source_h__
 
23547
 
 
23548
namespace Puma {
 
23549
 
 
23550
 
 
23551
 
 
23552
#line 23553 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23553
} // closed Puma
 
23554
class CCExprResolve;
 
23555
class CExprResolve;
 
23556
class WinIfExists;
 
23557
class WinImportHandler;
 
23558
class WinMacros;
 
23559
class WinAsm;
 
23560
class WinDeclSpecs;
 
23561
class WinMemberExplSpec;
 
23562
class WinTypeKeywords;
 
23563
class WinFriend;
 
23564
class ExtAC;
 
23565
class ExtACBuilderCoupling;
 
23566
class ExtACSyntaxCoupling;
 
23567
class ExtACTree;
 
23568
class ExtACKeywords;
 
23569
class ExtGnu;
 
23570
class PragmaOnceUnitState;
 
23571
class PragmaOnce;
 
23572
class CMatchSyntax;
 
23573
namespace Puma {
 
23574
 
 
23575
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
 
23576
class Source {
 
23577
#line 23578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23578
  friend class ::CCExprResolve;
 
23579
  friend class ::CExprResolve;
 
23580
  friend class ::WinIfExists;
 
23581
  friend class ::WinImportHandler;
 
23582
  friend class ::WinMacros;
 
23583
  friend class ::WinAsm;
 
23584
  friend class ::WinDeclSpecs;
 
23585
  friend class ::WinMemberExplSpec;
 
23586
  friend class ::WinTypeKeywords;
 
23587
  friend class ::WinFriend;
 
23588
  friend class ::ExtAC;
 
23589
  friend class ::ExtACBuilderCoupling;
 
23590
  friend class ::ExtACSyntaxCoupling;
 
23591
  friend class ::ExtACTree;
 
23592
  friend class ::ExtACKeywords;
 
23593
  friend class ::ExtGnu;
 
23594
  friend class ::PragmaOnceUnitState;
 
23595
  friend class ::PragmaOnce;
 
23596
  friend class ::CMatchSyntax;
 
23597
 
 
23598
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Source.h"
 
23599
 
 
23600
public:
 
23601
  Source () {}
 
23602
  virtual ~Source () {}
 
23603
  virtual int read (char *dest, int n) = 0;
 
23604
  virtual int size () { return -1; }
 
23605
};
 
23606
 
 
23607
 
 
23608
} // namespace Puma
 
23609
 
 
23610
#endif /* __source_h__ */
 
23611
 
 
23612
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
23613
namespace Puma {
 
23614
 
 
23615
 
 
23616
 
 
23617
#line 23618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23618
} // closed Puma
 
23619
class CCExprResolve;
 
23620
class CExprResolve;
 
23621
class WinIfExists;
 
23622
class WinImportHandler;
 
23623
class WinMacros;
 
23624
class WinAsm;
 
23625
class WinDeclSpecs;
 
23626
class WinMemberExplSpec;
 
23627
class WinTypeKeywords;
 
23628
class WinFriend;
 
23629
class ExtAC;
 
23630
class ExtACBuilderCoupling;
 
23631
class ExtACSyntaxCoupling;
 
23632
class ExtACTree;
 
23633
class ExtACKeywords;
 
23634
class ExtGnu;
 
23635
class PragmaOnceUnitState;
 
23636
class PragmaOnce;
 
23637
class CMatchSyntax;
 
23638
namespace Puma {
 
23639
 
 
23640
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
23641
class Tokenizer {
 
23642
#line 23643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23643
  friend class ::CCExprResolve;
 
23644
  friend class ::CExprResolve;
 
23645
  friend class ::WinIfExists;
 
23646
  friend class ::WinImportHandler;
 
23647
  friend class ::WinMacros;
 
23648
  friend class ::WinAsm;
 
23649
  friend class ::WinDeclSpecs;
 
23650
  friend class ::WinMemberExplSpec;
 
23651
  friend class ::WinTypeKeywords;
 
23652
  friend class ::WinFriend;
 
23653
  friend class ::ExtAC;
 
23654
  friend class ::ExtACBuilderCoupling;
 
23655
  friend class ::ExtACSyntaxCoupling;
 
23656
  friend class ::ExtACTree;
 
23657
  friend class ::ExtACKeywords;
 
23658
  friend class ::ExtGnu;
 
23659
  friend class ::PragmaOnceUnitState;
 
23660
  friend class ::PragmaOnce;
 
23661
  friend class ::CMatchSyntax;
 
23662
 
 
23663
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
 
23664
 
 
23665
public:
 
23666
  virtual ~Tokenizer () {}
 
23667
  virtual void fill_unit (Source &in, Unit &unit) = 0;
 
23668
};
 
23669
 
 
23670
 
 
23671
} // namespace Puma
 
23672
 
 
23673
#endif /* __Tokenizer_h__ */
 
23674
 
 
23675
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
23676
namespace Puma {
 
23677
 
 
23678
 
 
23679
class Token;
 
23680
 
 
23681
 
 
23682
#line 23683 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23683
} // closed Puma
 
23684
class CCExprResolve;
 
23685
class CExprResolve;
 
23686
class WinIfExists;
 
23687
class WinImportHandler;
 
23688
class WinMacros;
 
23689
class WinAsm;
 
23690
class WinDeclSpecs;
 
23691
class WinMemberExplSpec;
 
23692
class WinTypeKeywords;
 
23693
class WinFriend;
 
23694
class ExtAC;
 
23695
class ExtACBuilderCoupling;
 
23696
class ExtACSyntaxCoupling;
 
23697
class ExtACTree;
 
23698
class ExtACKeywords;
 
23699
class ExtGnu;
 
23700
class PragmaOnceUnitState;
 
23701
class PragmaOnce;
 
23702
class CMatchSyntax;
 
23703
namespace Puma {
 
23704
 
 
23705
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
23706
class CScanner : public CRecognizer, public Tokenizer {
 
23707
#line 23708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23708
  friend class ::CCExprResolve;
 
23709
  friend class ::CExprResolve;
 
23710
  friend class ::WinIfExists;
 
23711
  friend class ::WinImportHandler;
 
23712
  friend class ::WinMacros;
 
23713
  friend class ::WinAsm;
 
23714
  friend class ::WinDeclSpecs;
 
23715
  friend class ::WinMemberExplSpec;
 
23716
  friend class ::WinTypeKeywords;
 
23717
  friend class ::WinFriend;
 
23718
  friend class ::ExtAC;
 
23719
  friend class ::ExtACBuilderCoupling;
 
23720
  friend class ::ExtACSyntaxCoupling;
 
23721
  friend class ::ExtACTree;
 
23722
  friend class ::ExtACKeywords;
 
23723
  friend class ::ExtGnu;
 
23724
  friend class ::PragmaOnceUnitState;
 
23725
  friend class ::PragmaOnce;
 
23726
  friend class ::CMatchSyntax;
 
23727
 
 
23728
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
23729
 
 
23730
  Location loc;
 
23731
  ErrorSink &err;
 
23732
 
 
23733
  Token *make_token (CRecognizer::Lang lang, int expr, int len);
 
23734
  LanguageID map_lang (CRecognizer::Lang lang);
 
23735
  Token *scan ();
 
23736
  void scan_all (Unit &unit);
 
23737
 
 
23738
public:
 
23739
  CScanner (ErrorSink &error_stream) : err (error_stream) {}
 
23740
  virtual ~CScanner () {}
 
23741
  void configure (const Config &);
 
23742
  
 
23743
#line 23744 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23744
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
23745
 
 
23746
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
23747
void fill_unit (Source &in, Unit &unit);
 
23748
  
 
23749
#line 23750 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23750
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
23751
 
 
23752
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
23753
void fill_unit (const char *in, Unit &unit);
 
23754
};
 
23755
 
 
23756
 
 
23757
} // namespace Puma
 
23758
 
 
23759
#endif /* __c_scanner_h__ */
 
23760
 
 
23761
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
23762
namespace Puma {
 
23763
 
 
23764
 
 
23765
class Source;
 
23766
class CTypeInfo;
 
23767
 
 
23768
 
 
23769
#line 23770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23770
} // closed Puma
 
23771
class CCExprResolve;
 
23772
class CExprResolve;
 
23773
class WinIfExists;
 
23774
class WinImportHandler;
 
23775
class WinMacros;
 
23776
class WinAsm;
 
23777
class WinDeclSpecs;
 
23778
class WinMemberExplSpec;
 
23779
class WinTypeKeywords;
 
23780
class WinFriend;
 
23781
class ExtAC;
 
23782
class ExtACBuilderCoupling;
 
23783
class ExtACSyntaxCoupling;
 
23784
class ExtACTree;
 
23785
class ExtACKeywords;
 
23786
class ExtGnu;
 
23787
class PragmaOnceUnitState;
 
23788
class PragmaOnce;
 
23789
class CMatchSyntax;
 
23790
namespace Puma {
 
23791
 
 
23792
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
23793
class CProject : public Project {
 
23794
#line 23795 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23795
  friend class ::CCExprResolve;
 
23796
  friend class ::CExprResolve;
 
23797
  friend class ::WinIfExists;
 
23798
  friend class ::WinImportHandler;
 
23799
  friend class ::WinMacros;
 
23800
  friend class ::WinAsm;
 
23801
  friend class ::WinDeclSpecs;
 
23802
  friend class ::WinMemberExplSpec;
 
23803
  friend class ::WinTypeKeywords;
 
23804
  friend class ::WinFriend;
 
23805
  friend class ::ExtAC;
 
23806
  friend class ::ExtACBuilderCoupling;
 
23807
  friend class ::ExtACSyntaxCoupling;
 
23808
  friend class ::ExtACTree;
 
23809
  friend class ::ExtACKeywords;
 
23810
  friend class ::ExtGnu;
 
23811
  friend class ::PragmaOnceUnitState;
 
23812
  friend class ::PragmaOnce;
 
23813
  friend class ::CMatchSyntax;
 
23814
 
 
23815
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
23816
 
 
23817
  Config _config;
 
23818
  CScanner _scanner;
 
23819
 
 
23820
public:
 
23821
  CProject (ErrorStream &e);
 
23822
 
 
23823
  // Constructor: Add some source directories.
 
23824
  CProject (ErrorStream &, const char *defs, 
 
23825
               const char *decls = (const char*)0); 
 
23826
 
 
23827
  // Constructor: Setup preprocessor configuration according to
 
23828
  // command line parameter and the global config file and
 
23829
  // add some source directories.
 
23830
  CProject (ErrorStream &, int &argc, char **&argv, 
 
23831
            const char *defs = (const char*)0, 
 
23832
            const char *decls = (const char*)0);
 
23833
 
 
23834
public: // Project configuration 
 
23835
  // Get the preprocessor configuration.
 
23836
  Config &config ();
 
23837
 
 
23838
  // Configure the project from the command line or a file.
 
23839
  virtual void configure (Config &);
 
23840
 
 
23841
  // Add a new file to the project.
 
23842
  Unit *addFile (Filename file);
 
23843
 
 
23844
public: // Scanner interface
 
23845
  // Get the scanner.
 
23846
  CScanner &scanner ();
 
23847
 
 
23848
  // Scan the file `file' or the source if given. When
 
23849
  // scanning a source the resulting unit gets the name `file'.
 
23850
  
 
23851
#line 23852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23852
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
23853
 
 
23854
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
23855
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
 
23856
                          bool isFile = true);
 
23857
        
 
23858
  // Scan a string. The resulting unit gets the name `name'.
 
23859
  // (and will not be registered at the unit manager!)
 
23860
  virtual Unit *scanString (const char *str, 
 
23861
                            const char *name = (const char*)0);
 
23862
 
 
23863
public: // Miscellaneous Functions
 
23864
 
 
23865
  // Give the filename needed to include a particular header file
 
23866
  Filename getInclString (Filename filename);
 
23867
 
 
23868
private:
 
23869
  // Map the type string from --size-type and --ptrdiff-type
 
23870
  // to real Puma type.
 
23871
  CTypeInfo *mapType (const char *) const;
 
23872
};
 
23873
 
 
23874
inline Config &CProject::config () 
 
23875
 { return _config; }
 
23876
inline CScanner &CProject::scanner () 
 
23877
 { return _scanner; }
 
23878
 
 
23879
 
 
23880
} // namespace Puma
 
23881
 
 
23882
#endif /* __CProject_h__ */
 
23883
 
 
23884
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
23885
using namespace std;
 
23886
 
 
23887
namespace Puma {
 
23888
 
 
23889
 
 
23890
class CObjectInfo;
 
23891
class CClassInfo;
 
23892
class CUnionInfo;
 
23893
class CEnumInfo;
 
23894
class CTypedefInfo;
 
23895
class CTemplateParamInfo;
 
23896
class CTypeInfo;
 
23897
class CFileInfo;
 
23898
class Token;
 
23899
 
 
23900
/** \file 
 
23901
 *  Database of all semantic objects (infos) of a project. 
 
23902
 *  \see Puma::CClassDatabase */
 
23903
 
 
23904
/** \class CClassDatabase CClassDatabase.h Puma/infos/CClassDatabase.h
 
23905
 *  A CClassDatabase object is a database of all semantic objects
 
23906
 *  (infos) of a project. */
 
23907
 
 
23908
#line 23909 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23909
} // closed Puma
 
23910
class CCExprResolve;
 
23911
class CExprResolve;
 
23912
class WinIfExists;
 
23913
class WinImportHandler;
 
23914
class WinMacros;
 
23915
class WinAsm;
 
23916
class WinDeclSpecs;
 
23917
class WinMemberExplSpec;
 
23918
class WinTypeKeywords;
 
23919
class WinFriend;
 
23920
class ExtAC;
 
23921
class ExtACBuilderCoupling;
 
23922
class ExtACSyntaxCoupling;
 
23923
class ExtACTree;
 
23924
class ExtACKeywords;
 
23925
class ExtGnu;
 
23926
class PragmaOnceUnitState;
 
23927
class PragmaOnce;
 
23928
class CMatchSyntax;
 
23929
namespace Puma {
 
23930
 
 
23931
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
23932
 
 
23933
#line 23934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23934
} // closed Puma
 
23935
 
 
23936
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
23937
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
23938
 
 
23939
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
23940
// This file is part of PUMA.
 
23941
// Copyright (C) 1999-2003  The PUMA developer team.
 
23942
//                                                                
 
23943
// This program is free software;  you can redistribute it and/or 
 
23944
// modify it under the terms of the GNU General Public License as 
 
23945
// published by the Free Software Foundation; either version 2 of 
 
23946
// the License, or (at your option) any later version.            
 
23947
//                                                                
 
23948
// This program is distributed in the hope that it will be useful,
 
23949
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
23950
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
23951
// GNU General Public License for more details.                   
 
23952
//                                                                
 
23953
// You should have received a copy of the GNU General Public      
 
23954
// License along with this program; if not, write to the Free     
 
23955
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
23956
// MA  02111-1307  USA                                            
 
23957
 
 
23958
#ifndef __ext_ac_ah__
 
23959
#define __ext_ac_ah__
 
23960
 
 
23961
 
 
23962
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
23963
// This file is part of PUMA.
 
23964
// Copyright (C) 1999-2003  The PUMA developer team.
 
23965
//                                                                
 
23966
// This program is free software;  you can redistribute it and/or 
 
23967
// modify it under the terms of the GNU General Public License as 
 
23968
// published by the Free Software Foundation; either version 2 of 
 
23969
// the License, or (at your option) any later version.            
 
23970
//                                                                
 
23971
// This program is distributed in the hope that it will be useful,
 
23972
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
23973
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
23974
// GNU General Public License for more details.                   
 
23975
//                                                                
 
23976
// You should have received a copy of the GNU General Public      
 
23977
// License along with this program; if not, write to the Free     
 
23978
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
23979
// MA  02111-1307  USA                                            
 
23980
 
 
23981
#ifndef __ACTree_h__
 
23982
#define __ACTree_h__
 
23983
 
 
23984
 
 
23985
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
23986
 
 
23987
#line 23988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
23988
 
 
23989
#ifndef __ac_fwd_ExtACTree__
 
23990
#define __ac_fwd_ExtACTree__
 
23991
class ExtACTree;
 
23992
namespace AC {
 
23993
  template <class JoinPoint>
 
23994
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
23995
  template <class JoinPoint>
 
23996
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
23997
}
 
23998
#endif
 
23999
 
 
24000
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
24001
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
24002
#endif
 
24003
 
 
24004
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24005
// This file is part of PUMA.
 
24006
// Copyright (C) 1999-2003  The PUMA developer team.
 
24007
//                                                                
 
24008
// This program is free software;  you can redistribute it and/or 
 
24009
// modify it under the terms of the GNU General Public License as 
 
24010
// published by the Free Software Foundation; either version 2 of 
 
24011
// the License, or (at your option) any later version.            
 
24012
//                                                                
 
24013
// This program is distributed in the hope that it will be useful,
 
24014
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
24015
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
24016
// GNU General Public License for more details.                   
 
24017
//                                                                
 
24018
// You should have received a copy of the GNU General Public      
 
24019
// License along with this program; if not, write to the Free     
 
24020
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
24021
// MA  02111-1307  USA                                            
 
24022
 
 
24023
#ifndef __CTree_h__
 
24024
#define __CTree_h__
 
24025
 
 
24026
namespace Puma {
 
24027
 
 
24028
 
 
24029
// Syntax tree node hierarchy:
 
24030
class CTree;
 
24031
class   CT_Statement;          
 
24032
class     CT_LabelStmt;
 
24033
class     CT_IfStmt;
 
24034
class     CT_IfElseStmt;
 
24035
class     CT_SwitchStmt;
 
24036
class     CT_BreakStmt;
 
24037
class     CT_ExprStmt;
 
24038
class     CT_WhileStmt;
 
24039
class     CT_DoStmt;
 
24040
class     CT_ForStmt;
 
24041
class     CT_ContinueStmt;
 
24042
class     CT_ReturnStmt;
 
24043
class     CT_GotoStmt;
 
24044
class     CT_DeclStmt;
 
24045
class     CT_CaseStmt;
 
24046
class     CT_DefaultStmt;
 
24047
class     CT_TryStmt;
 
24048
class   CT_Expression;
 
24049
class     CT_Call;
 
24050
class       CT_CallExpr;
 
24051
class       CT_ImplicitCall;
 
24052
class     CT_ThrowExpr;
 
24053
class     CT_NewExpr;
 
24054
class     CT_DeleteExpr;
 
24055
class     CT_ConstructExpr;
 
24056
class     CT_Integer;
 
24057
class     CT_Character;
 
24058
class       CT_WideCharacter;
 
24059
class     CT_Float;
 
24060
class     CT_Bool;
 
24061
class     CT_BracedExpr;
 
24062
class     CT_BinaryExpr;
 
24063
class       CT_MembPtrExpr;
 
24064
class         CT_MembRefExpr;
 
24065
class     CT_UnaryExpr;
 
24066
class       CT_PostfixExpr;
 
24067
class       CT_AddrExpr;
 
24068
class       CT_DerefExpr;
 
24069
class     CT_IfThenExpr;
 
24070
class     CT_CmpdLiteral;
 
24071
class     CT_IndexExpr;
 
24072
class     CT_CastExpr;
 
24073
class     CT_StaticCast;
 
24074
class       CT_ConstCast;
 
24075
class       CT_ReintCast;
 
24076
class       CT_DynamicCast;
 
24077
class     CT_TypeidExpr;
 
24078
class     CT_SizeofExpr;
 
24079
class     CT_MembDesignator;
 
24080
class     CT_IndexDesignator;
 
24081
class     CT_ImplicitCast;
 
24082
class   CT_DeclSpec;
 
24083
class     CT_PrimDeclSpec;
 
24084
class     CT_NamedType;
 
24085
class     CT_ClassSpec;
 
24086
class       CT_UnionSpec;
 
24087
class       CT_EnumSpec;
 
24088
class     CT_ExceptionSpec;
 
24089
class   CT_Declarator;
 
24090
class     CT_InitDeclarator;
 
24091
class     CT_BracedDeclarator;
 
24092
class     CT_ArrayDeclarator;
 
24093
class     CT_FctDeclarator;
 
24094
class     CT_RefDeclarator;
 
24095
class     CT_PtrDeclarator;
 
24096
class     CT_MembPtrDeclarator;
 
24097
class     CT_BitFieldDeclarator;
 
24098
class   CT_Decl;
 
24099
class     CT_ObjDecl;
 
24100
class     CT_ArgDecl;
 
24101
class     CT_AccessDecl;
 
24102
class       CT_UsingDecl;
 
24103
class     CT_FctDef;
 
24104
class     CT_AsmDef;
 
24105
class     CT_EnumDef;
 
24106
class     CT_ClassDef;
 
24107
class       CT_UnionDef;
 
24108
class     CT_Enumerator;
 
24109
class     CT_LinkageSpec;
 
24110
class     CT_Handler;
 
24111
class     CT_TemplateDecl;
 
24112
class     CT_TemplateParamDecl;
 
24113
class       CT_TypeParamDecl;
 
24114
class       CT_NonTypeParamDecl;
 
24115
class     CT_NamespaceDef;
 
24116
class     CT_NamespaceAliasDef;
 
24117
class     CT_UsingDirective;
 
24118
class     CT_Condition;
 
24119
class   CT_List;
 
24120
class     CT_CmpdStmt;
 
24121
class     CT_DeclSpecSeq;
 
24122
class     CT_HandlerSeq;
 
24123
class     CT_DesignatorSeq;
 
24124
class     CT_DeclList;
 
24125
class       CT_Program;
 
24126
class       CT_ArgDeclList;
 
24127
class         CT_ArgNameList;
 
24128
class       CT_ArgDeclSeq;
 
24129
class       CT_MembList;
 
24130
class     CT_ExprList;
 
24131
class     CT_DeclaratorList;
 
24132
class     CT_BaseSpecList;
 
24133
class     CT_MembInitList;
 
24134
class     CT_SimpleName;
 
24135
class       CT_SpecialName;
 
24136
class         CT_PrivateName;
 
24137
class         CT_OperatorName;
 
24138
class         CT_DestructorName;
 
24139
class         CT_ConversionName;
 
24140
class         CT_TemplateName;
 
24141
class       CT_QualName;
 
24142
class         CT_RootQualName;
 
24143
class     CT_String;
 
24144
class       CT_WideString;
 
24145
class     CT_TemplateParamList;
 
24146
class     CT_TemplateArgList;
 
24147
class   CT_Token;
 
24148
class   CT_Error;
 
24149
class   CT_BaseSpec;
 
24150
class   CT_AccessSpec;
 
24151
class   CT_ArrayDelimiter;
 
24152
class   CT_Any;
 
24153
class   CT_AnyList;
 
24154
class   CT_AnyExtension;
 
24155
class   CT_AnyCondition;
 
24156
 
 
24157
 
 
24158
} // namespace Puma
 
24159
 
 
24160
#include "Puma/ErrorSeverity.h"
 
24161
#include "Puma/CSemObject.h"
 
24162
#include "Puma/CSemScope.h"
 
24163
#include "Puma/CSemValue.h"
 
24164
#include "Puma/CExprValue.h"
 
24165
#include "Puma/CStrLiteral.h"
 
24166
#include "Puma/CTypeInfo.h"
 
24167
#include "Puma/Printable.h"
 
24168
#include "Puma/CTokens.h"
 
24169
#include "Puma/Token.h"
 
24170
 
 
24171
#include <iostream>
 
24172
#include <string.h>
 
24173
using namespace std;
 
24174
 
 
24175
namespace Puma {
 
24176
 
 
24177
 
 
24178
class ErrorStream;
 
24179
class CObjectInfo;
 
24180
class CStructure;
 
24181
 
 
24182
/*****************************************************************************/
 
24183
/*                                                                           */
 
24184
/*                    S y n t a x  t r e e  n o d e s                        */
 
24185
/*                                                                           */
 
24186
/*****************************************************************************/
 
24187
 
 
24188
/** \file
 
24189
 *  C/C++ syntax tree classes.
 
24190
 *  \see Puma::CTree */
 
24191
 
 
24192
/** \class CTree CTree.h Puma/CTree.h
 
24193
 *  Base class for all C/C++ syntax tree classes. */
 
24194
 
 
24195
#line 24196 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24196
} // closed Puma
 
24197
class CCExprResolve;
 
24198
class CExprResolve;
 
24199
class WinIfExists;
 
24200
class WinImportHandler;
 
24201
class WinMacros;
 
24202
class WinAsm;
 
24203
class WinDeclSpecs;
 
24204
class WinMemberExplSpec;
 
24205
class WinTypeKeywords;
 
24206
class WinFriend;
 
24207
class ExtAC;
 
24208
class ExtACBuilderCoupling;
 
24209
class ExtACSyntaxCoupling;
 
24210
class ExtACTree;
 
24211
class ExtACKeywords;
 
24212
class ExtGnu;
 
24213
class PragmaOnceUnitState;
 
24214
class PragmaOnce;
 
24215
class CMatchSyntax;
 
24216
namespace Puma {
 
24217
 
 
24218
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24219
 
 
24220
#line 24221 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24221
} // closed Puma
 
24222
 
 
24223
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24224
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
24225
#include "CCExprResolveH.ah"
 
24226
#endif
 
24227
namespace Puma {
 
24228
 
 
24229
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24230
 
 
24231
#line 24232 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24232
} // closed Puma
 
24233
 
 
24234
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24235
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
24236
#include "CExprResolveH.ah"
 
24237
#endif
 
24238
namespace Puma {
 
24239
 
 
24240
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24241
class CTree {
 
24242
#line 24243 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24243
  friend class ::CCExprResolve;
 
24244
  friend class ::CExprResolve;
 
24245
  friend class ::WinIfExists;
 
24246
  friend class ::WinImportHandler;
 
24247
  friend class ::WinMacros;
 
24248
  friend class ::WinAsm;
 
24249
  friend class ::WinDeclSpecs;
 
24250
  friend class ::WinMemberExplSpec;
 
24251
  friend class ::WinTypeKeywords;
 
24252
  friend class ::WinFriend;
 
24253
  friend class ::ExtAC;
 
24254
  friend class ::ExtACBuilderCoupling;
 
24255
  friend class ::ExtACSyntaxCoupling;
 
24256
  friend class ::ExtACTree;
 
24257
  friend class ::ExtACKeywords;
 
24258
  friend class ::ExtGnu;
 
24259
  friend class ::PragmaOnceUnitState;
 
24260
  friend class ::PragmaOnce;
 
24261
  friend class ::CMatchSyntax;
 
24262
 
 
24263
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24264
 
 
24265
  CTree * _parent;
 
24266
 
 
24267
public:
 
24268
  /*DEBUG*/static int alloc;
 
24269
  /*DEBUG*/static int release;
 
24270
 
 
24271
protected:
 
24272
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
24273
   *  \param sons The sons array.
 
24274
   *  \param len Length of the sons array.
 
24275
   *  \param n Index of the son.
 
24276
   *  \return The n-th son or NULL. */
 
24277
  CTree *Son (CTree * const *sons, int len, int n) const;
 
24278
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
24279
   *  \param sons The sons array.
 
24280
   *  \param len Length of the sons array. */
 
24281
  int Sons (CTree * const *sons, int len) const;
 
24282
  /** Replace a son.
 
24283
   *  \param sons The sons array.
 
24284
   *  \param len Length of the sons array.
 
24285
   *  \param old_son The son to replace.
 
24286
   *  \param new_son The new son. */
 
24287
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
24288
  /** Replace a son if it equals the given son.
 
24289
   *  \param son The actual son.
 
24290
   *  \param old_son The son to replace, must match the actual son.
 
24291
   *  \param new_son The new son, overwrites the actual son. */
 
24292
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
24293
  /** Add a new son.
 
24294
   *  \param son The actual son.
 
24295
   *  \param new_son The new son, overwrites the actual son. */
 
24296
  void AddSon (CTree *&son, CTree *new_son);
 
24297
  /** Set the parent tree node.
 
24298
   *  \param parent The new parent tree node. */
 
24299
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
24300
  /** Set the parent tree node of the given tree node.
 
24301
   *  \param node The tree node.
 
24302
   *  \param parent The new parent. */
 
24303
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
 
24304
  
 
24305
protected:
 
24306
  /** Default constructor. */
 
24307
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
 
24308
 
 
24309
public:
 
24310
  /** Destructor. */
 
24311
  virtual ~CTree () { /*DEBUG*/release++; }
 
24312
  /** Get the number of sons. */
 
24313
  virtual int Sons () const = 0;
 
24314
  /** Get the n-th son.
 
24315
   *  \param n The index of the son.
 
24316
   *  \return The n-th son or NULL. */
 
24317
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
24318
  /** Get the node name (node identifier). */
 
24319
  virtual const char *NodeName () const = 0;
 
24320
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
24321
   *  \return The token or NULL. */
 
24322
  virtual Token *token () const;
 
24323
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
24324
   *  \return The token or NULL. */
 
24325
  virtual Token *end_token () const;
 
24326
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
24327
   *  \return The token node or NULL. */
 
24328
  virtual CT_Token *token_node () const;
 
24329
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
24330
   *  \return The token node or NULL. */
 
24331
  virtual CT_Token *end_token_node () const;
 
24332
  /** Replace a son.
 
24333
   *  \param old_son The son to replace.
 
24334
   *  \param new_son The son with which to replace. */
 
24335
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
24336
  /** Get the parent node.
 
24337
   *  \return The parent node or NULL. */
 
24338
  virtual CTree *Parent () const { return (CTree*)_parent; }
 
24339
 
 
24340
public: // semantic information
 
24341
  /** Get the semantic type of the node.
 
24342
   *  \return The type object or NULL. */
 
24343
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
24344
  /** Get the calculated value of the expression.
 
24345
   *  \return The value object or NULL. */
 
24346
  virtual CExprValue *Value () const { return (CExprValue*)0; }
 
24347
  
 
24348
  /** Get the semantic scope of the node.
 
24349
   *  \return The scope object or NULL. */
 
24350
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
24351
  /** Get the semantic value of the node.
 
24352
   *  \return The value object or NULL. */
 
24353
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
24354
  /** Get the semantic object of the node.
 
24355
   *  \return The semantic object or NULL. */
 
24356
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
 
24357
  
 
24358
public: // node classification function
 
24359
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
24360
   *  \return The CT_SimpleName node or NULL. */
 
24361
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
24362
  /** Get a pointer to CT_String if the current node represents a string.
 
24363
   *  \return The CT_String node or NULL. */
 
24364
  virtual CT_String *IsString () { return 0; }
 
24365
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
24366
   *  \return The CT_Declarator pointer or NULL. */
 
24367
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
24368
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
24369
   *  \return The CT_Statement pointer or NULL. */
 
24370
  virtual CT_Statement *IsStatement () { return 0; }
 
24371
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
24372
   *  \return The CT_Expression pointer or NULL. */
 
24373
  virtual CT_Expression *IsExpression () { return 0; }
 
24374
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
24375
   *  \return The CT_Decl pointer or NULL. */
 
24376
  virtual CT_Decl *IsDeclaration () { return 0; }
 
24377
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
24378
   *  \return The CT_Call pointer or NULL. */
 
24379
  virtual CT_Call *IsCall () { return 0; }
 
24380
   private:
 
24381
  typedef CTree CCExprResolveCTree;
 
24382
 
 
24383
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
24384
 public :
 
24385
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
24386
  typedef CTree CExprResolveCTree;
 
24387
 
 
24388
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
24389
 public :
 
24390
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
24391
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24392
};
 
24393
 
 
24394
/** \class CT_Error CTree.h Puma/CTree.h
 
24395
 *  Error tree node that is inserted into the tree for syntactic constructs
 
24396
 *  that could not be parsed. */
 
24397
 
 
24398
#line 24399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24399
} // closed Puma
 
24400
class CCExprResolve;
 
24401
class CExprResolve;
 
24402
class WinIfExists;
 
24403
class WinImportHandler;
 
24404
class WinMacros;
 
24405
class WinAsm;
 
24406
class WinDeclSpecs;
 
24407
class WinMemberExplSpec;
 
24408
class WinTypeKeywords;
 
24409
class WinFriend;
 
24410
class ExtAC;
 
24411
class ExtACBuilderCoupling;
 
24412
class ExtACSyntaxCoupling;
 
24413
class ExtACTree;
 
24414
class ExtACKeywords;
 
24415
class ExtGnu;
 
24416
class PragmaOnceUnitState;
 
24417
class PragmaOnce;
 
24418
class CMatchSyntax;
 
24419
namespace Puma {
 
24420
 
 
24421
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24422
class CT_Error : public CTree {
 
24423
#line 24424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24424
  friend class ::CCExprResolve;
 
24425
  friend class ::CExprResolve;
 
24426
  friend class ::WinIfExists;
 
24427
  friend class ::WinImportHandler;
 
24428
  friend class ::WinMacros;
 
24429
  friend class ::WinAsm;
 
24430
  friend class ::WinDeclSpecs;
 
24431
  friend class ::WinMemberExplSpec;
 
24432
  friend class ::WinTypeKeywords;
 
24433
  friend class ::WinFriend;
 
24434
  friend class ::ExtAC;
 
24435
  friend class ::ExtACBuilderCoupling;
 
24436
  friend class ::ExtACSyntaxCoupling;
 
24437
  friend class ::ExtACTree;
 
24438
  friend class ::ExtACKeywords;
 
24439
  friend class ::ExtGnu;
 
24440
  friend class ::PragmaOnceUnitState;
 
24441
  friend class ::PragmaOnce;
 
24442
  friend class ::CMatchSyntax;
 
24443
 
 
24444
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24445
 
 
24446
public:
 
24447
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24448
  static const char *NodeId ();
 
24449
  /** Get the name of the node. Can be compared with NodeId(). */
 
24450
  const char *NodeName () const { return NodeId (); }
 
24451
  /** Get the number of sons. */
 
24452
  int Sons () const { return 0; }
 
24453
};
 
24454
 
 
24455
/** \class CT_Token CTree.h Puma/CTree.h
 
24456
 *  Tree node representing a single token in the source code. */
 
24457
 
 
24458
#line 24459 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24459
} // closed Puma
 
24460
class CCExprResolve;
 
24461
class CExprResolve;
 
24462
class WinIfExists;
 
24463
class WinImportHandler;
 
24464
class WinMacros;
 
24465
class WinAsm;
 
24466
class WinDeclSpecs;
 
24467
class WinMemberExplSpec;
 
24468
class WinTypeKeywords;
 
24469
class WinFriend;
 
24470
class ExtAC;
 
24471
class ExtACBuilderCoupling;
 
24472
class ExtACSyntaxCoupling;
 
24473
class ExtACTree;
 
24474
class ExtACKeywords;
 
24475
class ExtGnu;
 
24476
class PragmaOnceUnitState;
 
24477
class PragmaOnce;
 
24478
class CMatchSyntax;
 
24479
namespace Puma {
 
24480
 
 
24481
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24482
class CT_Token : public CTree {
 
24483
#line 24484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24484
  friend class ::CCExprResolve;
 
24485
  friend class ::CExprResolve;
 
24486
  friend class ::WinIfExists;
 
24487
  friend class ::WinImportHandler;
 
24488
  friend class ::WinMacros;
 
24489
  friend class ::WinAsm;
 
24490
  friend class ::WinDeclSpecs;
 
24491
  friend class ::WinMemberExplSpec;
 
24492
  friend class ::WinTypeKeywords;
 
24493
  friend class ::WinFriend;
 
24494
  friend class ::ExtAC;
 
24495
  friend class ::ExtACBuilderCoupling;
 
24496
  friend class ::ExtACSyntaxCoupling;
 
24497
  friend class ::ExtACTree;
 
24498
  friend class ::ExtACKeywords;
 
24499
  friend class ::ExtGnu;
 
24500
  friend class ::PragmaOnceUnitState;
 
24501
  friend class ::PragmaOnce;
 
24502
  friend class ::CMatchSyntax;
 
24503
 
 
24504
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24505
 
 
24506
  Token *_token;
 
24507
  unsigned long int _number;
 
24508
  
 
24509
public:
 
24510
  /** Constructor. 
 
24511
   *  \param token The represented token.
 
24512
   *  \param number The token number (a consecutive number). */
 
24513
  CT_Token (Token *token, unsigned long int number = 0) : 
 
24514
    _token (token), _number (number) {}
 
24515
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24516
  static const char *NodeId ();
 
24517
  /** Get the name of the node. Can be compared with NodeId(). */
 
24518
  const char *NodeName () const { return NodeId (); }
 
24519
  /** Get the number of sons. */
 
24520
  int Sons () const { return 0; }
 
24521
  /** Get the represented token. */
 
24522
  Token *token () const { return _token; }
 
24523
  /** Get the represented token. */
 
24524
  Token *end_token () const { return _token; }
 
24525
  /** Get this. */
 
24526
  CT_Token *token_node () const { return (CT_Token*)this; }
 
24527
  /** Get this. */
 
24528
  CT_Token *end_token_node () const { return (CT_Token*)this; }
 
24529
  /** Set the token number. 
 
24530
   *  \param number The token number. */ 
 
24531
  void Number (unsigned long int number) { _number = number; }
 
24532
  /** Get the token number. Can be used to indentify this token. */
 
24533
  unsigned long int Number () const { return _number; }
 
24534
  
 
24535
public:
 
24536
  /** Own new operator reusing memory. */
 
24537
  void *operator new (size_t);
 
24538
  /** Own delete operator. */
 
24539
  void operator delete (void *);
 
24540
};
 
24541
 
 
24542
/*****************************************************************************/
 
24543
/*                                                                           */
 
24544
/*                              List nodes                                   */
 
24545
/*                                                                           */
 
24546
/*****************************************************************************/
 
24547
 
 
24548
/** \class CT_List CTree.h Puma/CTree.h
 
24549
 *  Base class for tree nodes representing lists. */
 
24550
 
 
24551
#line 24552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24552
} // closed Puma
 
24553
class CCExprResolve;
 
24554
class CExprResolve;
 
24555
class WinIfExists;
 
24556
class WinImportHandler;
 
24557
class WinMacros;
 
24558
class WinAsm;
 
24559
class WinDeclSpecs;
 
24560
class WinMemberExplSpec;
 
24561
class WinTypeKeywords;
 
24562
class WinFriend;
 
24563
class ExtAC;
 
24564
class ExtACBuilderCoupling;
 
24565
class ExtACSyntaxCoupling;
 
24566
class ExtACTree;
 
24567
class ExtACKeywords;
 
24568
class ExtGnu;
 
24569
class PragmaOnceUnitState;
 
24570
class PragmaOnce;
 
24571
class CMatchSyntax;
 
24572
namespace Puma {
 
24573
 
 
24574
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24575
class CT_List : public CTree {
 
24576
#line 24577 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24577
  friend class ::CCExprResolve;
 
24578
  friend class ::CExprResolve;
 
24579
  friend class ::WinIfExists;
 
24580
  friend class ::WinImportHandler;
 
24581
  friend class ::WinMacros;
 
24582
  friend class ::WinAsm;
 
24583
  friend class ::WinDeclSpecs;
 
24584
  friend class ::WinMemberExplSpec;
 
24585
  friend class ::WinTypeKeywords;
 
24586
  friend class ::WinFriend;
 
24587
  friend class ::ExtAC;
 
24588
  friend class ::ExtACBuilderCoupling;
 
24589
  friend class ::ExtACSyntaxCoupling;
 
24590
  friend class ::ExtACTree;
 
24591
  friend class ::ExtACKeywords;
 
24592
  friend class ::ExtGnu;
 
24593
  friend class ::PragmaOnceUnitState;
 
24594
  friend class ::PragmaOnce;
 
24595
  friend class ::CMatchSyntax;
 
24596
 
 
24597
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24598
 
 
24599
  Array<CTree*> _sons;
 
24600
  int _properties;
 
24601
 
 
24602
protected:
 
24603
  /** Constructor.
 
24604
   *  \param size The initial list size.
 
24605
   *  \param incr The initial increment count. 
 
24606
   *  \param props The list properties (bit array). */
 
24607
  CT_List(int size = 5, int incr = 5, int props = 0) : 
 
24608
    _sons (size, incr), _properties (props) {}
 
24609
 
 
24610
public:
 
24611
  /** List properties. */
 
24612
  enum {
 
24613
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
24614
    CLOSE = 2,        /** List has an end token */
 
24615
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
24616
    SEPARATORS = 4,   /** List has separators, like ',' */
 
24617
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
24618
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
24619
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
24620
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
 
24621
  };
 
24622
 
 
24623
  /** Get the number of list entries. */
 
24624
  int Entries () const;
 
24625
  /** Get the n-th list entry.
 
24626
   *  \param n The index of the entry. 
 
24627
   *  \return The list entry or NULL. */
 
24628
  CTree *Entry (int n) const;
 
24629
  /** Get the number of sons. */
 
24630
  int Sons () const { return _sons.length (); }
 
24631
  /** Get the n-th son.
 
24632
   *  \param n The index of the son. 
 
24633
   *  \return The n-th son or NULL. */
 
24634
  CTree *Son (int n) const { return _sons.lookup (n); }
 
24635
  /** Get the list properties. */
 
24636
  int GetProperties () const { return _properties; }
 
24637
  /** Add a list property.
 
24638
   *  \param p The property to add. */
 
24639
  void AddProperties (int p) { _properties |= p; }
 
24640
  /** Add a son.
 
24641
   *  \param s The son to add. */
 
24642
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
24643
  /** Prepend a son.
 
24644
   *  \param s The son to prepend. */
 
24645
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
24646
  /** Insert a son before another son.
 
24647
   *  \param before The son to insert the new son before.
 
24648
   *  \param son The son to insert. */
 
24649
  void InsertSon (CTree *before, CTree *son); 
 
24650
  /** Replace a son.
 
24651
   *  \param old_son The son to replace.
 
24652
   *  \param new_son The new son. */
 
24653
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
24654
  /** Remove a son.
 
24655
   *  \param son The son to remove. */
 
24656
  void RemoveSon (CTree *son);
 
24657
  /** Insert a son at the given index. 
 
24658
   *  \param idx The index at which to insert.
 
24659
   *  \param s The son to insert. */
 
24660
  void InsertSon (int idx, CTree *s)
 
24661
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
24662
  /** Replace the son at the given index.
 
24663
   *  \param idx The index of the son to replace.
 
24664
   *  \param s The new son. */
 
24665
  void ReplaceSon (int idx, CTree *s) 
 
24666
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
24667
  /** Remove the son at the given index. 
 
24668
   *  \param idx The index of the son to remove. */
 
24669
  void RemoveSon (int idx) 
 
24670
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
 
24671
};
 
24672
 
 
24673
/** \class CT_ExprList CTree.h Puma/CTree.h
 
24674
 *  Tree node representing an expression list. */
 
24675
 
 
24676
#line 24677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24677
} // closed Puma
 
24678
class CCExprResolve;
 
24679
class CExprResolve;
 
24680
class WinIfExists;
 
24681
class WinImportHandler;
 
24682
class WinMacros;
 
24683
class WinAsm;
 
24684
class WinDeclSpecs;
 
24685
class WinMemberExplSpec;
 
24686
class WinTypeKeywords;
 
24687
class WinFriend;
 
24688
class ExtAC;
 
24689
class ExtACBuilderCoupling;
 
24690
class ExtACSyntaxCoupling;
 
24691
class ExtACTree;
 
24692
class ExtACKeywords;
 
24693
class ExtGnu;
 
24694
class PragmaOnceUnitState;
 
24695
class PragmaOnce;
 
24696
class CMatchSyntax;
 
24697
namespace Puma {
 
24698
 
 
24699
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24700
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
 
24701
#line 24702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24702
  friend class ::CCExprResolve;
 
24703
  friend class ::CExprResolve;
 
24704
  friend class ::WinIfExists;
 
24705
  friend class ::WinImportHandler;
 
24706
  friend class ::WinMacros;
 
24707
  friend class ::WinAsm;
 
24708
  friend class ::WinDeclSpecs;
 
24709
  friend class ::WinMemberExplSpec;
 
24710
  friend class ::WinTypeKeywords;
 
24711
  friend class ::WinFriend;
 
24712
  friend class ::ExtAC;
 
24713
  friend class ::ExtACBuilderCoupling;
 
24714
  friend class ::ExtACSyntaxCoupling;
 
24715
  friend class ::ExtACTree;
 
24716
  friend class ::ExtACKeywords;
 
24717
  friend class ::ExtGnu;
 
24718
  friend class ::PragmaOnceUnitState;
 
24719
  friend class ::PragmaOnce;
 
24720
  friend class ::CMatchSyntax;
 
24721
 
 
24722
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24723
 
 
24724
public:
 
24725
  /** Constructor. */
 
24726
  CT_ExprList () { AddProperties (SEPARATORS); }
 
24727
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24728
  static const char *NodeId ();
 
24729
  /** Get the name of the node. Can be compared with NodeId(). */
 
24730
  const char *NodeName () const { return NodeId (); }
 
24731
 
 
24732
  /** Get the type of the last expression in the expression list.
 
24733
   *  \return The type or NULL. */
 
24734
  CTypeInfo *Type () const { return type; }
 
24735
  /** Get the value of the last expression in the expression list.
 
24736
   *  \return The value of NULL. */
 
24737
  CExprValue *Value () const { return value; }
 
24738
  /** Get the semantic value of the node. */
 
24739
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
24740
  /** Get the semantic object of the node. */
 
24741
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
24742
};
 
24743
 
 
24744
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
24745
 *  Tree node representing a list of declarators. */
 
24746
 
 
24747
#line 24748 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24748
} // closed Puma
 
24749
class CCExprResolve;
 
24750
class CExprResolve;
 
24751
class WinIfExists;
 
24752
class WinImportHandler;
 
24753
class WinMacros;
 
24754
class WinAsm;
 
24755
class WinDeclSpecs;
 
24756
class WinMemberExplSpec;
 
24757
class WinTypeKeywords;
 
24758
class WinFriend;
 
24759
class ExtAC;
 
24760
class ExtACBuilderCoupling;
 
24761
class ExtACSyntaxCoupling;
 
24762
class ExtACTree;
 
24763
class ExtACKeywords;
 
24764
class ExtGnu;
 
24765
class PragmaOnceUnitState;
 
24766
class PragmaOnce;
 
24767
class CMatchSyntax;
 
24768
namespace Puma {
 
24769
 
 
24770
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24771
class CT_DeclaratorList : public CT_List {
 
24772
#line 24773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24773
  friend class ::CCExprResolve;
 
24774
  friend class ::CExprResolve;
 
24775
  friend class ::WinIfExists;
 
24776
  friend class ::WinImportHandler;
 
24777
  friend class ::WinMacros;
 
24778
  friend class ::WinAsm;
 
24779
  friend class ::WinDeclSpecs;
 
24780
  friend class ::WinMemberExplSpec;
 
24781
  friend class ::WinTypeKeywords;
 
24782
  friend class ::WinFriend;
 
24783
  friend class ::ExtAC;
 
24784
  friend class ::ExtACBuilderCoupling;
 
24785
  friend class ::ExtACSyntaxCoupling;
 
24786
  friend class ::ExtACTree;
 
24787
  friend class ::ExtACKeywords;
 
24788
  friend class ::ExtGnu;
 
24789
  friend class ::PragmaOnceUnitState;
 
24790
  friend class ::PragmaOnce;
 
24791
  friend class ::CMatchSyntax;
 
24792
 
 
24793
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24794
 
 
24795
public:
 
24796
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24797
  static const char *NodeId ();
 
24798
  /** Get the name of the node. Can be compared with NodeId(). */
 
24799
  const char *NodeName () const { return NodeId (); }
 
24800
};
 
24801
 
 
24802
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
24803
 *  Tree node representing a list of enumerator constants. */
 
24804
 
 
24805
#line 24806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24806
} // closed Puma
 
24807
class CCExprResolve;
 
24808
class CExprResolve;
 
24809
class WinIfExists;
 
24810
class WinImportHandler;
 
24811
class WinMacros;
 
24812
class WinAsm;
 
24813
class WinDeclSpecs;
 
24814
class WinMemberExplSpec;
 
24815
class WinTypeKeywords;
 
24816
class WinFriend;
 
24817
class ExtAC;
 
24818
class ExtACBuilderCoupling;
 
24819
class ExtACSyntaxCoupling;
 
24820
class ExtACTree;
 
24821
class ExtACKeywords;
 
24822
class ExtGnu;
 
24823
class PragmaOnceUnitState;
 
24824
class PragmaOnce;
 
24825
class CMatchSyntax;
 
24826
namespace Puma {
 
24827
 
 
24828
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24829
class CT_EnumeratorList : public CT_List {
 
24830
#line 24831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24831
  friend class ::CCExprResolve;
 
24832
  friend class ::CExprResolve;
 
24833
  friend class ::WinIfExists;
 
24834
  friend class ::WinImportHandler;
 
24835
  friend class ::WinMacros;
 
24836
  friend class ::WinAsm;
 
24837
  friend class ::WinDeclSpecs;
 
24838
  friend class ::WinMemberExplSpec;
 
24839
  friend class ::WinTypeKeywords;
 
24840
  friend class ::WinFriend;
 
24841
  friend class ::ExtAC;
 
24842
  friend class ::ExtACBuilderCoupling;
 
24843
  friend class ::ExtACSyntaxCoupling;
 
24844
  friend class ::ExtACTree;
 
24845
  friend class ::ExtACKeywords;
 
24846
  friend class ::ExtGnu;
 
24847
  friend class ::PragmaOnceUnitState;
 
24848
  friend class ::PragmaOnce;
 
24849
  friend class ::CMatchSyntax;
 
24850
 
 
24851
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24852
 
 
24853
public:
 
24854
  /** Constructor. */
 
24855
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
24856
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24857
  static const char *NodeId ();
 
24858
  /** Get the name of the node. Can be compared with NodeId(). */
 
24859
  const char *NodeName () const { return NodeId (); }
 
24860
};
 
24861
   
 
24862
/** \class CT_DeclList CTree.h Puma/CTree.h
 
24863
 *  Tree node representing a list of declarations. */
 
24864
 
 
24865
#line 24866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24866
} // closed Puma
 
24867
class CCExprResolve;
 
24868
class CExprResolve;
 
24869
class WinIfExists;
 
24870
class WinImportHandler;
 
24871
class WinMacros;
 
24872
class WinAsm;
 
24873
class WinDeclSpecs;
 
24874
class WinMemberExplSpec;
 
24875
class WinTypeKeywords;
 
24876
class WinFriend;
 
24877
class ExtAC;
 
24878
class ExtACBuilderCoupling;
 
24879
class ExtACSyntaxCoupling;
 
24880
class ExtACTree;
 
24881
class ExtACKeywords;
 
24882
class ExtGnu;
 
24883
class PragmaOnceUnitState;
 
24884
class PragmaOnce;
 
24885
class CMatchSyntax;
 
24886
namespace Puma {
 
24887
 
 
24888
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24889
class CT_DeclList : public CT_List {
 
24890
#line 24891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24891
  friend class ::CCExprResolve;
 
24892
  friend class ::CExprResolve;
 
24893
  friend class ::WinIfExists;
 
24894
  friend class ::WinImportHandler;
 
24895
  friend class ::WinMacros;
 
24896
  friend class ::WinAsm;
 
24897
  friend class ::WinDeclSpecs;
 
24898
  friend class ::WinMemberExplSpec;
 
24899
  friend class ::WinTypeKeywords;
 
24900
  friend class ::WinFriend;
 
24901
  friend class ::ExtAC;
 
24902
  friend class ::ExtACBuilderCoupling;
 
24903
  friend class ::ExtACSyntaxCoupling;
 
24904
  friend class ::ExtACTree;
 
24905
  friend class ::ExtACKeywords;
 
24906
  friend class ::ExtGnu;
 
24907
  friend class ::PragmaOnceUnitState;
 
24908
  friend class ::PragmaOnce;
 
24909
  friend class ::CMatchSyntax;
 
24910
 
 
24911
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24912
 
 
24913
public:
 
24914
  /** Constructor. 
 
24915
   *  \param size The initial size of the list.
 
24916
   *  \param incr The initial increment count of the list. */
 
24917
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
24918
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24919
  static const char *NodeId ();
 
24920
  /** Get the name of the node. Can be compared with NodeId(). */
 
24921
  const char *NodeName () const { return NodeId (); }
 
24922
  /** Set the linkage specifiers to each declaration in the list.
 
24923
   *  \param l The linkage specifiers node. */
 
24924
  void Linkage (CT_LinkageSpec *l);
 
24925
};
 
24926
 
 
24927
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
24928
 *  Tree node representing a sequence of declaration specifiers. */
 
24929
 
 
24930
#line 24931 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24931
} // closed Puma
 
24932
class CCExprResolve;
 
24933
class CExprResolve;
 
24934
class WinIfExists;
 
24935
class WinImportHandler;
 
24936
class WinMacros;
 
24937
class WinAsm;
 
24938
class WinDeclSpecs;
 
24939
class WinMemberExplSpec;
 
24940
class WinTypeKeywords;
 
24941
class WinFriend;
 
24942
class ExtAC;
 
24943
class ExtACBuilderCoupling;
 
24944
class ExtACSyntaxCoupling;
 
24945
class ExtACTree;
 
24946
class ExtACKeywords;
 
24947
class ExtGnu;
 
24948
class PragmaOnceUnitState;
 
24949
class PragmaOnce;
 
24950
class CMatchSyntax;
 
24951
namespace Puma {
 
24952
 
 
24953
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24954
class CT_DeclSpecSeq : public CT_List {
 
24955
#line 24956 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24956
  friend class ::CCExprResolve;
 
24957
  friend class ::CExprResolve;
 
24958
  friend class ::WinIfExists;
 
24959
  friend class ::WinImportHandler;
 
24960
  friend class ::WinMacros;
 
24961
  friend class ::WinAsm;
 
24962
  friend class ::WinDeclSpecs;
 
24963
  friend class ::WinMemberExplSpec;
 
24964
  friend class ::WinTypeKeywords;
 
24965
  friend class ::WinFriend;
 
24966
  friend class ::ExtAC;
 
24967
  friend class ::ExtACBuilderCoupling;
 
24968
  friend class ::ExtACSyntaxCoupling;
 
24969
  friend class ::ExtACTree;
 
24970
  friend class ::ExtACKeywords;
 
24971
  friend class ::ExtGnu;
 
24972
  friend class ::PragmaOnceUnitState;
 
24973
  friend class ::PragmaOnce;
 
24974
  friend class ::CMatchSyntax;
 
24975
 
 
24976
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
24977
 
 
24978
public:
 
24979
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
24980
  static const char *NodeId ();
 
24981
  /** Get the name of the node. Can be compared with NodeId(). */
 
24982
  const char *NodeName () const { return NodeId (); }
 
24983
};
 
24984
 
 
24985
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
24986
 *  Tree node representing a compound statement. */
 
24987
 
 
24988
#line 24989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
24989
} // closed Puma
 
24990
class CCExprResolve;
 
24991
class CExprResolve;
 
24992
class WinIfExists;
 
24993
class WinImportHandler;
 
24994
class WinMacros;
 
24995
class WinAsm;
 
24996
class WinDeclSpecs;
 
24997
class WinMemberExplSpec;
 
24998
class WinTypeKeywords;
 
24999
class WinFriend;
 
25000
class ExtAC;
 
25001
class ExtACBuilderCoupling;
 
25002
class ExtACSyntaxCoupling;
 
25003
class ExtACTree;
 
25004
class ExtACKeywords;
 
25005
class ExtGnu;
 
25006
class PragmaOnceUnitState;
 
25007
class PragmaOnce;
 
25008
class CMatchSyntax;
 
25009
namespace Puma {
 
25010
 
 
25011
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25012
class CT_CmpdStmt : public CT_List, public CSemScope {
 
25013
#line 25014 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25014
  friend class ::CCExprResolve;
 
25015
  friend class ::CExprResolve;
 
25016
  friend class ::WinIfExists;
 
25017
  friend class ::WinImportHandler;
 
25018
  friend class ::WinMacros;
 
25019
  friend class ::WinAsm;
 
25020
  friend class ::WinDeclSpecs;
 
25021
  friend class ::WinMemberExplSpec;
 
25022
  friend class ::WinTypeKeywords;
 
25023
  friend class ::WinFriend;
 
25024
  friend class ::ExtAC;
 
25025
  friend class ::ExtACBuilderCoupling;
 
25026
  friend class ::ExtACSyntaxCoupling;
 
25027
  friend class ::ExtACTree;
 
25028
  friend class ::ExtACKeywords;
 
25029
  friend class ::ExtGnu;
 
25030
  friend class ::PragmaOnceUnitState;
 
25031
  friend class ::PragmaOnce;
 
25032
  friend class ::CMatchSyntax;
 
25033
 
 
25034
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25035
 
 
25036
public:
 
25037
  /* Constructor. */
 
25038
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
25039
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25040
  static const char *NodeId ();
 
25041
  /** Get the name of the node. Can be compared with NodeId(). */
 
25042
  const char *NodeName () const { return NodeId (); }
 
25043
  /** Get the local scope of the compound statement. */
 
25044
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
25045
};
 
25046
 
 
25047
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
25048
 *  Tree node representing an exception handler sequence. */
 
25049
 
 
25050
#line 25051 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25051
} // closed Puma
 
25052
class CCExprResolve;
 
25053
class CExprResolve;
 
25054
class WinIfExists;
 
25055
class WinImportHandler;
 
25056
class WinMacros;
 
25057
class WinAsm;
 
25058
class WinDeclSpecs;
 
25059
class WinMemberExplSpec;
 
25060
class WinTypeKeywords;
 
25061
class WinFriend;
 
25062
class ExtAC;
 
25063
class ExtACBuilderCoupling;
 
25064
class ExtACSyntaxCoupling;
 
25065
class ExtACTree;
 
25066
class ExtACKeywords;
 
25067
class ExtGnu;
 
25068
class PragmaOnceUnitState;
 
25069
class PragmaOnce;
 
25070
class CMatchSyntax;
 
25071
namespace Puma {
 
25072
 
 
25073
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25074
class CT_HandlerSeq : public CT_List {
 
25075
#line 25076 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25076
  friend class ::CCExprResolve;
 
25077
  friend class ::CExprResolve;
 
25078
  friend class ::WinIfExists;
 
25079
  friend class ::WinImportHandler;
 
25080
  friend class ::WinMacros;
 
25081
  friend class ::WinAsm;
 
25082
  friend class ::WinDeclSpecs;
 
25083
  friend class ::WinMemberExplSpec;
 
25084
  friend class ::WinTypeKeywords;
 
25085
  friend class ::WinFriend;
 
25086
  friend class ::ExtAC;
 
25087
  friend class ::ExtACBuilderCoupling;
 
25088
  friend class ::ExtACSyntaxCoupling;
 
25089
  friend class ::ExtACTree;
 
25090
  friend class ::ExtACKeywords;
 
25091
  friend class ::ExtGnu;
 
25092
  friend class ::PragmaOnceUnitState;
 
25093
  friend class ::PragmaOnce;
 
25094
  friend class ::CMatchSyntax;
 
25095
 
 
25096
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25097
 
 
25098
public:
 
25099
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25100
  static const char *NodeId ();
 
25101
  /** Get the name of the node. Can be compared with NodeId(). */
 
25102
  const char *NodeName () const { return NodeId (); }
 
25103
};
 
25104
 
 
25105
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
25106
 *  Tree node representing a template parameter list. */
 
25107
 
 
25108
#line 25109 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25109
} // closed Puma
 
25110
class CCExprResolve;
 
25111
class CExprResolve;
 
25112
class WinIfExists;
 
25113
class WinImportHandler;
 
25114
class WinMacros;
 
25115
class WinAsm;
 
25116
class WinDeclSpecs;
 
25117
class WinMemberExplSpec;
 
25118
class WinTypeKeywords;
 
25119
class WinFriend;
 
25120
class ExtAC;
 
25121
class ExtACBuilderCoupling;
 
25122
class ExtACSyntaxCoupling;
 
25123
class ExtACTree;
 
25124
class ExtACKeywords;
 
25125
class ExtGnu;
 
25126
class PragmaOnceUnitState;
 
25127
class PragmaOnce;
 
25128
class CMatchSyntax;
 
25129
namespace Puma {
 
25130
 
 
25131
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25132
class CT_TemplateParamList : public CT_List, public CSemScope {
 
25133
#line 25134 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25134
  friend class ::CCExprResolve;
 
25135
  friend class ::CExprResolve;
 
25136
  friend class ::WinIfExists;
 
25137
  friend class ::WinImportHandler;
 
25138
  friend class ::WinMacros;
 
25139
  friend class ::WinAsm;
 
25140
  friend class ::WinDeclSpecs;
 
25141
  friend class ::WinMemberExplSpec;
 
25142
  friend class ::WinTypeKeywords;
 
25143
  friend class ::WinFriend;
 
25144
  friend class ::ExtAC;
 
25145
  friend class ::ExtACBuilderCoupling;
 
25146
  friend class ::ExtACSyntaxCoupling;
 
25147
  friend class ::ExtACTree;
 
25148
  friend class ::ExtACKeywords;
 
25149
  friend class ::ExtGnu;
 
25150
  friend class ::PragmaOnceUnitState;
 
25151
  friend class ::PragmaOnce;
 
25152
  friend class ::CMatchSyntax;
 
25153
 
 
25154
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25155
 
 
25156
public:
 
25157
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
25158
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25159
  static const char *NodeId ();
 
25160
  /** Get the name of the node. Can be compared with NodeId(). */
 
25161
  const char *NodeName () const { return NodeId (); }
 
25162
  /** Get the scope of the template parameter list. */
 
25163
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
25164
};
 
25165
 
 
25166
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
25167
 *  Tree node representing a template argument list. */
 
25168
 
 
25169
#line 25170 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25170
} // closed Puma
 
25171
class CCExprResolve;
 
25172
class CExprResolve;
 
25173
class WinIfExists;
 
25174
class WinImportHandler;
 
25175
class WinMacros;
 
25176
class WinAsm;
 
25177
class WinDeclSpecs;
 
25178
class WinMemberExplSpec;
 
25179
class WinTypeKeywords;
 
25180
class WinFriend;
 
25181
class ExtAC;
 
25182
class ExtACBuilderCoupling;
 
25183
class ExtACSyntaxCoupling;
 
25184
class ExtACTree;
 
25185
class ExtACKeywords;
 
25186
class ExtGnu;
 
25187
class PragmaOnceUnitState;
 
25188
class PragmaOnce;
 
25189
class CMatchSyntax;
 
25190
namespace Puma {
 
25191
 
 
25192
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25193
class CT_TemplateArgList : public CT_List {
 
25194
#line 25195 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25195
  friend class ::CCExprResolve;
 
25196
  friend class ::CExprResolve;
 
25197
  friend class ::WinIfExists;
 
25198
  friend class ::WinImportHandler;
 
25199
  friend class ::WinMacros;
 
25200
  friend class ::WinAsm;
 
25201
  friend class ::WinDeclSpecs;
 
25202
  friend class ::WinMemberExplSpec;
 
25203
  friend class ::WinTypeKeywords;
 
25204
  friend class ::WinFriend;
 
25205
  friend class ::ExtAC;
 
25206
  friend class ::ExtACBuilderCoupling;
 
25207
  friend class ::ExtACSyntaxCoupling;
 
25208
  friend class ::ExtACTree;
 
25209
  friend class ::ExtACKeywords;
 
25210
  friend class ::ExtGnu;
 
25211
  friend class ::PragmaOnceUnitState;
 
25212
  friend class ::PragmaOnce;
 
25213
  friend class ::CMatchSyntax;
 
25214
 
 
25215
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25216
 
 
25217
public:
 
25218
  /** Constructor. */
 
25219
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
25220
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25221
  static const char *NodeId ();
 
25222
  /** Get the name of the node. Can be compared with NodeId(). */
 
25223
  const char *NodeName () const { return NodeId (); }
 
25224
};
 
25225
 
 
25226
/*****************************************************************************/
 
25227
/*                                                                           */
 
25228
/*                              Expressions                                  */
 
25229
/*                                                                           */
 
25230
/*****************************************************************************/
 
25231
 
 
25232
/** \class CT_Expression CTree.h Puma/CTree.h
 
25233
 *  Base class for all expression tree nodes. */
 
25234
 
 
25235
#line 25236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25236
} // closed Puma
 
25237
class CCExprResolve;
 
25238
class CExprResolve;
 
25239
class WinIfExists;
 
25240
class WinImportHandler;
 
25241
class WinMacros;
 
25242
class WinAsm;
 
25243
class WinDeclSpecs;
 
25244
class WinMemberExplSpec;
 
25245
class WinTypeKeywords;
 
25246
class WinFriend;
 
25247
class ExtAC;
 
25248
class ExtACBuilderCoupling;
 
25249
class ExtACSyntaxCoupling;
 
25250
class ExtACTree;
 
25251
class ExtACKeywords;
 
25252
class ExtGnu;
 
25253
class PragmaOnceUnitState;
 
25254
class PragmaOnce;
 
25255
class CMatchSyntax;
 
25256
namespace Puma {
 
25257
 
 
25258
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25259
 
 
25260
#line 25261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25261
} // closed Puma
 
25262
 
 
25263
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
25264
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
25265
#include "CCExprResolveH.ah"
 
25266
#endif
 
25267
namespace Puma {
 
25268
 
 
25269
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25270
 
 
25271
#line 25272 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25272
} // closed Puma
 
25273
 
 
25274
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
25275
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
25276
#include "CExprResolveH.ah"
 
25277
#endif
 
25278
namespace Puma {
 
25279
 
 
25280
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25281
class CT_Expression : public CTree, public CSemValue {
 
25282
#line 25283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25283
  friend class ::CCExprResolve;
 
25284
  friend class ::CExprResolve;
 
25285
  friend class ::WinIfExists;
 
25286
  friend class ::WinImportHandler;
 
25287
  friend class ::WinMacros;
 
25288
  friend class ::WinAsm;
 
25289
  friend class ::WinDeclSpecs;
 
25290
  friend class ::WinMemberExplSpec;
 
25291
  friend class ::WinTypeKeywords;
 
25292
  friend class ::WinFriend;
 
25293
  friend class ::ExtAC;
 
25294
  friend class ::ExtACBuilderCoupling;
 
25295
  friend class ::ExtACSyntaxCoupling;
 
25296
  friend class ::ExtACTree;
 
25297
  friend class ::ExtACKeywords;
 
25298
  friend class ::ExtGnu;
 
25299
  friend class ::PragmaOnceUnitState;
 
25300
  friend class ::PragmaOnce;
 
25301
  friend class ::CMatchSyntax;
 
25302
 
 
25303
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25304
 
 
25305
protected:
 
25306
  /** Constructor. */
 
25307
  CT_Expression () {}
 
25308
 
 
25309
public:
 
25310
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25311
  static const char *NodeId ();
 
25312
  /** Get the name of the node. Can be compared with NodeId(). */
 
25313
  const char *NodeName () const { return NodeId (); }
 
25314
  /** Get the type of the expression.
 
25315
   *  \return The type information object or NULL. */
 
25316
  CTypeInfo *Type () const { return type; }
 
25317
  /** Get the value of the expression.
 
25318
   *  \return The value object or NULL. */
 
25319
  CExprValue *Value () const { return value; }
 
25320
  /** Get the semantic value information of the expression.
 
25321
   *  \return The value object or NULL. */
 
25322
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
25323
  /** Get this. */
 
25324
  virtual CT_Expression *IsExpression () { return this; }
 
25325
   private:
 
25326
  typedef CT_Expression CCExprResolveExpr;
 
25327
 
 
25328
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
25329
 public :
 
25330
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
25331
  typedef CT_Expression CExprResolveExpr;
 
25332
 
 
25333
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
25334
 public :
 
25335
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
25336
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25337
};
 
25338
 
 
25339
/** \class CT_Call CTree.h Puma/CTree.h
 
25340
 *  Tree node representing explicit or implicit function calls 
 
25341
 *  including built-in or user-defined functions and overloaded
 
25342
 *  operators. */
 
25343
 
 
25344
#line 25345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25345
} // closed Puma
 
25346
class CCExprResolve;
 
25347
class CExprResolve;
 
25348
class WinIfExists;
 
25349
class WinImportHandler;
 
25350
class WinMacros;
 
25351
class WinAsm;
 
25352
class WinDeclSpecs;
 
25353
class WinMemberExplSpec;
 
25354
class WinTypeKeywords;
 
25355
class WinFriend;
 
25356
class ExtAC;
 
25357
class ExtACBuilderCoupling;
 
25358
class ExtACSyntaxCoupling;
 
25359
class ExtACTree;
 
25360
class ExtACKeywords;
 
25361
class ExtGnu;
 
25362
class PragmaOnceUnitState;
 
25363
class PragmaOnce;
 
25364
class CMatchSyntax;
 
25365
namespace Puma {
 
25366
 
 
25367
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25368
 
 
25369
#line 25370 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25370
} // closed Puma
 
25371
 
 
25372
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
25373
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
25374
#include "CCExprResolveH.ah"
 
25375
#endif
 
25376
namespace Puma {
 
25377
 
 
25378
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25379
 
 
25380
#line 25381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25381
} // closed Puma
 
25382
 
 
25383
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
25384
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
25385
#include "CExprResolveH.ah"
 
25386
#endif
 
25387
namespace Puma {
 
25388
 
 
25389
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25390
class CT_Call : public CT_Expression, public CSemObject {
 
25391
#line 25392 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25392
  friend class ::CCExprResolve;
 
25393
  friend class ::CExprResolve;
 
25394
  friend class ::WinIfExists;
 
25395
  friend class ::WinImportHandler;
 
25396
  friend class ::WinMacros;
 
25397
  friend class ::WinAsm;
 
25398
  friend class ::WinDeclSpecs;
 
25399
  friend class ::WinMemberExplSpec;
 
25400
  friend class ::WinTypeKeywords;
 
25401
  friend class ::WinFriend;
 
25402
  friend class ::ExtAC;
 
25403
  friend class ::ExtACBuilderCoupling;
 
25404
  friend class ::ExtACSyntaxCoupling;
 
25405
  friend class ::ExtACTree;
 
25406
  friend class ::ExtACKeywords;
 
25407
  friend class ::ExtGnu;
 
25408
  friend class ::PragmaOnceUnitState;
 
25409
  friend class ::PragmaOnce;
 
25410
  friend class ::CMatchSyntax;
 
25411
 
 
25412
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25413
 
 
25414
protected:
 
25415
  /** Constructor. */
 
25416
  CT_Call () {}
 
25417
  
 
25418
public:
 
25419
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25420
  static const char *NodeId ();
 
25421
  /** Get the name of the node. Can be compared with NodeId(). */
 
25422
  const char *NodeName () const { return NodeId (); }
 
25423
  /** Get the semantic information of the call.
 
25424
   *  \return The semantic information or NULL. */
 
25425
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
25426
  /** Get this. */
 
25427
  CT_Call *IsCall () { return this; }
 
25428
   private:
 
25429
  typedef CT_Call CCExprResolveExpr;
 
25430
 
 
25431
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
25432
 public :
 
25433
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
25434
  typedef CT_Call CExprResolveExpr;
 
25435
 
 
25436
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
25437
 public :
 
25438
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
25439
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25440
};
 
25441
 
 
25442
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
25443
 *  Tree node representing implicit function calls detected by
 
25444
 *  the semantic analysis. */
 
25445
 
 
25446
#line 25447 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25447
} // closed Puma
 
25448
class CCExprResolve;
 
25449
class CExprResolve;
 
25450
class WinIfExists;
 
25451
class WinImportHandler;
 
25452
class WinMacros;
 
25453
class WinAsm;
 
25454
class WinDeclSpecs;
 
25455
class WinMemberExplSpec;
 
25456
class WinTypeKeywords;
 
25457
class WinFriend;
 
25458
class ExtAC;
 
25459
class ExtACBuilderCoupling;
 
25460
class ExtACSyntaxCoupling;
 
25461
class ExtACTree;
 
25462
class ExtACKeywords;
 
25463
class ExtGnu;
 
25464
class PragmaOnceUnitState;
 
25465
class PragmaOnce;
 
25466
class CMatchSyntax;
 
25467
namespace Puma {
 
25468
 
 
25469
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25470
 
 
25471
#line 25472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25472
} // closed Puma
 
25473
 
 
25474
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
25475
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
25476
#include "CCExprResolveH.ah"
 
25477
#endif
 
25478
namespace Puma {
 
25479
 
 
25480
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25481
 
 
25482
#line 25483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25483
} // closed Puma
 
25484
 
 
25485
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
25486
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
25487
#include "CExprResolveH.ah"
 
25488
#endif
 
25489
namespace Puma {
 
25490
 
 
25491
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25492
class CT_ImplicitCall : public CT_Call {
 
25493
#line 25494 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25494
  friend class ::CCExprResolve;
 
25495
  friend class ::CExprResolve;
 
25496
  friend class ::WinIfExists;
 
25497
  friend class ::WinImportHandler;
 
25498
  friend class ::WinMacros;
 
25499
  friend class ::WinAsm;
 
25500
  friend class ::WinDeclSpecs;
 
25501
  friend class ::WinMemberExplSpec;
 
25502
  friend class ::WinTypeKeywords;
 
25503
  friend class ::WinFriend;
 
25504
  friend class ::ExtAC;
 
25505
  friend class ::ExtACBuilderCoupling;
 
25506
  friend class ::ExtACSyntaxCoupling;
 
25507
  friend class ::ExtACTree;
 
25508
  friend class ::ExtACKeywords;
 
25509
  friend class ::ExtGnu;
 
25510
  friend class ::PragmaOnceUnitState;
 
25511
  friend class ::PragmaOnce;
 
25512
  friend class ::CMatchSyntax;
 
25513
 
 
25514
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25515
 
 
25516
  CTree *_arg;
 
25517
 
 
25518
public:
 
25519
  /** Constructor.
 
25520
   *  \param arg The call argument. */
 
25521
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
25522
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25523
  static const char *NodeId ();
 
25524
  /** Get the name of the node. Can be compared with NodeId(). */
 
25525
  const char *NodeName () const { return NodeId (); }
 
25526
  /** Get the number of sons. */
 
25527
  int Sons () const { return 1; }
 
25528
  /** Get the n-th son.
 
25529
   *  \param n The index of the son.
 
25530
   *  \return The n-th son or NULL. */
 
25531
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
25532
  /** Replace a son.
 
25533
   *  \param old_son The son to replace.
 
25534
   *  \param new_son The new son. */
 
25535
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
25536
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
25537
   private:
 
25538
  typedef CT_ImplicitCall CCExprResolveExpr;
 
25539
 
 
25540
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
25541
 public :
 
25542
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
25543
  typedef CT_ImplicitCall CExprResolveExpr;
 
25544
 
 
25545
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
25546
 public :
 
25547
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
25548
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25549
};
 
25550
 
 
25551
/** \class CT_String CTree.h Puma/CTree.h
 
25552
 *  Tree node representing a string literal. */
 
25553
 
 
25554
#line 25555 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25555
} // closed Puma
 
25556
class CCExprResolve;
 
25557
class CExprResolve;
 
25558
class WinIfExists;
 
25559
class WinImportHandler;
 
25560
class WinMacros;
 
25561
class WinAsm;
 
25562
class WinDeclSpecs;
 
25563
class WinMemberExplSpec;
 
25564
class WinTypeKeywords;
 
25565
class WinFriend;
 
25566
class ExtAC;
 
25567
class ExtACBuilderCoupling;
 
25568
class ExtACSyntaxCoupling;
 
25569
class ExtACTree;
 
25570
class ExtACKeywords;
 
25571
class ExtGnu;
 
25572
class PragmaOnceUnitState;
 
25573
class PragmaOnce;
 
25574
class CMatchSyntax;
 
25575
namespace Puma {
 
25576
 
 
25577
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25578
 
 
25579
#line 25580 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25580
} // closed Puma
 
25581
 
 
25582
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
25583
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
25584
#include "CCExprResolveH.ah"
 
25585
#endif
 
25586
namespace Puma {
 
25587
 
 
25588
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25589
 
 
25590
#line 25591 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25591
} // closed Puma
 
25592
 
 
25593
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
25594
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
25595
#include "CExprResolveH.ah"
 
25596
#endif
 
25597
namespace Puma {
 
25598
 
 
25599
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25600
class CT_String : public CT_List, public CSemValue {
 
25601
#line 25602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25602
  friend class ::CCExprResolve;
 
25603
  friend class ::CExprResolve;
 
25604
  friend class ::WinIfExists;
 
25605
  friend class ::WinImportHandler;
 
25606
  friend class ::WinMacros;
 
25607
  friend class ::WinAsm;
 
25608
  friend class ::WinDeclSpecs;
 
25609
  friend class ::WinMemberExplSpec;
 
25610
  friend class ::WinTypeKeywords;
 
25611
  friend class ::WinFriend;
 
25612
  friend class ::ExtAC;
 
25613
  friend class ::ExtACBuilderCoupling;
 
25614
  friend class ::ExtACSyntaxCoupling;
 
25615
  friend class ::ExtACTree;
 
25616
  friend class ::ExtACKeywords;
 
25617
  friend class ::ExtGnu;
 
25618
  friend class ::PragmaOnceUnitState;
 
25619
  friend class ::PragmaOnce;
 
25620
  friend class ::CMatchSyntax;
 
25621
 
 
25622
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25623
 
 
25624
public:
 
25625
  /** Constructor. 
 
25626
   *  \param size The number of sub-strings. */
 
25627
  CT_String (int size) : CT_List (size, 1) {}
 
25628
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25629
  static const char *NodeId ();
 
25630
  /** Get the name of the node. Can be compared with NodeId(). */
 
25631
  const char *NodeName () const { return NodeId (); }
 
25632
 
 
25633
  /** Get the type of the string. 
 
25634
   *  \return The type or NULL. */
 
25635
  CTypeInfo *Type () const { return type; }
 
25636
  /** Get the string value.
 
25637
   *  \return The value or NULL. */
 
25638
  CExprValue *Value () const { return value; }
 
25639
  /** Get the semantic value info object.
 
25640
   *  \return The semantic value object or NULL. */
 
25641
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
25642
  /** Get this. */
 
25643
  virtual CT_String *IsString () { return this; }
 
25644
   private:
 
25645
  typedef CT_String CCExprResolveExpr;
 
25646
 
 
25647
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
25648
 public :
 
25649
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
25650
  typedef CT_String CExprResolveExpr;
 
25651
 
 
25652
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
25653
 public :
 
25654
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
25655
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25656
};
 
25657
 
 
25658
/** \class CT_WideString CTree.h Puma/CTree.h
 
25659
 *  Tree node representing a wide string literal. */
 
25660
 
 
25661
#line 25662 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25662
} // closed Puma
 
25663
class CCExprResolve;
 
25664
class CExprResolve;
 
25665
class WinIfExists;
 
25666
class WinImportHandler;
 
25667
class WinMacros;
 
25668
class WinAsm;
 
25669
class WinDeclSpecs;
 
25670
class WinMemberExplSpec;
 
25671
class WinTypeKeywords;
 
25672
class WinFriend;
 
25673
class ExtAC;
 
25674
class ExtACBuilderCoupling;
 
25675
class ExtACSyntaxCoupling;
 
25676
class ExtACTree;
 
25677
class ExtACKeywords;
 
25678
class ExtGnu;
 
25679
class PragmaOnceUnitState;
 
25680
class PragmaOnce;
 
25681
class CMatchSyntax;
 
25682
namespace Puma {
 
25683
 
 
25684
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25685
 
 
25686
#line 25687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25687
} // closed Puma
 
25688
 
 
25689
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
25690
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
25691
#include "CCExprResolveH.ah"
 
25692
#endif
 
25693
namespace Puma {
 
25694
 
 
25695
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25696
 
 
25697
#line 25698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25698
} // closed Puma
 
25699
 
 
25700
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
25701
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
25702
#include "CExprResolveH.ah"
 
25703
#endif
 
25704
namespace Puma {
 
25705
 
 
25706
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25707
class CT_WideString : public CT_String {
 
25708
#line 25709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25709
  friend class ::CCExprResolve;
 
25710
  friend class ::CExprResolve;
 
25711
  friend class ::WinIfExists;
 
25712
  friend class ::WinImportHandler;
 
25713
  friend class ::WinMacros;
 
25714
  friend class ::WinAsm;
 
25715
  friend class ::WinDeclSpecs;
 
25716
  friend class ::WinMemberExplSpec;
 
25717
  friend class ::WinTypeKeywords;
 
25718
  friend class ::WinFriend;
 
25719
  friend class ::ExtAC;
 
25720
  friend class ::ExtACBuilderCoupling;
 
25721
  friend class ::ExtACSyntaxCoupling;
 
25722
  friend class ::ExtACTree;
 
25723
  friend class ::ExtACKeywords;
 
25724
  friend class ::ExtGnu;
 
25725
  friend class ::PragmaOnceUnitState;
 
25726
  friend class ::PragmaOnce;
 
25727
  friend class ::CMatchSyntax;
 
25728
 
 
25729
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25730
 
 
25731
public:
 
25732
  /** Constructor.
 
25733
   *  \param size The number of sub-strings. */
 
25734
  CT_WideString (int size) : CT_String (size) {}
 
25735
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25736
  static const char *NodeId ();
 
25737
  /** Get the name of the node. Can be compared with NodeId(). */
 
25738
  const char *NodeName () const { return NodeId (); }
 
25739
   private:
 
25740
  typedef CT_WideString CCExprResolveExpr;
 
25741
 
 
25742
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
25743
 public :
 
25744
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
25745
  typedef CT_WideString CExprResolveExpr;
 
25746
 
 
25747
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
25748
 public :
 
25749
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
25750
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25751
};
 
25752
 
 
25753
/** \class CT_Integer CTree.h Puma/CTree.h
 
25754
 *  Tree node representing an integer constant. */
 
25755
 
 
25756
#line 25757 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25757
} // closed Puma
 
25758
class CCExprResolve;
 
25759
class CExprResolve;
 
25760
class WinIfExists;
 
25761
class WinImportHandler;
 
25762
class WinMacros;
 
25763
class WinAsm;
 
25764
class WinDeclSpecs;
 
25765
class WinMemberExplSpec;
 
25766
class WinTypeKeywords;
 
25767
class WinFriend;
 
25768
class ExtAC;
 
25769
class ExtACBuilderCoupling;
 
25770
class ExtACSyntaxCoupling;
 
25771
class ExtACTree;
 
25772
class ExtACKeywords;
 
25773
class ExtGnu;
 
25774
class PragmaOnceUnitState;
 
25775
class PragmaOnce;
 
25776
class CMatchSyntax;
 
25777
namespace Puma {
 
25778
 
 
25779
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25780
 
 
25781
#line 25782 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25782
} // closed Puma
 
25783
 
 
25784
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
25785
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
25786
#include "CCExprResolveH.ah"
 
25787
#endif
 
25788
namespace Puma {
 
25789
 
 
25790
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25791
 
 
25792
#line 25793 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25793
} // closed Puma
 
25794
 
 
25795
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
25796
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
25797
#include "CExprResolveH.ah"
 
25798
#endif
 
25799
namespace Puma {
 
25800
 
 
25801
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25802
class CT_Integer : public CT_Expression {
 
25803
#line 25804 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25804
  friend class ::CCExprResolve;
 
25805
  friend class ::CExprResolve;
 
25806
  friend class ::WinIfExists;
 
25807
  friend class ::WinImportHandler;
 
25808
  friend class ::WinMacros;
 
25809
  friend class ::WinAsm;
 
25810
  friend class ::WinDeclSpecs;
 
25811
  friend class ::WinMemberExplSpec;
 
25812
  friend class ::WinTypeKeywords;
 
25813
  friend class ::WinFriend;
 
25814
  friend class ::ExtAC;
 
25815
  friend class ::ExtACBuilderCoupling;
 
25816
  friend class ::ExtACSyntaxCoupling;
 
25817
  friend class ::ExtACTree;
 
25818
  friend class ::ExtACKeywords;
 
25819
  friend class ::ExtGnu;
 
25820
  friend class ::PragmaOnceUnitState;
 
25821
  friend class ::PragmaOnce;
 
25822
  friend class ::CMatchSyntax;
 
25823
 
 
25824
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25825
 
 
25826
  CTree *_value;  // CT_Token
 
25827
 
 
25828
public:
 
25829
  /** Constructor.
 
25830
   *  \param token The token containing the integer value. */
 
25831
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
25832
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25833
  static const char *NodeId ();
 
25834
  /** Get the name of the node. Can be compared with NodeId(). */
 
25835
  const char *NodeName () const { return NodeId (); }
 
25836
  /** Get the number of sons. */
 
25837
  int Sons () const { return _value ? 1 : 0; }
 
25838
  /** Get the n-th son.
 
25839
   *  \param n The index of the son.
 
25840
   *  \return The n-th son or NULL. */
 
25841
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
25842
  /** Replace a son.
 
25843
   *  \param old_son The son to replace.
 
25844
   *  \param new_son The new son. */
 
25845
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
25846
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
25847
   private:
 
25848
  typedef CT_Integer CCExprResolveExpr;
 
25849
 
 
25850
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
25851
 public :
 
25852
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
25853
  typedef CT_Integer CExprResolveExpr;
 
25854
 
 
25855
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
25856
 public :
 
25857
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
25858
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25859
};
 
25860
 
 
25861
/** \class CT_Character CTree.h Puma/CTree.h
 
25862
 *  Tree node representing a single character constant. */
 
25863
 
 
25864
#line 25865 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25865
} // closed Puma
 
25866
class CCExprResolve;
 
25867
class CExprResolve;
 
25868
class WinIfExists;
 
25869
class WinImportHandler;
 
25870
class WinMacros;
 
25871
class WinAsm;
 
25872
class WinDeclSpecs;
 
25873
class WinMemberExplSpec;
 
25874
class WinTypeKeywords;
 
25875
class WinFriend;
 
25876
class ExtAC;
 
25877
class ExtACBuilderCoupling;
 
25878
class ExtACSyntaxCoupling;
 
25879
class ExtACTree;
 
25880
class ExtACKeywords;
 
25881
class ExtGnu;
 
25882
class PragmaOnceUnitState;
 
25883
class PragmaOnce;
 
25884
class CMatchSyntax;
 
25885
namespace Puma {
 
25886
 
 
25887
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25888
 
 
25889
#line 25890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25890
} // closed Puma
 
25891
 
 
25892
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
25893
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
25894
#include "CCExprResolveH.ah"
 
25895
#endif
 
25896
namespace Puma {
 
25897
 
 
25898
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25899
 
 
25900
#line 25901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25901
} // closed Puma
 
25902
 
 
25903
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
25904
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
25905
#include "CExprResolveH.ah"
 
25906
#endif
 
25907
namespace Puma {
 
25908
 
 
25909
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25910
class CT_Character : public CT_Expression {
 
25911
#line 25912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25912
  friend class ::CCExprResolve;
 
25913
  friend class ::CExprResolve;
 
25914
  friend class ::WinIfExists;
 
25915
  friend class ::WinImportHandler;
 
25916
  friend class ::WinMacros;
 
25917
  friend class ::WinAsm;
 
25918
  friend class ::WinDeclSpecs;
 
25919
  friend class ::WinMemberExplSpec;
 
25920
  friend class ::WinTypeKeywords;
 
25921
  friend class ::WinFriend;
 
25922
  friend class ::ExtAC;
 
25923
  friend class ::ExtACBuilderCoupling;
 
25924
  friend class ::ExtACSyntaxCoupling;
 
25925
  friend class ::ExtACTree;
 
25926
  friend class ::ExtACKeywords;
 
25927
  friend class ::ExtGnu;
 
25928
  friend class ::PragmaOnceUnitState;
 
25929
  friend class ::PragmaOnce;
 
25930
  friend class ::CMatchSyntax;
 
25931
 
 
25932
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25933
 
 
25934
  CTree *_value;  // CT_Token
 
25935
 
 
25936
public:
 
25937
  /** Constructor.
 
25938
   *  \param token The token containing the character value. */
 
25939
  CT_Character (CTree *token) { AddSon (_value, token); }
 
25940
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
25941
  static const char *NodeId ();
 
25942
  /** Get the name of the node. Can be compared with NodeId(). */
 
25943
  const char *NodeName () const { return NodeId (); }
 
25944
  /** Get the number of sons. */
 
25945
  int Sons () const { return 1; }
 
25946
  /** Get the n-th son.
 
25947
   *  \param n The index of the son.
 
25948
   *  \return The n-th son or NULL. */
 
25949
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
25950
  /** Replace a son.
 
25951
   *  \param old_son The son to replace.
 
25952
   *  \param new_son The new son. */
 
25953
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
25954
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
25955
   private:
 
25956
  typedef CT_Character CCExprResolveExpr;
 
25957
 
 
25958
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
25959
 public :
 
25960
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
25961
  typedef CT_Character CExprResolveExpr;
 
25962
 
 
25963
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
25964
 public :
 
25965
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
25966
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25967
};
 
25968
 
 
25969
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
25970
 *  Tree node representing a wide character constant. */
 
25971
 
 
25972
#line 25973 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25973
} // closed Puma
 
25974
class CCExprResolve;
 
25975
class CExprResolve;
 
25976
class WinIfExists;
 
25977
class WinImportHandler;
 
25978
class WinMacros;
 
25979
class WinAsm;
 
25980
class WinDeclSpecs;
 
25981
class WinMemberExplSpec;
 
25982
class WinTypeKeywords;
 
25983
class WinFriend;
 
25984
class ExtAC;
 
25985
class ExtACBuilderCoupling;
 
25986
class ExtACSyntaxCoupling;
 
25987
class ExtACTree;
 
25988
class ExtACKeywords;
 
25989
class ExtGnu;
 
25990
class PragmaOnceUnitState;
 
25991
class PragmaOnce;
 
25992
class CMatchSyntax;
 
25993
namespace Puma {
 
25994
 
 
25995
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
25996
 
 
25997
#line 25998 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
25998
} // closed Puma
 
25999
 
 
26000
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26001
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26002
#include "CCExprResolveH.ah"
 
26003
#endif
 
26004
namespace Puma {
 
26005
 
 
26006
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26007
 
 
26008
#line 26009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26009
} // closed Puma
 
26010
 
 
26011
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26012
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26013
#include "CExprResolveH.ah"
 
26014
#endif
 
26015
namespace Puma {
 
26016
 
 
26017
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26018
class CT_WideCharacter : public CT_Character {
 
26019
#line 26020 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26020
  friend class ::CCExprResolve;
 
26021
  friend class ::CExprResolve;
 
26022
  friend class ::WinIfExists;
 
26023
  friend class ::WinImportHandler;
 
26024
  friend class ::WinMacros;
 
26025
  friend class ::WinAsm;
 
26026
  friend class ::WinDeclSpecs;
 
26027
  friend class ::WinMemberExplSpec;
 
26028
  friend class ::WinTypeKeywords;
 
26029
  friend class ::WinFriend;
 
26030
  friend class ::ExtAC;
 
26031
  friend class ::ExtACBuilderCoupling;
 
26032
  friend class ::ExtACSyntaxCoupling;
 
26033
  friend class ::ExtACTree;
 
26034
  friend class ::ExtACKeywords;
 
26035
  friend class ::ExtGnu;
 
26036
  friend class ::PragmaOnceUnitState;
 
26037
  friend class ::PragmaOnce;
 
26038
  friend class ::CMatchSyntax;
 
26039
 
 
26040
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26041
 
 
26042
public:
 
26043
  /** Constructor.
 
26044
   *  \param token The token containing the wide character value. */
 
26045
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
26046
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26047
  static const char *NodeId ();
 
26048
  /** Get the name of the node. Can be compared with NodeId(). */
 
26049
  const char *NodeName () const { return NodeId (); }
 
26050
   private:
 
26051
  typedef CT_WideCharacter CCExprResolveExpr;
 
26052
 
 
26053
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
26054
 public :
 
26055
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
26056
  typedef CT_WideCharacter CExprResolveExpr;
 
26057
 
 
26058
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
26059
 public :
 
26060
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
26061
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26062
};
 
26063
 
 
26064
/** \class CT_Float CTree.h Puma/CTree.h
 
26065
 *  Tree node representing a floating point constant. */
 
26066
 
 
26067
#line 26068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26068
} // closed Puma
 
26069
class CCExprResolve;
 
26070
class CExprResolve;
 
26071
class WinIfExists;
 
26072
class WinImportHandler;
 
26073
class WinMacros;
 
26074
class WinAsm;
 
26075
class WinDeclSpecs;
 
26076
class WinMemberExplSpec;
 
26077
class WinTypeKeywords;
 
26078
class WinFriend;
 
26079
class ExtAC;
 
26080
class ExtACBuilderCoupling;
 
26081
class ExtACSyntaxCoupling;
 
26082
class ExtACTree;
 
26083
class ExtACKeywords;
 
26084
class ExtGnu;
 
26085
class PragmaOnceUnitState;
 
26086
class PragmaOnce;
 
26087
class CMatchSyntax;
 
26088
namespace Puma {
 
26089
 
 
26090
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26091
 
 
26092
#line 26093 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26093
} // closed Puma
 
26094
 
 
26095
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26096
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26097
#include "CCExprResolveH.ah"
 
26098
#endif
 
26099
namespace Puma {
 
26100
 
 
26101
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26102
 
 
26103
#line 26104 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26104
} // closed Puma
 
26105
 
 
26106
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26107
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26108
#include "CExprResolveH.ah"
 
26109
#endif
 
26110
namespace Puma {
 
26111
 
 
26112
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26113
class CT_Float : public CT_Expression {
 
26114
#line 26115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26115
  friend class ::CCExprResolve;
 
26116
  friend class ::CExprResolve;
 
26117
  friend class ::WinIfExists;
 
26118
  friend class ::WinImportHandler;
 
26119
  friend class ::WinMacros;
 
26120
  friend class ::WinAsm;
 
26121
  friend class ::WinDeclSpecs;
 
26122
  friend class ::WinMemberExplSpec;
 
26123
  friend class ::WinTypeKeywords;
 
26124
  friend class ::WinFriend;
 
26125
  friend class ::ExtAC;
 
26126
  friend class ::ExtACBuilderCoupling;
 
26127
  friend class ::ExtACSyntaxCoupling;
 
26128
  friend class ::ExtACTree;
 
26129
  friend class ::ExtACKeywords;
 
26130
  friend class ::ExtGnu;
 
26131
  friend class ::PragmaOnceUnitState;
 
26132
  friend class ::PragmaOnce;
 
26133
  friend class ::CMatchSyntax;
 
26134
 
 
26135
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26136
 
 
26137
  CTree *_value;  // CT_Token
 
26138
 
 
26139
public:
 
26140
  /** Constructor.
 
26141
   *  \param token The token containing the floating point value. */
 
26142
  CT_Float (CTree *token) { AddSon (_value, token); }
 
26143
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26144
  static const char *NodeId ();
 
26145
  /** Get the name of the node. Can be compared with NodeId(). */
 
26146
  const char *NodeName () const { return NodeId (); }
 
26147
  /** Get the number of sons. */
 
26148
  int Sons () const { return 1; }
 
26149
  /** Get the n-th son.
 
26150
   *  \param n The index of the son.
 
26151
   *  \return The n-th son or NULL. */
 
26152
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
26153
  /** Replace a son.
 
26154
   *  \param old_son The son to replace.
 
26155
   *  \param new_son The new son. */
 
26156
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
26157
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
26158
   private:
 
26159
  typedef CT_Float CCExprResolveExpr;
 
26160
 
 
26161
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
26162
 public :
 
26163
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
26164
  typedef CT_Float CExprResolveExpr;
 
26165
 
 
26166
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
26167
 public :
 
26168
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
26169
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26170
};
 
26171
 
 
26172
/** \class CT_Bool CTree.h Puma/CTree.h
 
26173
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
 
26174
 
 
26175
#line 26176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26176
} // closed Puma
 
26177
class CCExprResolve;
 
26178
class CExprResolve;
 
26179
class WinIfExists;
 
26180
class WinImportHandler;
 
26181
class WinMacros;
 
26182
class WinAsm;
 
26183
class WinDeclSpecs;
 
26184
class WinMemberExplSpec;
 
26185
class WinTypeKeywords;
 
26186
class WinFriend;
 
26187
class ExtAC;
 
26188
class ExtACBuilderCoupling;
 
26189
class ExtACSyntaxCoupling;
 
26190
class ExtACTree;
 
26191
class ExtACKeywords;
 
26192
class ExtGnu;
 
26193
class PragmaOnceUnitState;
 
26194
class PragmaOnce;
 
26195
class CMatchSyntax;
 
26196
namespace Puma {
 
26197
 
 
26198
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26199
 
 
26200
#line 26201 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26201
} // closed Puma
 
26202
 
 
26203
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26204
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26205
#include "CCExprResolveH.ah"
 
26206
#endif
 
26207
namespace Puma {
 
26208
 
 
26209
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26210
 
 
26211
#line 26212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26212
} // closed Puma
 
26213
 
 
26214
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26215
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26216
#include "CExprResolveH.ah"
 
26217
#endif
 
26218
namespace Puma {
 
26219
 
 
26220
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26221
class CT_Bool : public CT_Expression {
 
26222
#line 26223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26223
  friend class ::CCExprResolve;
 
26224
  friend class ::CExprResolve;
 
26225
  friend class ::WinIfExists;
 
26226
  friend class ::WinImportHandler;
 
26227
  friend class ::WinMacros;
 
26228
  friend class ::WinAsm;
 
26229
  friend class ::WinDeclSpecs;
 
26230
  friend class ::WinMemberExplSpec;
 
26231
  friend class ::WinTypeKeywords;
 
26232
  friend class ::WinFriend;
 
26233
  friend class ::ExtAC;
 
26234
  friend class ::ExtACBuilderCoupling;
 
26235
  friend class ::ExtACSyntaxCoupling;
 
26236
  friend class ::ExtACTree;
 
26237
  friend class ::ExtACKeywords;
 
26238
  friend class ::ExtGnu;
 
26239
  friend class ::PragmaOnceUnitState;
 
26240
  friend class ::PragmaOnce;
 
26241
  friend class ::CMatchSyntax;
 
26242
 
 
26243
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26244
 
 
26245
  CTree *_value;  // CT_Token
 
26246
 
 
26247
public:
 
26248
  /** Constructor.
 
26249
   *  \param token The token containing the boolean value. */
 
26250
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
26251
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26252
  static const char *NodeId ();
 
26253
  /** Get the name of the node. Can be compared with NodeId(). */
 
26254
  const char *NodeName () const { return NodeId (); }
 
26255
  /** Get the number of sons. */
 
26256
  int Sons () const { return 1; }
 
26257
  /** Get the n-th son.
 
26258
   *  \param n The index of the son.
 
26259
   *  \return The n-th son or NULL. */
 
26260
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
26261
  /** Replace a son.
 
26262
   *  \param old_son The son to replace.
 
26263
   *  \param new_son The new son. */
 
26264
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
26265
   { CTree::ReplaceSon (_value, old_son, new_son); }
 
26266
   private:
 
26267
  typedef CT_Bool CCExprResolveExpr;
 
26268
 
 
26269
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
26270
 public :
 
26271
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
26272
  typedef CT_Bool CExprResolveExpr;
 
26273
 
 
26274
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
26275
 public :
 
26276
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
26277
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26278
};
 
26279
 
 
26280
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
26281
 *  Tree node representing a braced expression, e.g. (a+b). */
 
26282
 
 
26283
#line 26284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26284
} // closed Puma
 
26285
class CCExprResolve;
 
26286
class CExprResolve;
 
26287
class WinIfExists;
 
26288
class WinImportHandler;
 
26289
class WinMacros;
 
26290
class WinAsm;
 
26291
class WinDeclSpecs;
 
26292
class WinMemberExplSpec;
 
26293
class WinTypeKeywords;
 
26294
class WinFriend;
 
26295
class ExtAC;
 
26296
class ExtACBuilderCoupling;
 
26297
class ExtACSyntaxCoupling;
 
26298
class ExtACTree;
 
26299
class ExtACKeywords;
 
26300
class ExtGnu;
 
26301
class PragmaOnceUnitState;
 
26302
class PragmaOnce;
 
26303
class CMatchSyntax;
 
26304
namespace Puma {
 
26305
 
 
26306
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26307
 
 
26308
#line 26309 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26309
} // closed Puma
 
26310
 
 
26311
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26312
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26313
#include "CCExprResolveH.ah"
 
26314
#endif
 
26315
namespace Puma {
 
26316
 
 
26317
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26318
 
 
26319
#line 26320 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26320
} // closed Puma
 
26321
 
 
26322
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26323
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26324
#include "CExprResolveH.ah"
 
26325
#endif
 
26326
namespace Puma {
 
26327
 
 
26328
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26329
class CT_BracedExpr : public CT_Expression {
 
26330
#line 26331 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26331
  friend class ::CCExprResolve;
 
26332
  friend class ::CExprResolve;
 
26333
  friend class ::WinIfExists;
 
26334
  friend class ::WinImportHandler;
 
26335
  friend class ::WinMacros;
 
26336
  friend class ::WinAsm;
 
26337
  friend class ::WinDeclSpecs;
 
26338
  friend class ::WinMemberExplSpec;
 
26339
  friend class ::WinTypeKeywords;
 
26340
  friend class ::WinFriend;
 
26341
  friend class ::ExtAC;
 
26342
  friend class ::ExtACBuilderCoupling;
 
26343
  friend class ::ExtACSyntaxCoupling;
 
26344
  friend class ::ExtACTree;
 
26345
  friend class ::ExtACKeywords;
 
26346
  friend class ::ExtGnu;
 
26347
  friend class ::PragmaOnceUnitState;
 
26348
  friend class ::PragmaOnce;
 
26349
  friend class ::CMatchSyntax;
 
26350
 
 
26351
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26352
 
 
26353
  CTree *sons[3]; // open, expr, close
 
26354
 
 
26355
public:
 
26356
  /** Constructor.
 
26357
   *  \param o The opening brace.
 
26358
   *  \param e The enclosed expression.
 
26359
   *  \param c The closing brace. */
 
26360
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
 
26361
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
 
26362
  }
 
26363
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26364
  static const char *NodeId ();
 
26365
  /** Get the name of the node. Can be compared with NodeId(). */
 
26366
  const char *NodeName () const { return NodeId (); }
 
26367
  /** Get the number of sons. */
 
26368
  int Sons () const { return 3; }
 
26369
  /** Get the n-th son.
 
26370
   *  \param n The index of the son.
 
26371
   *  \return The n-th son or NULL. */
 
26372
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
26373
  /** Get the enclosed expression. */
 
26374
  CTree *Expr () const { return sons[1]; }
 
26375
  /** Get the type of the enclosed expression. */
 
26376
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
26377
  /** Get the value of the enclosed expression. */
 
26378
  CExprValue *Value () const { return Expr ()->Value (); }
 
26379
  /** Get the semantic value object. */
 
26380
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
26381
  /** Replace a son.
 
26382
   *  \param old_son The son to replace.
 
26383
   *  \param new_son The new son. */
 
26384
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
26385
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
26386
  }
 
26387
   private:
 
26388
  typedef CT_BracedExpr CCExprResolveExpr;
 
26389
 
 
26390
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
26391
 public :
 
26392
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
26393
  typedef CT_BracedExpr CExprResolveExpr;
 
26394
 
 
26395
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
26396
 public :
 
26397
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
26398
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26399
};
 
26400
 
 
26401
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
26402
 *  Base class for all tree nodes representing a name. */
 
26403
 
 
26404
#line 26405 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26405
} // closed Puma
 
26406
class CCExprResolve;
 
26407
class CExprResolve;
 
26408
class WinIfExists;
 
26409
class WinImportHandler;
 
26410
class WinMacros;
 
26411
class WinAsm;
 
26412
class WinDeclSpecs;
 
26413
class WinMemberExplSpec;
 
26414
class WinTypeKeywords;
 
26415
class WinFriend;
 
26416
class ExtAC;
 
26417
class ExtACBuilderCoupling;
 
26418
class ExtACSyntaxCoupling;
 
26419
class ExtACTree;
 
26420
class ExtACKeywords;
 
26421
class ExtGnu;
 
26422
class PragmaOnceUnitState;
 
26423
class PragmaOnce;
 
26424
class CMatchSyntax;
 
26425
namespace Puma {
 
26426
 
 
26427
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26428
 
 
26429
#line 26430 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26430
} // closed Puma
 
26431
 
 
26432
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26433
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26434
#include "CCExprResolveH.ah"
 
26435
#endif
 
26436
namespace Puma {
 
26437
 
 
26438
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26439
 
 
26440
#line 26441 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26441
} // closed Puma
 
26442
 
 
26443
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26444
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26445
#include "CExprResolveH.ah"
 
26446
#endif
 
26447
namespace Puma {
 
26448
 
 
26449
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26450
class CT_SimpleName : public CT_List, public Printable, 
 
26451
                      public CSemValue, public CSemObject {
 
26452
#line 26453 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26453
  friend class ::CCExprResolve;
 
26454
  friend class ::CExprResolve;
 
26455
  friend class ::WinIfExists;
 
26456
  friend class ::WinImportHandler;
 
26457
  friend class ::WinMacros;
 
26458
  friend class ::WinAsm;
 
26459
  friend class ::WinDeclSpecs;
 
26460
  friend class ::WinMemberExplSpec;
 
26461
  friend class ::WinTypeKeywords;
 
26462
  friend class ::WinFriend;
 
26463
  friend class ::ExtAC;
 
26464
  friend class ::ExtACBuilderCoupling;
 
26465
  friend class ::ExtACSyntaxCoupling;
 
26466
  friend class ::ExtACTree;
 
26467
  friend class ::ExtACKeywords;
 
26468
  friend class ::ExtGnu;
 
26469
  friend class ::PragmaOnceUnitState;
 
26470
  friend class ::PragmaOnce;
 
26471
  friend class ::CMatchSyntax;
 
26472
 
 
26473
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26474
 
 
26475
protected:
 
26476
  /** Constructor.
 
26477
   *  \param size The number of sub-names (for qualified names). */
 
26478
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
26479
  /** Constructor.
 
26480
   *  \param size The number of sub-names (for qualified names). 
 
26481
   *  \param properties Additional name list properties (for root qualified names). */
 
26482
  CT_SimpleName (int size, int properties) : 
 
26483
    CT_List (size, 2, properties) {}
 
26484
  
 
26485
public:
 
26486
  /** Constructor.
 
26487
   *  \param n The sub-tree containing the name. */
 
26488
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
26489
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26490
  static const char *NodeId ();
 
26491
  /** Get the name of the node. Can be compared with NodeId(). */
 
26492
  const char *NodeName () const { return NodeId (); }
 
26493
  /** Get the string containing the name. */
 
26494
  virtual const char *Text () const 
 
26495
   { return Son (Sons ()-1)->token ()->text (); }
 
26496
  /** Print the name on the given stream. 
 
26497
   *  \param os The output stream. */
 
26498
  virtual void print (ostream &os) const { os << Text (); }
 
26499
  /** Get this. */
 
26500
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
26501
  /** Get the type of the entity represented by the name. */
 
26502
  CTypeInfo *Type () const { return type; }
 
26503
  /** Get the value of the entity represented by the name. */ 
 
26504
  CExprValue *Value () const { return value; }
 
26505
  /** Get the sematic value information object. */
 
26506
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
26507
  /** Get the sematic information object. */
 
26508
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
26509
  /** Get this. */
 
26510
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
26511
 
 
26512
public:
 
26513
  /** Own new operator reusing memory. */
 
26514
  void *operator new (size_t);
 
26515
  /** Own delete operator. */
 
26516
  void operator delete (void *);
 
26517
   private:
 
26518
  typedef CT_SimpleName CCExprResolveExpr;
 
26519
 
 
26520
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
26521
 public :
 
26522
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
26523
  typedef CT_SimpleName CExprResolveExpr;
 
26524
 
 
26525
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
26526
 public :
 
26527
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
26528
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26529
};
 
26530
 
 
26531
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
26532
 *  Base class for tree nodes representing a special name, like destructor names. */
 
26533
 
 
26534
#line 26535 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26535
} // closed Puma
 
26536
class CCExprResolve;
 
26537
class CExprResolve;
 
26538
class WinIfExists;
 
26539
class WinImportHandler;
 
26540
class WinMacros;
 
26541
class WinAsm;
 
26542
class WinDeclSpecs;
 
26543
class WinMemberExplSpec;
 
26544
class WinTypeKeywords;
 
26545
class WinFriend;
 
26546
class ExtAC;
 
26547
class ExtACBuilderCoupling;
 
26548
class ExtACSyntaxCoupling;
 
26549
class ExtACTree;
 
26550
class ExtACKeywords;
 
26551
class ExtGnu;
 
26552
class PragmaOnceUnitState;
 
26553
class PragmaOnce;
 
26554
class CMatchSyntax;
 
26555
namespace Puma {
 
26556
 
 
26557
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26558
 
 
26559
#line 26560 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26560
} // closed Puma
 
26561
 
 
26562
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26563
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26564
#include "CCExprResolveH.ah"
 
26565
#endif
 
26566
namespace Puma {
 
26567
 
 
26568
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26569
 
 
26570
#line 26571 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26571
} // closed Puma
 
26572
 
 
26573
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26574
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26575
#include "CExprResolveH.ah"
 
26576
#endif
 
26577
namespace Puma {
 
26578
 
 
26579
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26580
class CT_SpecialName : public CT_SimpleName {
 
26581
#line 26582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26582
  friend class ::CCExprResolve;
 
26583
  friend class ::CExprResolve;
 
26584
  friend class ::WinIfExists;
 
26585
  friend class ::WinImportHandler;
 
26586
  friend class ::WinMacros;
 
26587
  friend class ::WinAsm;
 
26588
  friend class ::WinDeclSpecs;
 
26589
  friend class ::WinMemberExplSpec;
 
26590
  friend class ::WinTypeKeywords;
 
26591
  friend class ::WinFriend;
 
26592
  friend class ::ExtAC;
 
26593
  friend class ::ExtACBuilderCoupling;
 
26594
  friend class ::ExtACSyntaxCoupling;
 
26595
  friend class ::ExtACTree;
 
26596
  friend class ::ExtACKeywords;
 
26597
  friend class ::ExtGnu;
 
26598
  friend class ::PragmaOnceUnitState;
 
26599
  friend class ::PragmaOnce;
 
26600
  friend class ::CMatchSyntax;
 
26601
 
 
26602
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26603
 
 
26604
  char *_name;
 
26605
  
 
26606
protected:
 
26607
  /** Constructor.
 
26608
   *  \param size The number of sub-names (for qualified names). */
 
26609
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
 
26610
  
 
26611
public:
 
26612
  /** Destructor. Deletes the name string. */
 
26613
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
26614
  /** Get the string containing the name. */
 
26615
  const char *Text () const { return _name; }
 
26616
  /** Set the name. The name is copied.
 
26617
   *  \param n The name. */
 
26618
  void Name (const char *n) { 
 
26619
    if (n) { 
 
26620
      _name = new char[strlen(n) + 1];
 
26621
      strcpy (_name,n);
 
26622
    }
 
26623
  }
 
26624
 
 
26625
public:
 
26626
  /** Own new operator reusing memory. */
 
26627
  void *operator new (size_t);
 
26628
  /** Own delete operator. */
 
26629
  void operator delete (void *);
 
26630
   private:
 
26631
  typedef CT_SpecialName CCExprResolveExpr;
 
26632
 
 
26633
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
26634
 public :
 
26635
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
26636
  typedef CT_SpecialName CExprResolveExpr;
 
26637
 
 
26638
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
26639
 public :
 
26640
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
26641
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26642
};
 
26643
 
 
26644
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
26645
 *  Tree node representing a private name. Private names 
 
26646
 *  are generated names for abstract declarators etc. */
 
26647
 
 
26648
#line 26649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26649
} // closed Puma
 
26650
class CCExprResolve;
 
26651
class CExprResolve;
 
26652
class WinIfExists;
 
26653
class WinImportHandler;
 
26654
class WinMacros;
 
26655
class WinAsm;
 
26656
class WinDeclSpecs;
 
26657
class WinMemberExplSpec;
 
26658
class WinTypeKeywords;
 
26659
class WinFriend;
 
26660
class ExtAC;
 
26661
class ExtACBuilderCoupling;
 
26662
class ExtACSyntaxCoupling;
 
26663
class ExtACTree;
 
26664
class ExtACKeywords;
 
26665
class ExtGnu;
 
26666
class PragmaOnceUnitState;
 
26667
class PragmaOnce;
 
26668
class CMatchSyntax;
 
26669
namespace Puma {
 
26670
 
 
26671
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26672
 
 
26673
#line 26674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26674
} // closed Puma
 
26675
 
 
26676
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26677
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26678
#include "CCExprResolveH.ah"
 
26679
#endif
 
26680
namespace Puma {
 
26681
 
 
26682
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26683
 
 
26684
#line 26685 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26685
} // closed Puma
 
26686
 
 
26687
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26688
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26689
#include "CExprResolveH.ah"
 
26690
#endif
 
26691
namespace Puma {
 
26692
 
 
26693
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26694
class CT_PrivateName : public CT_SpecialName {
 
26695
#line 26696 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26696
  friend class ::CCExprResolve;
 
26697
  friend class ::CExprResolve;
 
26698
  friend class ::WinIfExists;
 
26699
  friend class ::WinImportHandler;
 
26700
  friend class ::WinMacros;
 
26701
  friend class ::WinAsm;
 
26702
  friend class ::WinDeclSpecs;
 
26703
  friend class ::WinMemberExplSpec;
 
26704
  friend class ::WinTypeKeywords;
 
26705
  friend class ::WinFriend;
 
26706
  friend class ::ExtAC;
 
26707
  friend class ::ExtACBuilderCoupling;
 
26708
  friend class ::ExtACSyntaxCoupling;
 
26709
  friend class ::ExtACTree;
 
26710
  friend class ::ExtACKeywords;
 
26711
  friend class ::ExtGnu;
 
26712
  friend class ::PragmaOnceUnitState;
 
26713
  friend class ::PragmaOnce;
 
26714
  friend class ::CMatchSyntax;
 
26715
 
 
26716
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26717
 
 
26718
public:
 
26719
  /** Constructor.
 
26720
   *  \param n The private (generated) name. */
 
26721
  CT_PrivateName (const char *n) { Name (n); }
 
26722
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26723
  static const char *NodeId ();
 
26724
  /** Get the name of the node. Can be compared with NodeId(). */
 
26725
  const char *NodeName () const { return NodeId (); }
 
26726
  /** Get the number of sons. */
 
26727
  int Sons () const { return 0; }
 
26728
  /** Get the n-th son.
 
26729
   *  \param n The index of the son.
 
26730
   *  \return The n-th son or NULL. */
 
26731
  CTree *Son (int n) const { return (CTree*)0; }
 
26732
 
 
26733
public:
 
26734
  /** Own new operator reusing memory. */
 
26735
  void *operator new (size_t);
 
26736
  /** Own delete operator. */
 
26737
  void operator delete (void *);
 
26738
   private:
 
26739
  typedef CT_PrivateName CCExprResolveExpr;
 
26740
 
 
26741
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
26742
 public :
 
26743
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
26744
  typedef CT_PrivateName CExprResolveExpr;
 
26745
 
 
26746
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
26747
 public :
 
26748
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
26749
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26750
};
 
26751
 
 
26752
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
26753
 *  Tree node representing a destructor name. */
 
26754
 
 
26755
#line 26756 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26756
} // closed Puma
 
26757
class CCExprResolve;
 
26758
class CExprResolve;
 
26759
class WinIfExists;
 
26760
class WinImportHandler;
 
26761
class WinMacros;
 
26762
class WinAsm;
 
26763
class WinDeclSpecs;
 
26764
class WinMemberExplSpec;
 
26765
class WinTypeKeywords;
 
26766
class WinFriend;
 
26767
class ExtAC;
 
26768
class ExtACBuilderCoupling;
 
26769
class ExtACSyntaxCoupling;
 
26770
class ExtACTree;
 
26771
class ExtACKeywords;
 
26772
class ExtGnu;
 
26773
class PragmaOnceUnitState;
 
26774
class PragmaOnce;
 
26775
class CMatchSyntax;
 
26776
namespace Puma {
 
26777
 
 
26778
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26779
 
 
26780
#line 26781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26781
} // closed Puma
 
26782
 
 
26783
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26784
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26785
#include "CCExprResolveH.ah"
 
26786
#endif
 
26787
namespace Puma {
 
26788
 
 
26789
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26790
 
 
26791
#line 26792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26792
} // closed Puma
 
26793
 
 
26794
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26795
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26796
#include "CExprResolveH.ah"
 
26797
#endif
 
26798
namespace Puma {
 
26799
 
 
26800
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26801
class CT_DestructorName : public CT_SpecialName {
 
26802
#line 26803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26803
  friend class ::CCExprResolve;
 
26804
  friend class ::CExprResolve;
 
26805
  friend class ::WinIfExists;
 
26806
  friend class ::WinImportHandler;
 
26807
  friend class ::WinMacros;
 
26808
  friend class ::WinAsm;
 
26809
  friend class ::WinDeclSpecs;
 
26810
  friend class ::WinMemberExplSpec;
 
26811
  friend class ::WinTypeKeywords;
 
26812
  friend class ::WinFriend;
 
26813
  friend class ::ExtAC;
 
26814
  friend class ::ExtACBuilderCoupling;
 
26815
  friend class ::ExtACSyntaxCoupling;
 
26816
  friend class ::ExtACTree;
 
26817
  friend class ::ExtACKeywords;
 
26818
  friend class ::ExtGnu;
 
26819
  friend class ::PragmaOnceUnitState;
 
26820
  friend class ::PragmaOnce;
 
26821
  friend class ::CMatchSyntax;
 
26822
 
 
26823
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26824
 
 
26825
public:
 
26826
  /** Constructor.
 
26827
   *  \param t The tilde operator.
 
26828
   *  \param n The class name. */
 
26829
  CT_DestructorName (CTree *t, CTree *n);
 
26830
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26831
  static const char *NodeId ();
 
26832
  /** Get the name of the node. Can be compared with NodeId(). */
 
26833
  const char *NodeName () const { return NodeId (); }
 
26834
 
 
26835
public:
 
26836
  /** Own new operator reusing memory. */
 
26837
  void *operator new (size_t);
 
26838
  /** Own delete operator. */
 
26839
  void operator delete (void *);
 
26840
   private:
 
26841
  typedef CT_DestructorName CCExprResolveExpr;
 
26842
 
 
26843
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
26844
 public :
 
26845
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
26846
  typedef CT_DestructorName CExprResolveExpr;
 
26847
 
 
26848
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
26849
 public :
 
26850
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
26851
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26852
};
 
26853
 
 
26854
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
26855
 *  Tree node representing a template name. */
 
26856
 
 
26857
#line 26858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26858
} // closed Puma
 
26859
class CCExprResolve;
 
26860
class CExprResolve;
 
26861
class WinIfExists;
 
26862
class WinImportHandler;
 
26863
class WinMacros;
 
26864
class WinAsm;
 
26865
class WinDeclSpecs;
 
26866
class WinMemberExplSpec;
 
26867
class WinTypeKeywords;
 
26868
class WinFriend;
 
26869
class ExtAC;
 
26870
class ExtACBuilderCoupling;
 
26871
class ExtACSyntaxCoupling;
 
26872
class ExtACTree;
 
26873
class ExtACKeywords;
 
26874
class ExtGnu;
 
26875
class PragmaOnceUnitState;
 
26876
class PragmaOnce;
 
26877
class CMatchSyntax;
 
26878
namespace Puma {
 
26879
 
 
26880
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26881
 
 
26882
#line 26883 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26883
} // closed Puma
 
26884
 
 
26885
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26886
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26887
#include "CCExprResolveH.ah"
 
26888
#endif
 
26889
namespace Puma {
 
26890
 
 
26891
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26892
 
 
26893
#line 26894 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26894
} // closed Puma
 
26895
 
 
26896
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26897
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
26898
#include "CExprResolveH.ah"
 
26899
#endif
 
26900
namespace Puma {
 
26901
 
 
26902
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26903
class CT_TemplateName : public CT_SpecialName {
 
26904
#line 26905 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26905
  friend class ::CCExprResolve;
 
26906
  friend class ::CExprResolve;
 
26907
  friend class ::WinIfExists;
 
26908
  friend class ::WinImportHandler;
 
26909
  friend class ::WinMacros;
 
26910
  friend class ::WinAsm;
 
26911
  friend class ::WinDeclSpecs;
 
26912
  friend class ::WinMemberExplSpec;
 
26913
  friend class ::WinTypeKeywords;
 
26914
  friend class ::WinFriend;
 
26915
  friend class ::ExtAC;
 
26916
  friend class ::ExtACBuilderCoupling;
 
26917
  friend class ::ExtACSyntaxCoupling;
 
26918
  friend class ::ExtACTree;
 
26919
  friend class ::ExtACKeywords;
 
26920
  friend class ::ExtGnu;
 
26921
  friend class ::PragmaOnceUnitState;
 
26922
  friend class ::PragmaOnce;
 
26923
  friend class ::CMatchSyntax;
 
26924
 
 
26925
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26926
 
 
26927
public:
 
26928
  /** Constructor.
 
26929
   *  \param n The template class or function name.
 
26930
   *  \param a The template argument list. */
 
26931
  CT_TemplateName (CTree *n, CTree *a) 
 
26932
   { AddSon (n); AddSon (a); }
 
26933
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
26934
  static const char *NodeId ();
 
26935
  /** Get the name of the node. Can be compared with NodeId(). */
 
26936
  const char *NodeName () const { return NodeId (); }
 
26937
  /** Get the template argument list. */
 
26938
  CT_TemplateArgList *Arguments () const 
 
26939
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
26940
  /** Get the template class or function name. */
 
26941
  CT_SimpleName *TemplateName () const 
 
26942
   { return (CT_SimpleName*)Son (Sons ()-2); }
 
26943
  // may change in the future
 
26944
  const char *Text () const { return TemplateName ()->Text (); }
 
26945
 
 
26946
public:
 
26947
  /** Own new operator reusing memory. */
 
26948
  void *operator new (size_t);
 
26949
  /** Own delete operator. */
 
26950
  void operator delete (void *);
 
26951
   private:
 
26952
  typedef CT_TemplateName CCExprResolveExpr;
 
26953
 
 
26954
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
26955
 public :
 
26956
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
26957
  typedef CT_TemplateName CExprResolveExpr;
 
26958
 
 
26959
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
26960
 public :
 
26961
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
26962
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26963
};
 
26964
 
 
26965
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
26966
 *  Tree node representing the name of an overloaded operator. */
 
26967
 
 
26968
#line 26969 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26969
} // closed Puma
 
26970
class CCExprResolve;
 
26971
class CExprResolve;
 
26972
class WinIfExists;
 
26973
class WinImportHandler;
 
26974
class WinMacros;
 
26975
class WinAsm;
 
26976
class WinDeclSpecs;
 
26977
class WinMemberExplSpec;
 
26978
class WinTypeKeywords;
 
26979
class WinFriend;
 
26980
class ExtAC;
 
26981
class ExtACBuilderCoupling;
 
26982
class ExtACSyntaxCoupling;
 
26983
class ExtACTree;
 
26984
class ExtACKeywords;
 
26985
class ExtGnu;
 
26986
class PragmaOnceUnitState;
 
26987
class PragmaOnce;
 
26988
class CMatchSyntax;
 
26989
namespace Puma {
 
26990
 
 
26991
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
26992
 
 
26993
#line 26994 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
26994
} // closed Puma
 
26995
 
 
26996
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26997
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
26998
#include "CCExprResolveH.ah"
 
26999
#endif
 
27000
namespace Puma {
 
27001
 
 
27002
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27003
 
 
27004
#line 27005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27005
} // closed Puma
 
27006
 
 
27007
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27008
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27009
#include "CExprResolveH.ah"
 
27010
#endif
 
27011
namespace Puma {
 
27012
 
 
27013
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27014
class CT_OperatorName : public CT_SpecialName {
 
27015
#line 27016 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27016
  friend class ::CCExprResolve;
 
27017
  friend class ::CExprResolve;
 
27018
  friend class ::WinIfExists;
 
27019
  friend class ::WinImportHandler;
 
27020
  friend class ::WinMacros;
 
27021
  friend class ::WinAsm;
 
27022
  friend class ::WinDeclSpecs;
 
27023
  friend class ::WinMemberExplSpec;
 
27024
  friend class ::WinTypeKeywords;
 
27025
  friend class ::WinFriend;
 
27026
  friend class ::ExtAC;
 
27027
  friend class ::ExtACBuilderCoupling;
 
27028
  friend class ::ExtACSyntaxCoupling;
 
27029
  friend class ::ExtACTree;
 
27030
  friend class ::ExtACKeywords;
 
27031
  friend class ::ExtGnu;
 
27032
  friend class ::PragmaOnceUnitState;
 
27033
  friend class ::PragmaOnce;
 
27034
  friend class ::CMatchSyntax;
 
27035
 
 
27036
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27037
 
 
27038
  int _oper;
 
27039
 
 
27040
public:
 
27041
  /** Complex operator types. */
 
27042
  enum { 
 
27043
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
27044
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
27045
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
27046
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
 
27047
  };
 
27048
 
 
27049
public:
 
27050
  /** Constructor.
 
27051
   *  \param op The token containing the operator. */
 
27052
  CT_OperatorName (CTree *op);
 
27053
  /** Constructor.
 
27054
   *  \param f The operator function keyword 'operator'.
 
27055
   *  \param op The token containing the operator. 
 
27056
   *  \param o The token of '[' or '('.
 
27057
   *  \param c The token of ']' or ')'. */
 
27058
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
27059
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27060
  static const char *NodeId ();
 
27061
  /** Get the name of the node. Can be compared with NodeId(). */
 
27062
  const char *NodeName () const { return NodeId (); }
 
27063
  /** Get the operator type (either the token type or one of 
 
27064
   *  the complex operator types). */
 
27065
  int Operator () const { return _oper; }
 
27066
 
 
27067
public:
 
27068
  /** Own new operator reusing memory. */
 
27069
  void *operator new (size_t);
 
27070
  /** Own delete operator. */
 
27071
  void operator delete (void *);
 
27072
   private:
 
27073
  typedef CT_OperatorName CCExprResolveExpr;
 
27074
 
 
27075
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27076
 public :
 
27077
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
27078
  typedef CT_OperatorName CExprResolveExpr;
 
27079
 
 
27080
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27081
 public :
 
27082
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27083
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27084
};
 
27085
 
 
27086
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
27087
 *  Tree node representing the name of a conversion function. */
 
27088
 
 
27089
#line 27090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27090
} // closed Puma
 
27091
class CCExprResolve;
 
27092
class CExprResolve;
 
27093
class WinIfExists;
 
27094
class WinImportHandler;
 
27095
class WinMacros;
 
27096
class WinAsm;
 
27097
class WinDeclSpecs;
 
27098
class WinMemberExplSpec;
 
27099
class WinTypeKeywords;
 
27100
class WinFriend;
 
27101
class ExtAC;
 
27102
class ExtACBuilderCoupling;
 
27103
class ExtACSyntaxCoupling;
 
27104
class ExtACTree;
 
27105
class ExtACKeywords;
 
27106
class ExtGnu;
 
27107
class PragmaOnceUnitState;
 
27108
class PragmaOnce;
 
27109
class CMatchSyntax;
 
27110
namespace Puma {
 
27111
 
 
27112
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27113
 
 
27114
#line 27115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27115
} // closed Puma
 
27116
 
 
27117
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27118
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27119
#include "CCExprResolveH.ah"
 
27120
#endif
 
27121
namespace Puma {
 
27122
 
 
27123
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27124
 
 
27125
#line 27126 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27126
} // closed Puma
 
27127
 
 
27128
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27129
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27130
#include "CExprResolveH.ah"
 
27131
#endif
 
27132
namespace Puma {
 
27133
 
 
27134
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27135
class CT_ConversionName : public CT_SpecialName {
 
27136
#line 27137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27137
  friend class ::CCExprResolve;
 
27138
  friend class ::CExprResolve;
 
27139
  friend class ::WinIfExists;
 
27140
  friend class ::WinImportHandler;
 
27141
  friend class ::WinMacros;
 
27142
  friend class ::WinAsm;
 
27143
  friend class ::WinDeclSpecs;
 
27144
  friend class ::WinMemberExplSpec;
 
27145
  friend class ::WinTypeKeywords;
 
27146
  friend class ::WinFriend;
 
27147
  friend class ::ExtAC;
 
27148
  friend class ::ExtACBuilderCoupling;
 
27149
  friend class ::ExtACSyntaxCoupling;
 
27150
  friend class ::ExtACTree;
 
27151
  friend class ::ExtACKeywords;
 
27152
  friend class ::ExtGnu;
 
27153
  friend class ::PragmaOnceUnitState;
 
27154
  friend class ::PragmaOnce;
 
27155
  friend class ::CMatchSyntax;
 
27156
 
 
27157
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27158
 
 
27159
public:
 
27160
  /** Constructor.
 
27161
   *  \param f The operator function keyword 'operator'.
 
27162
   *  \param t The sub-tree containing the conversion type. */
 
27163
  CT_ConversionName (CTree *f, CTree *t);
 
27164
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27165
  static const char *NodeId ();
 
27166
  /** Get the name of the node. Can be compared with NodeId(). */
 
27167
  const char *NodeName () const { return NodeId (); }
 
27168
  /** Get the conversion type. */
 
27169
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
 
27170
 
 
27171
public:
 
27172
  /** Own new operator reusing memory. */
 
27173
  void *operator new (size_t);
 
27174
  /** Own delete operator. */
 
27175
  void operator delete (void *);
 
27176
   private:
 
27177
  typedef CT_ConversionName CCExprResolveExpr;
 
27178
 
 
27179
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27180
 public :
 
27181
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
27182
  typedef CT_ConversionName CExprResolveExpr;
 
27183
 
 
27184
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27185
 public :
 
27186
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27187
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27188
};
 
27189
 
 
27190
/** \class CT_QualName CTree.h Puma/CTree.h
 
27191
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
 
27192
 
 
27193
#line 27194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27194
} // closed Puma
 
27195
class CCExprResolve;
 
27196
class CExprResolve;
 
27197
class WinIfExists;
 
27198
class WinImportHandler;
 
27199
class WinMacros;
 
27200
class WinAsm;
 
27201
class WinDeclSpecs;
 
27202
class WinMemberExplSpec;
 
27203
class WinTypeKeywords;
 
27204
class WinFriend;
 
27205
class ExtAC;
 
27206
class ExtACBuilderCoupling;
 
27207
class ExtACSyntaxCoupling;
 
27208
class ExtACTree;
 
27209
class ExtACKeywords;
 
27210
class ExtGnu;
 
27211
class PragmaOnceUnitState;
 
27212
class PragmaOnce;
 
27213
class CMatchSyntax;
 
27214
namespace Puma {
 
27215
 
 
27216
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27217
 
 
27218
#line 27219 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27219
} // closed Puma
 
27220
 
 
27221
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27222
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27223
#include "CCExprResolveH.ah"
 
27224
#endif
 
27225
namespace Puma {
 
27226
 
 
27227
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27228
 
 
27229
#line 27230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27230
} // closed Puma
 
27231
 
 
27232
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27233
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27234
#include "CExprResolveH.ah"
 
27235
#endif
 
27236
namespace Puma {
 
27237
 
 
27238
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27239
class CT_QualName : public CT_SimpleName {
 
27240
#line 27241 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27241
  friend class ::CCExprResolve;
 
27242
  friend class ::CExprResolve;
 
27243
  friend class ::WinIfExists;
 
27244
  friend class ::WinImportHandler;
 
27245
  friend class ::WinMacros;
 
27246
  friend class ::WinAsm;
 
27247
  friend class ::WinDeclSpecs;
 
27248
  friend class ::WinMemberExplSpec;
 
27249
  friend class ::WinTypeKeywords;
 
27250
  friend class ::WinFriend;
 
27251
  friend class ::ExtAC;
 
27252
  friend class ::ExtACBuilderCoupling;
 
27253
  friend class ::ExtACSyntaxCoupling;
 
27254
  friend class ::ExtACTree;
 
27255
  friend class ::ExtACKeywords;
 
27256
  friend class ::ExtGnu;
 
27257
  friend class ::PragmaOnceUnitState;
 
27258
  friend class ::PragmaOnce;
 
27259
  friend class ::CMatchSyntax;
 
27260
 
 
27261
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27262
 
 
27263
public:
 
27264
  /** Constructor.
 
27265
   *  \param size The initial number sub-names plus separators. */
 
27266
  CT_QualName (int size = 3) : 
 
27267
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
27268
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27269
  static const char *NodeId ();
 
27270
  /** Get the name of the node. Can be compared with NodeId(). */
 
27271
  const char *NodeName () const { return NodeId (); }
 
27272
  /** Print the qualified name on the given stream. 
 
27273
   *  \param os The output stream. */
 
27274
  void print (ostream &os) const;
 
27275
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
 
27276
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
27277
  /** Get the string containing the last name of the qualified name. */
 
27278
  const char *Text () const { return Name ()->Text (); }
 
27279
  /** Get the type of the last name. */
 
27280
  CTypeInfo *Type () const { return Name ()->Type (); }
 
27281
  /** Get the value of the last name. */
 
27282
  CExprValue *Value () const { return Name ()->Value (); }
 
27283
  /** Get the semantic value object of the last name. */
 
27284
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
27285
  /** Get the semantic information object of the last name. */
 
27286
  CSemObject *SemObject () const { return Name ()->SemObject (); }
 
27287
 
 
27288
public:
 
27289
  /** Own new operator reusing memory. */
 
27290
  void *operator new (size_t);
 
27291
  /** Own delete operator. */
 
27292
  void operator delete (void *);
 
27293
   private:
 
27294
  typedef CT_QualName CCExprResolveExpr;
 
27295
 
 
27296
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27297
 public :
 
27298
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
27299
  typedef CT_QualName CExprResolveExpr;
 
27300
 
 
27301
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27302
 public :
 
27303
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27304
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27305
};
 
27306
 
 
27307
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
27308
 *  Tree node representing a qualified name with introducing name separator,
 
27309
 *  e.g. ::X::Y::Z. */
 
27310
 
 
27311
#line 27312 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27312
} // closed Puma
 
27313
class CCExprResolve;
 
27314
class CExprResolve;
 
27315
class WinIfExists;
 
27316
class WinImportHandler;
 
27317
class WinMacros;
 
27318
class WinAsm;
 
27319
class WinDeclSpecs;
 
27320
class WinMemberExplSpec;
 
27321
class WinTypeKeywords;
 
27322
class WinFriend;
 
27323
class ExtAC;
 
27324
class ExtACBuilderCoupling;
 
27325
class ExtACSyntaxCoupling;
 
27326
class ExtACTree;
 
27327
class ExtACKeywords;
 
27328
class ExtGnu;
 
27329
class PragmaOnceUnitState;
 
27330
class PragmaOnce;
 
27331
class CMatchSyntax;
 
27332
namespace Puma {
 
27333
 
 
27334
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27335
 
 
27336
#line 27337 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27337
} // closed Puma
 
27338
 
 
27339
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27340
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27341
#include "CCExprResolveH.ah"
 
27342
#endif
 
27343
namespace Puma {
 
27344
 
 
27345
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27346
 
 
27347
#line 27348 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27348
} // closed Puma
 
27349
 
 
27350
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27351
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27352
#include "CExprResolveH.ah"
 
27353
#endif
 
27354
namespace Puma {
 
27355
 
 
27356
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27357
class CT_RootQualName : public CT_QualName {
 
27358
#line 27359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27359
  friend class ::CCExprResolve;
 
27360
  friend class ::CExprResolve;
 
27361
  friend class ::WinIfExists;
 
27362
  friend class ::WinImportHandler;
 
27363
  friend class ::WinMacros;
 
27364
  friend class ::WinAsm;
 
27365
  friend class ::WinDeclSpecs;
 
27366
  friend class ::WinMemberExplSpec;
 
27367
  friend class ::WinTypeKeywords;
 
27368
  friend class ::WinFriend;
 
27369
  friend class ::ExtAC;
 
27370
  friend class ::ExtACBuilderCoupling;
 
27371
  friend class ::ExtACSyntaxCoupling;
 
27372
  friend class ::ExtACTree;
 
27373
  friend class ::ExtACKeywords;
 
27374
  friend class ::ExtGnu;
 
27375
  friend class ::PragmaOnceUnitState;
 
27376
  friend class ::PragmaOnce;
 
27377
  friend class ::CMatchSyntax;
 
27378
 
 
27379
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27380
 
 
27381
public:
 
27382
  /** Constructor.
 
27383
   *  \param size Initial number of sub-name plus separator. */
 
27384
  CT_RootQualName (int size = 2) : 
 
27385
    CT_QualName (size) { AddProperties (INTRO); }
 
27386
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27387
  static const char *NodeId ();
 
27388
  /** Get the name of the node. Can be compared with NodeId(). */
 
27389
  const char *NodeName () const { return NodeId (); }
 
27390
 
 
27391
public:
 
27392
  /** Own new operator reusing memory. */
 
27393
  void *operator new (size_t);
 
27394
  /** Own delete operator. */
 
27395
  void operator delete (void *);
 
27396
   private:
 
27397
  typedef CT_RootQualName CCExprResolveExpr;
 
27398
 
 
27399
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27400
 public :
 
27401
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
27402
  typedef CT_RootQualName CExprResolveExpr;
 
27403
 
 
27404
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27405
 public :
 
27406
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27407
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27408
};
 
27409
 
 
27410
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
27411
 *  Tree node representing a binary expression, e.g. a+b. */
 
27412
 
 
27413
#line 27414 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27414
} // closed Puma
 
27415
class CCExprResolve;
 
27416
class CExprResolve;
 
27417
class WinIfExists;
 
27418
class WinImportHandler;
 
27419
class WinMacros;
 
27420
class WinAsm;
 
27421
class WinDeclSpecs;
 
27422
class WinMemberExplSpec;
 
27423
class WinTypeKeywords;
 
27424
class WinFriend;
 
27425
class ExtAC;
 
27426
class ExtACBuilderCoupling;
 
27427
class ExtACSyntaxCoupling;
 
27428
class ExtACTree;
 
27429
class ExtACKeywords;
 
27430
class ExtGnu;
 
27431
class PragmaOnceUnitState;
 
27432
class PragmaOnce;
 
27433
class CMatchSyntax;
 
27434
namespace Puma {
 
27435
 
 
27436
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27437
 
 
27438
#line 27439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27439
} // closed Puma
 
27440
 
 
27441
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27442
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27443
#include "CCExprResolveH.ah"
 
27444
#endif
 
27445
namespace Puma {
 
27446
 
 
27447
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27448
 
 
27449
#line 27450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27450
} // closed Puma
 
27451
 
 
27452
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27453
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27454
#include "CExprResolveH.ah"
 
27455
#endif
 
27456
namespace Puma {
 
27457
 
 
27458
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27459
class CT_BinaryExpr : public CT_Call {
 
27460
#line 27461 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27461
  friend class ::CCExprResolve;
 
27462
  friend class ::CExprResolve;
 
27463
  friend class ::WinIfExists;
 
27464
  friend class ::WinImportHandler;
 
27465
  friend class ::WinMacros;
 
27466
  friend class ::WinAsm;
 
27467
  friend class ::WinDeclSpecs;
 
27468
  friend class ::WinMemberExplSpec;
 
27469
  friend class ::WinTypeKeywords;
 
27470
  friend class ::WinFriend;
 
27471
  friend class ::ExtAC;
 
27472
  friend class ::ExtACBuilderCoupling;
 
27473
  friend class ::ExtACSyntaxCoupling;
 
27474
  friend class ::ExtACTree;
 
27475
  friend class ::ExtACKeywords;
 
27476
  friend class ::ExtGnu;
 
27477
  friend class ::PragmaOnceUnitState;
 
27478
  friend class ::PragmaOnce;
 
27479
  friend class ::CMatchSyntax;
 
27480
 
 
27481
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27482
 
 
27483
  CTree *sons[3]; // expr, oper, expr
 
27484
 
 
27485
public:
 
27486
  /** Constructor. 
 
27487
   *  \param l Left hand side of the expression. 
 
27488
   *  \param o The operator token. 
 
27489
   *  \param r Right hand side of the expression. */
 
27490
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
 
27491
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
 
27492
  }
 
27493
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27494
  static const char *NodeId ();
 
27495
  /** Get the name of the node. Can be compared with NodeId(). */
 
27496
  const char *NodeName () const { return NodeId (); }
 
27497
  /** Get the number of sons. */
 
27498
  int Sons () const { return 3; }
 
27499
  /** Get the n-th son.
 
27500
   *  \param n The index of the son.
 
27501
   *  \return The n-th son or NULL. */
 
27502
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
27503
  /** Replace a son.
 
27504
   *  \param old_son The son to replace.
 
27505
   *  \param new_son The new son. */
 
27506
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27507
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
27508
  }
 
27509
   private:
 
27510
  typedef CT_BinaryExpr CCExprResolveExpr;
 
27511
 
 
27512
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27513
 public :
 
27514
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
27515
  typedef CT_BinaryExpr CExprResolveExpr;
 
27516
 
 
27517
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27518
 public :
 
27519
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27520
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27521
};
 
27522
 
 
27523
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
27524
 *  Tree node representing a member pointer expression, e.g. a->b. */
 
27525
 
 
27526
#line 27527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27527
} // closed Puma
 
27528
class CCExprResolve;
 
27529
class CExprResolve;
 
27530
class WinIfExists;
 
27531
class WinImportHandler;
 
27532
class WinMacros;
 
27533
class WinAsm;
 
27534
class WinDeclSpecs;
 
27535
class WinMemberExplSpec;
 
27536
class WinTypeKeywords;
 
27537
class WinFriend;
 
27538
class ExtAC;
 
27539
class ExtACBuilderCoupling;
 
27540
class ExtACSyntaxCoupling;
 
27541
class ExtACTree;
 
27542
class ExtACKeywords;
 
27543
class ExtGnu;
 
27544
class PragmaOnceUnitState;
 
27545
class PragmaOnce;
 
27546
class CMatchSyntax;
 
27547
namespace Puma {
 
27548
 
 
27549
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27550
 
 
27551
#line 27552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27552
} // closed Puma
 
27553
 
 
27554
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27555
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27556
#include "CCExprResolveH.ah"
 
27557
#endif
 
27558
namespace Puma {
 
27559
 
 
27560
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27561
 
 
27562
#line 27563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27563
} // closed Puma
 
27564
 
 
27565
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27566
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27567
#include "CExprResolveH.ah"
 
27568
#endif
 
27569
namespace Puma {
 
27570
 
 
27571
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27572
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
27573
#line 27574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27574
  friend class ::CCExprResolve;
 
27575
  friend class ::CExprResolve;
 
27576
  friend class ::WinIfExists;
 
27577
  friend class ::WinImportHandler;
 
27578
  friend class ::WinMacros;
 
27579
  friend class ::WinAsm;
 
27580
  friend class ::WinDeclSpecs;
 
27581
  friend class ::WinMemberExplSpec;
 
27582
  friend class ::WinTypeKeywords;
 
27583
  friend class ::WinFriend;
 
27584
  friend class ::ExtAC;
 
27585
  friend class ::ExtACBuilderCoupling;
 
27586
  friend class ::ExtACSyntaxCoupling;
 
27587
  friend class ::ExtACTree;
 
27588
  friend class ::ExtACKeywords;
 
27589
  friend class ::ExtGnu;
 
27590
  friend class ::PragmaOnceUnitState;
 
27591
  friend class ::PragmaOnce;
 
27592
  friend class ::CMatchSyntax;
 
27593
 
 
27594
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27595
 
 
27596
  CTree *sons[3]; // expr, oper, expr
 
27597
  
 
27598
public:
 
27599
  /** Constructor.
 
27600
   *  \param e Expression on which to call the member.
 
27601
   *  \param o The arrow operator token.
 
27602
   *  \param i The member name. */
 
27603
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
27604
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
27605
  }
 
27606
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27607
  static const char *NodeId ();
 
27608
  /** Get the name of the node. Can be compared with NodeId(). */
 
27609
  const char *NodeName () const { return NodeId (); }
 
27610
  /** Get the number of sons. */
 
27611
  int Sons () const { return 3; }
 
27612
  /** Get the n-th son.
 
27613
   *  \param n The index of the son.
 
27614
   *  \return The n-th son or NULL. */
 
27615
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
27616
  /** Replace a son.
 
27617
   *  \param old_son The son to replace.
 
27618
   *  \param new_son The new son. */
 
27619
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27620
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
27621
  }
 
27622
   private:
 
27623
  typedef CT_MembPtrExpr CCExprResolveExpr;
 
27624
 
 
27625
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27626
 public :
 
27627
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
27628
  typedef CT_MembPtrExpr CExprResolveExpr;
 
27629
 
 
27630
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27631
 public :
 
27632
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27633
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27634
};
 
27635
 
 
27636
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
27637
 *  Tree node representing a member reference expression, e.g. a.b. */
 
27638
 
 
27639
#line 27640 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27640
} // closed Puma
 
27641
class CCExprResolve;
 
27642
class CExprResolve;
 
27643
class WinIfExists;
 
27644
class WinImportHandler;
 
27645
class WinMacros;
 
27646
class WinAsm;
 
27647
class WinDeclSpecs;
 
27648
class WinMemberExplSpec;
 
27649
class WinTypeKeywords;
 
27650
class WinFriend;
 
27651
class ExtAC;
 
27652
class ExtACBuilderCoupling;
 
27653
class ExtACSyntaxCoupling;
 
27654
class ExtACTree;
 
27655
class ExtACKeywords;
 
27656
class ExtGnu;
 
27657
class PragmaOnceUnitState;
 
27658
class PragmaOnce;
 
27659
class CMatchSyntax;
 
27660
namespace Puma {
 
27661
 
 
27662
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27663
 
 
27664
#line 27665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27665
} // closed Puma
 
27666
 
 
27667
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27668
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27669
#include "CCExprResolveH.ah"
 
27670
#endif
 
27671
namespace Puma {
 
27672
 
 
27673
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27674
 
 
27675
#line 27676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27676
} // closed Puma
 
27677
 
 
27678
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27679
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27680
#include "CExprResolveH.ah"
 
27681
#endif
 
27682
namespace Puma {
 
27683
 
 
27684
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27685
class CT_MembRefExpr : public CT_MembPtrExpr {
 
27686
#line 27687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27687
  friend class ::CCExprResolve;
 
27688
  friend class ::CExprResolve;
 
27689
  friend class ::WinIfExists;
 
27690
  friend class ::WinImportHandler;
 
27691
  friend class ::WinMacros;
 
27692
  friend class ::WinAsm;
 
27693
  friend class ::WinDeclSpecs;
 
27694
  friend class ::WinMemberExplSpec;
 
27695
  friend class ::WinTypeKeywords;
 
27696
  friend class ::WinFriend;
 
27697
  friend class ::ExtAC;
 
27698
  friend class ::ExtACBuilderCoupling;
 
27699
  friend class ::ExtACSyntaxCoupling;
 
27700
  friend class ::ExtACTree;
 
27701
  friend class ::ExtACKeywords;
 
27702
  friend class ::ExtGnu;
 
27703
  friend class ::PragmaOnceUnitState;
 
27704
  friend class ::PragmaOnce;
 
27705
  friend class ::CMatchSyntax;
 
27706
 
 
27707
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27708
 
 
27709
public:
 
27710
  /** Constructor.
 
27711
   *  \param e Expression on which to call the member.
 
27712
   *  \param o The dot operator.
 
27713
   *  \param i The member name. */
 
27714
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
 
27715
    CT_MembPtrExpr (e, o, i) {}
 
27716
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27717
  static const char *NodeId ();
 
27718
  /** Get the name of the node. Can be compared with NodeId(). */
 
27719
  const char *NodeName () const { return NodeId (); }
 
27720
   private:
 
27721
  typedef CT_MembRefExpr CCExprResolveExpr;
 
27722
 
 
27723
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27724
 public :
 
27725
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
27726
  typedef CT_MembRefExpr CExprResolveExpr;
 
27727
 
 
27728
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27729
 public :
 
27730
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27731
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27732
};
 
27733
 
 
27734
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
27735
 *  Base class for tree nodes representing unary expressions. */
 
27736
 
 
27737
#line 27738 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27738
} // closed Puma
 
27739
class CCExprResolve;
 
27740
class CExprResolve;
 
27741
class WinIfExists;
 
27742
class WinImportHandler;
 
27743
class WinMacros;
 
27744
class WinAsm;
 
27745
class WinDeclSpecs;
 
27746
class WinMemberExplSpec;
 
27747
class WinTypeKeywords;
 
27748
class WinFriend;
 
27749
class ExtAC;
 
27750
class ExtACBuilderCoupling;
 
27751
class ExtACSyntaxCoupling;
 
27752
class ExtACTree;
 
27753
class ExtACKeywords;
 
27754
class ExtGnu;
 
27755
class PragmaOnceUnitState;
 
27756
class PragmaOnce;
 
27757
class CMatchSyntax;
 
27758
namespace Puma {
 
27759
 
 
27760
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27761
 
 
27762
#line 27763 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27763
} // closed Puma
 
27764
 
 
27765
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27766
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27767
#include "CCExprResolveH.ah"
 
27768
#endif
 
27769
namespace Puma {
 
27770
 
 
27771
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27772
 
 
27773
#line 27774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27774
} // closed Puma
 
27775
 
 
27776
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27777
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27778
#include "CExprResolveH.ah"
 
27779
#endif
 
27780
namespace Puma {
 
27781
 
 
27782
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27783
class CT_UnaryExpr : public CT_Call {
 
27784
#line 27785 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27785
  friend class ::CCExprResolve;
 
27786
  friend class ::CExprResolve;
 
27787
  friend class ::WinIfExists;
 
27788
  friend class ::WinImportHandler;
 
27789
  friend class ::WinMacros;
 
27790
  friend class ::WinAsm;
 
27791
  friend class ::WinDeclSpecs;
 
27792
  friend class ::WinMemberExplSpec;
 
27793
  friend class ::WinTypeKeywords;
 
27794
  friend class ::WinFriend;
 
27795
  friend class ::ExtAC;
 
27796
  friend class ::ExtACBuilderCoupling;
 
27797
  friend class ::ExtACSyntaxCoupling;
 
27798
  friend class ::ExtACTree;
 
27799
  friend class ::ExtACKeywords;
 
27800
  friend class ::ExtGnu;
 
27801
  friend class ::PragmaOnceUnitState;
 
27802
  friend class ::PragmaOnce;
 
27803
  friend class ::CMatchSyntax;
 
27804
 
 
27805
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27806
 
 
27807
  CTree *sons[2]; // oper, expr
 
27808
 
 
27809
public:
 
27810
  /** Constructor.
 
27811
   *  \param o The unary operator.
 
27812
   *  \param e The expression on which the operator is invoked. */
 
27813
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
27814
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27815
  static const char *NodeId ();
 
27816
  /** Get the name of the node. Can be compared with NodeId(). */
 
27817
  const char *NodeName () const { return NodeId (); }
 
27818
  /** Get the number of sons. */
 
27819
  int Sons () const { return 2; }
 
27820
  /** Get the n-th son.
 
27821
   *  \param n The index of the son.
 
27822
   *  \return The n-th son or NULL. */
 
27823
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
27824
  /** Replace a son.
 
27825
   *  \param old_son The son to replace.
 
27826
   *  \param new_son The new son. */
 
27827
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
27828
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
27829
  }
 
27830
  /** Get the expression node. */
 
27831
  CTree *Expr () const { return sons[1]; }
 
27832
   private:
 
27833
  typedef CT_UnaryExpr CCExprResolveExpr;
 
27834
 
 
27835
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27836
 public :
 
27837
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
27838
  typedef CT_UnaryExpr CExprResolveExpr;
 
27839
 
 
27840
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27841
 public :
 
27842
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27843
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27844
};
 
27845
 
 
27846
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
27847
 *  Tree node representing a postfix expression, e.g. a++. */
 
27848
 
 
27849
#line 27850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.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 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27873
 
 
27874
#line 27875 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27875
} // closed Puma
 
27876
 
 
27877
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27878
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27879
#include "CCExprResolveH.ah"
 
27880
#endif
 
27881
namespace Puma {
 
27882
 
 
27883
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27884
 
 
27885
#line 27886 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27886
} // closed Puma
 
27887
 
 
27888
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27889
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27890
#include "CExprResolveH.ah"
 
27891
#endif
 
27892
namespace Puma {
 
27893
 
 
27894
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27895
class CT_PostfixExpr : public CT_UnaryExpr {
 
27896
#line 27897 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27897
  friend class ::CCExprResolve;
 
27898
  friend class ::CExprResolve;
 
27899
  friend class ::WinIfExists;
 
27900
  friend class ::WinImportHandler;
 
27901
  friend class ::WinMacros;
 
27902
  friend class ::WinAsm;
 
27903
  friend class ::WinDeclSpecs;
 
27904
  friend class ::WinMemberExplSpec;
 
27905
  friend class ::WinTypeKeywords;
 
27906
  friend class ::WinFriend;
 
27907
  friend class ::ExtAC;
 
27908
  friend class ::ExtACBuilderCoupling;
 
27909
  friend class ::ExtACSyntaxCoupling;
 
27910
  friend class ::ExtACTree;
 
27911
  friend class ::ExtACKeywords;
 
27912
  friend class ::ExtGnu;
 
27913
  friend class ::PragmaOnceUnitState;
 
27914
  friend class ::PragmaOnce;
 
27915
  friend class ::CMatchSyntax;
 
27916
 
 
27917
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27918
 
 
27919
public:
 
27920
  /** Constructor.
 
27921
   *  \param e The expression on which to invoke the operator. 
 
27922
   *  \param o The postfix operator. */
 
27923
  CT_PostfixExpr (CTree *e, CTree *o) :
 
27924
    CT_UnaryExpr (e, o) {}
 
27925
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
27926
  static const char *NodeId ();
 
27927
  /** Get the name of the node. Can be compared with NodeId(). */
 
27928
  const char *NodeName () const { return NodeId (); }
 
27929
   private:
 
27930
  typedef CT_PostfixExpr CCExprResolveExpr;
 
27931
 
 
27932
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
27933
 public :
 
27934
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
27935
  typedef CT_PostfixExpr CExprResolveExpr;
 
27936
 
 
27937
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
27938
 public :
 
27939
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
27940
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27941
};
 
27942
 
 
27943
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
27944
 *  Tree node representing an address expression, e.g. &a. */
 
27945
 
 
27946
#line 27947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27947
} // closed Puma
 
27948
class CCExprResolve;
 
27949
class CExprResolve;
 
27950
class WinIfExists;
 
27951
class WinImportHandler;
 
27952
class WinMacros;
 
27953
class WinAsm;
 
27954
class WinDeclSpecs;
 
27955
class WinMemberExplSpec;
 
27956
class WinTypeKeywords;
 
27957
class WinFriend;
 
27958
class ExtAC;
 
27959
class ExtACBuilderCoupling;
 
27960
class ExtACSyntaxCoupling;
 
27961
class ExtACTree;
 
27962
class ExtACKeywords;
 
27963
class ExtGnu;
 
27964
class PragmaOnceUnitState;
 
27965
class PragmaOnce;
 
27966
class CMatchSyntax;
 
27967
namespace Puma {
 
27968
 
 
27969
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27970
 
 
27971
#line 27972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27972
} // closed Puma
 
27973
 
 
27974
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27975
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
27976
#include "CCExprResolveH.ah"
 
27977
#endif
 
27978
namespace Puma {
 
27979
 
 
27980
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27981
 
 
27982
#line 27983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27983
} // closed Puma
 
27984
 
 
27985
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27986
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
27987
#include "CExprResolveH.ah"
 
27988
#endif
 
27989
namespace Puma {
 
27990
 
 
27991
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
27992
class CT_AddrExpr : public CT_UnaryExpr {
 
27993
#line 27994 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
27994
  friend class ::CCExprResolve;
 
27995
  friend class ::CExprResolve;
 
27996
  friend class ::WinIfExists;
 
27997
  friend class ::WinImportHandler;
 
27998
  friend class ::WinMacros;
 
27999
  friend class ::WinAsm;
 
28000
  friend class ::WinDeclSpecs;
 
28001
  friend class ::WinMemberExplSpec;
 
28002
  friend class ::WinTypeKeywords;
 
28003
  friend class ::WinFriend;
 
28004
  friend class ::ExtAC;
 
28005
  friend class ::ExtACBuilderCoupling;
 
28006
  friend class ::ExtACSyntaxCoupling;
 
28007
  friend class ::ExtACTree;
 
28008
  friend class ::ExtACKeywords;
 
28009
  friend class ::ExtGnu;
 
28010
  friend class ::PragmaOnceUnitState;
 
28011
  friend class ::PragmaOnce;
 
28012
  friend class ::CMatchSyntax;
 
28013
 
 
28014
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28015
 
 
28016
public:
 
28017
  /** Constructor.
 
28018
   *  \param o The address operator, i.e. '&'.
 
28019
   *  \param e The expression from which to take the address. */
 
28020
  CT_AddrExpr (CTree *o, CTree *e) :
 
28021
    CT_UnaryExpr (o, e) {}
 
28022
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28023
  static const char *NodeId ();
 
28024
  /** Get the name of the node. Can be compared with NodeId(). */
 
28025
  const char *NodeName () const { return NodeId (); }
 
28026
   private:
 
28027
  typedef CT_AddrExpr CCExprResolveExpr;
 
28028
 
 
28029
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28030
 public :
 
28031
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
28032
  typedef CT_AddrExpr CExprResolveExpr;
 
28033
 
 
28034
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28035
 public :
 
28036
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28037
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28038
};
 
28039
 
 
28040
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
28041
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
 
28042
 
 
28043
#line 28044 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28044
} // closed Puma
 
28045
class CCExprResolve;
 
28046
class CExprResolve;
 
28047
class WinIfExists;
 
28048
class WinImportHandler;
 
28049
class WinMacros;
 
28050
class WinAsm;
 
28051
class WinDeclSpecs;
 
28052
class WinMemberExplSpec;
 
28053
class WinTypeKeywords;
 
28054
class WinFriend;
 
28055
class ExtAC;
 
28056
class ExtACBuilderCoupling;
 
28057
class ExtACSyntaxCoupling;
 
28058
class ExtACTree;
 
28059
class ExtACKeywords;
 
28060
class ExtGnu;
 
28061
class PragmaOnceUnitState;
 
28062
class PragmaOnce;
 
28063
class CMatchSyntax;
 
28064
namespace Puma {
 
28065
 
 
28066
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28067
 
 
28068
#line 28069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28069
} // closed Puma
 
28070
 
 
28071
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28072
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28073
#include "CCExprResolveH.ah"
 
28074
#endif
 
28075
namespace Puma {
 
28076
 
 
28077
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28078
 
 
28079
#line 28080 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28080
} // closed Puma
 
28081
 
 
28082
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28083
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28084
#include "CExprResolveH.ah"
 
28085
#endif
 
28086
namespace Puma {
 
28087
 
 
28088
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28089
class CT_DerefExpr : public CT_UnaryExpr {
 
28090
#line 28091 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28091
  friend class ::CCExprResolve;
 
28092
  friend class ::CExprResolve;
 
28093
  friend class ::WinIfExists;
 
28094
  friend class ::WinImportHandler;
 
28095
  friend class ::WinMacros;
 
28096
  friend class ::WinAsm;
 
28097
  friend class ::WinDeclSpecs;
 
28098
  friend class ::WinMemberExplSpec;
 
28099
  friend class ::WinTypeKeywords;
 
28100
  friend class ::WinFriend;
 
28101
  friend class ::ExtAC;
 
28102
  friend class ::ExtACBuilderCoupling;
 
28103
  friend class ::ExtACSyntaxCoupling;
 
28104
  friend class ::ExtACTree;
 
28105
  friend class ::ExtACKeywords;
 
28106
  friend class ::ExtGnu;
 
28107
  friend class ::PragmaOnceUnitState;
 
28108
  friend class ::PragmaOnce;
 
28109
  friend class ::CMatchSyntax;
 
28110
 
 
28111
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28112
 
 
28113
public:
 
28114
  /** Constructor.
 
28115
   *  \param o The dereferencing operator, i.e. '*'.
 
28116
   *  \param e The expression to dereference. */
 
28117
  CT_DerefExpr (CTree *o, CTree *e) :
 
28118
    CT_UnaryExpr (o, e) {}
 
28119
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28120
  static const char *NodeId ();
 
28121
  /** Get the name of the node. Can be compared with NodeId(). */
 
28122
  const char *NodeName () const { return NodeId (); }
 
28123
   private:
 
28124
  typedef CT_DerefExpr CCExprResolveExpr;
 
28125
 
 
28126
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28127
 public :
 
28128
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
28129
  typedef CT_DerefExpr CExprResolveExpr;
 
28130
 
 
28131
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28132
 public :
 
28133
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28134
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28135
};
 
28136
 
 
28137
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
28138
 *  Tree node representing a delete expression, e.g. delete a. */
 
28139
 
 
28140
#line 28141 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28141
} // closed Puma
 
28142
class CCExprResolve;
 
28143
class CExprResolve;
 
28144
class WinIfExists;
 
28145
class WinImportHandler;
 
28146
class WinMacros;
 
28147
class WinAsm;
 
28148
class WinDeclSpecs;
 
28149
class WinMemberExplSpec;
 
28150
class WinTypeKeywords;
 
28151
class WinFriend;
 
28152
class ExtAC;
 
28153
class ExtACBuilderCoupling;
 
28154
class ExtACSyntaxCoupling;
 
28155
class ExtACTree;
 
28156
class ExtACKeywords;
 
28157
class ExtGnu;
 
28158
class PragmaOnceUnitState;
 
28159
class PragmaOnce;
 
28160
class CMatchSyntax;
 
28161
namespace Puma {
 
28162
 
 
28163
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28164
 
 
28165
#line 28166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28166
} // closed Puma
 
28167
 
 
28168
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28169
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28170
#include "CCExprResolveH.ah"
 
28171
#endif
 
28172
namespace Puma {
 
28173
 
 
28174
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28175
 
 
28176
#line 28177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28177
} // closed Puma
 
28178
 
 
28179
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28180
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28181
#include "CExprResolveH.ah"
 
28182
#endif
 
28183
namespace Puma {
 
28184
 
 
28185
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28186
class CT_DeleteExpr : public CT_Expression, public CSemObject {
 
28187
#line 28188 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28188
  friend class ::CCExprResolve;
 
28189
  friend class ::CExprResolve;
 
28190
  friend class ::WinIfExists;
 
28191
  friend class ::WinImportHandler;
 
28192
  friend class ::WinMacros;
 
28193
  friend class ::WinAsm;
 
28194
  friend class ::WinDeclSpecs;
 
28195
  friend class ::WinMemberExplSpec;
 
28196
  friend class ::WinTypeKeywords;
 
28197
  friend class ::WinFriend;
 
28198
  friend class ::ExtAC;
 
28199
  friend class ::ExtACBuilderCoupling;
 
28200
  friend class ::ExtACSyntaxCoupling;
 
28201
  friend class ::ExtACTree;
 
28202
  friend class ::ExtACKeywords;
 
28203
  friend class ::ExtGnu;
 
28204
  friend class ::PragmaOnceUnitState;
 
28205
  friend class ::PragmaOnce;
 
28206
  friend class ::CMatchSyntax;
 
28207
 
 
28208
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28209
 
 
28210
  CTree *sons[2]; // oper, expr
 
28211
 
 
28212
public:
 
28213
  /** Constructor.
 
28214
   *  \param op The delete operator.
 
28215
   *  \param e The expression representing the object to delete. */
 
28216
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
28217
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28218
  static const char *NodeId ();
 
28219
  /** Get the name of the node. Can be compared with NodeId(). */
 
28220
  const char *NodeName () const { return NodeId (); }
 
28221
  /** Get the number of sons. */
 
28222
  int Sons () const { return 2; }
 
28223
  /** Get the n-th son.
 
28224
   *  \param n The index of the son.
 
28225
   *  \return The n-th son or NULL. */
 
28226
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
28227
  /** Replace a son.
 
28228
   *  \param old_son The son to replace.
 
28229
   *  \param new_son The new son. */
 
28230
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28231
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
28232
  }
 
28233
  /** Get the expression. */
 
28234
  CTree *Expr () const { return sons[1]; }
 
28235
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
 
28236
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
28237
  /** Get the semantic information object. */
 
28238
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
28239
   private:
 
28240
  typedef CT_DeleteExpr CCExprResolveExpr;
 
28241
 
 
28242
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28243
 public :
 
28244
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
28245
  typedef CT_DeleteExpr CExprResolveExpr;
 
28246
 
 
28247
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28248
 public :
 
28249
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28250
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28251
};
 
28252
 
 
28253
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
28254
 *  Tree node representing a new expression, e.g. new A(). */
 
28255
 
 
28256
#line 28257 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28257
} // closed Puma
 
28258
class CCExprResolve;
 
28259
class CExprResolve;
 
28260
class WinIfExists;
 
28261
class WinImportHandler;
 
28262
class WinMacros;
 
28263
class WinAsm;
 
28264
class WinDeclSpecs;
 
28265
class WinMemberExplSpec;
 
28266
class WinTypeKeywords;
 
28267
class WinFriend;
 
28268
class ExtAC;
 
28269
class ExtACBuilderCoupling;
 
28270
class ExtACSyntaxCoupling;
 
28271
class ExtACTree;
 
28272
class ExtACKeywords;
 
28273
class ExtGnu;
 
28274
class PragmaOnceUnitState;
 
28275
class PragmaOnce;
 
28276
class CMatchSyntax;
 
28277
namespace Puma {
 
28278
 
 
28279
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28280
 
 
28281
#line 28282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28282
} // closed Puma
 
28283
 
 
28284
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28285
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28286
#include "CCExprResolveH.ah"
 
28287
#endif
 
28288
namespace Puma {
 
28289
 
 
28290
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28291
 
 
28292
#line 28293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28293
} // closed Puma
 
28294
 
 
28295
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28296
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28297
#include "CExprResolveH.ah"
 
28298
#endif
 
28299
namespace Puma {
 
28300
 
 
28301
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28302
class CT_NewExpr : public CT_Expression, public CSemObject {
 
28303
#line 28304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28304
  friend class ::CCExprResolve;
 
28305
  friend class ::CExprResolve;
 
28306
  friend class ::WinIfExists;
 
28307
  friend class ::WinImportHandler;
 
28308
  friend class ::WinMacros;
 
28309
  friend class ::WinAsm;
 
28310
  friend class ::WinDeclSpecs;
 
28311
  friend class ::WinMemberExplSpec;
 
28312
  friend class ::WinTypeKeywords;
 
28313
  friend class ::WinFriend;
 
28314
  friend class ::ExtAC;
 
28315
  friend class ::ExtACBuilderCoupling;
 
28316
  friend class ::ExtACSyntaxCoupling;
 
28317
  friend class ::ExtACTree;
 
28318
  friend class ::ExtACKeywords;
 
28319
  friend class ::ExtGnu;
 
28320
  friend class ::PragmaOnceUnitState;
 
28321
  friend class ::PragmaOnce;
 
28322
  friend class ::CMatchSyntax;
 
28323
 
 
28324
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28325
 
 
28326
  CTree *sons[6]; // oper, placement, open, type, close, init
 
28327
 
 
28328
public:
 
28329
  /** Constructor.
 
28330
   *  \param op The new operator.
 
28331
   *  \param p The optional placement expression.
 
28332
   *  \param o The optional left parenthesis around the type identifier.
 
28333
   *  \param t The type identifier specifying the type of the object to create.
 
28334
   *  \param c The optional right parenthesis around the type identifier.
 
28335
   *  \param i The optional initializer. */
 
28336
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
 
28337
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
28338
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
 
28339
  }
 
28340
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28341
  static const char *NodeId ();
 
28342
  /** Get the name of the node. Can be compared with NodeId(). */
 
28343
  const char *NodeName () const { return NodeId (); }
 
28344
  /** Get the number of sons. */
 
28345
  int Sons () const { return CTree::Sons (sons, 6); }
 
28346
  /** Get the n-th son.
 
28347
   *  \param n The index of the son.
 
28348
   *  \return The n-th son or NULL. */
 
28349
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
28350
  /** Replace a son.
 
28351
   *  \param old_son The son to replace.
 
28352
   *  \param new_son The new son. */
 
28353
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28354
    CTree::ReplaceSon (sons, 6, old_son, new_son);
 
28355
  }
 
28356
  /** Get the operator name. */
 
28357
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
28358
  /** Get the placement expression. */
 
28359
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
28360
  /** Get the initializer. */
 
28361
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
28362
  /** Get the type of the object to create. */
 
28363
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
28364
  /** Get the semantic information object. */
 
28365
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
28366
   private:
 
28367
  typedef CT_NewExpr CCExprResolveExpr;
 
28368
 
 
28369
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28370
 public :
 
28371
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
28372
  typedef CT_NewExpr CExprResolveExpr;
 
28373
 
 
28374
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28375
 public :
 
28376
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28377
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28378
};
 
28379
 
 
28380
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
28381
 *  Tree node representing an if-then expression, 
 
28382
 *  e.g. a>0?a:b or a?:b. */
 
28383
 
 
28384
#line 28385 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28385
} // closed Puma
 
28386
class CCExprResolve;
 
28387
class CExprResolve;
 
28388
class WinIfExists;
 
28389
class WinImportHandler;
 
28390
class WinMacros;
 
28391
class WinAsm;
 
28392
class WinDeclSpecs;
 
28393
class WinMemberExplSpec;
 
28394
class WinTypeKeywords;
 
28395
class WinFriend;
 
28396
class ExtAC;
 
28397
class ExtACBuilderCoupling;
 
28398
class ExtACSyntaxCoupling;
 
28399
class ExtACTree;
 
28400
class ExtACKeywords;
 
28401
class ExtGnu;
 
28402
class PragmaOnceUnitState;
 
28403
class PragmaOnce;
 
28404
class CMatchSyntax;
 
28405
namespace Puma {
 
28406
 
 
28407
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28408
 
 
28409
#line 28410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28410
} // closed Puma
 
28411
 
 
28412
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28413
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28414
#include "CCExprResolveH.ah"
 
28415
#endif
 
28416
namespace Puma {
 
28417
 
 
28418
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28419
 
 
28420
#line 28421 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28421
} // closed Puma
 
28422
 
 
28423
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28424
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28425
#include "CExprResolveH.ah"
 
28426
#endif
 
28427
namespace Puma {
 
28428
 
 
28429
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28430
class CT_IfThenExpr : public CT_Expression {
 
28431
#line 28432 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28432
  friend class ::CCExprResolve;
 
28433
  friend class ::CExprResolve;
 
28434
  friend class ::WinIfExists;
 
28435
  friend class ::WinImportHandler;
 
28436
  friend class ::WinMacros;
 
28437
  friend class ::WinAsm;
 
28438
  friend class ::WinDeclSpecs;
 
28439
  friend class ::WinMemberExplSpec;
 
28440
  friend class ::WinTypeKeywords;
 
28441
  friend class ::WinFriend;
 
28442
  friend class ::ExtAC;
 
28443
  friend class ::ExtACBuilderCoupling;
 
28444
  friend class ::ExtACSyntaxCoupling;
 
28445
  friend class ::ExtACTree;
 
28446
  friend class ::ExtACKeywords;
 
28447
  friend class ::ExtGnu;
 
28448
  friend class ::PragmaOnceUnitState;
 
28449
  friend class ::PragmaOnce;
 
28450
  friend class ::CMatchSyntax;
 
28451
 
 
28452
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28453
 
 
28454
  CTree *sons[5]; // cond, oper, left, colon, right
 
28455
 
 
28456
public:
 
28457
  /** Constructor.
 
28458
   *  \param c1 The condition expression.
 
28459
   *  \param o The question mark operator. 
 
28460
   *  \param l The expression to the left of the colon.
 
28461
   *  \param c2 The colon operator.
 
28462
   *  \param r The expression to the right of the colon. */ 
 
28463
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
 
28464
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
28465
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
28466
  }
 
28467
  /** Constructor.
 
28468
   *  \param c1 The condition expression.
 
28469
   *  \param o The question mark operator. 
 
28470
   *  \param c2 The colon operator.
 
28471
   *  \param r The expression to the right of the colon. */ 
 
28472
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
 
28473
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
28474
    AddSon (sons[3], c2); AddSon (sons[4], r);
 
28475
  }
 
28476
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28477
  static const char *NodeId ();
 
28478
  /** Get the name of the node. Can be compared with NodeId(). */
 
28479
  const char *NodeName () const { return NodeId (); }
 
28480
  /** Get the number of sons. */
 
28481
  int Sons () const { return CTree::Sons (sons, 5); }
 
28482
  /** Get the n-th son.
 
28483
   *  \param n The index of the son.
 
28484
   *  \return The n-th son or NULL. */
 
28485
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
28486
  /** Get the condition expression. */
 
28487
  CTree *Condition () const { return sons[0]; }
 
28488
  /** Get the left expression (condition=true). */
 
28489
  CTree *LeftOperand () const { return sons[2]; }
 
28490
  /** Get the right expression (condition=false). */
 
28491
  CTree *RightOperand () const { return sons[4]; }
 
28492
  /** Replace a son.
 
28493
   *  \param old_son The son to replace.
 
28494
   *  \param new_son The new son. */
 
28495
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28496
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
28497
  }
 
28498
   private:
 
28499
  typedef CT_IfThenExpr CCExprResolveExpr;
 
28500
 
 
28501
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28502
 public :
 
28503
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
28504
  typedef CT_IfThenExpr CExprResolveExpr;
 
28505
 
 
28506
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28507
 public :
 
28508
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28509
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28510
};
 
28511
 
 
28512
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
28513
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
 
28514
 
 
28515
#line 28516 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28516
} // closed Puma
 
28517
class CCExprResolve;
 
28518
class CExprResolve;
 
28519
class WinIfExists;
 
28520
class WinImportHandler;
 
28521
class WinMacros;
 
28522
class WinAsm;
 
28523
class WinDeclSpecs;
 
28524
class WinMemberExplSpec;
 
28525
class WinTypeKeywords;
 
28526
class WinFriend;
 
28527
class ExtAC;
 
28528
class ExtACBuilderCoupling;
 
28529
class ExtACSyntaxCoupling;
 
28530
class ExtACTree;
 
28531
class ExtACKeywords;
 
28532
class ExtGnu;
 
28533
class PragmaOnceUnitState;
 
28534
class PragmaOnce;
 
28535
class CMatchSyntax;
 
28536
namespace Puma {
 
28537
 
 
28538
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28539
 
 
28540
#line 28541 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28541
} // closed Puma
 
28542
 
 
28543
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28544
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28545
#include "CCExprResolveH.ah"
 
28546
#endif
 
28547
namespace Puma {
 
28548
 
 
28549
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28550
 
 
28551
#line 28552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28552
} // closed Puma
 
28553
 
 
28554
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28555
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28556
#include "CExprResolveH.ah"
 
28557
#endif
 
28558
namespace Puma {
 
28559
 
 
28560
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28561
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
 
28562
#line 28563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28563
  friend class ::CCExprResolve;
 
28564
  friend class ::CExprResolve;
 
28565
  friend class ::WinIfExists;
 
28566
  friend class ::WinImportHandler;
 
28567
  friend class ::WinMacros;
 
28568
  friend class ::WinAsm;
 
28569
  friend class ::WinDeclSpecs;
 
28570
  friend class ::WinMemberExplSpec;
 
28571
  friend class ::WinTypeKeywords;
 
28572
  friend class ::WinFriend;
 
28573
  friend class ::ExtAC;
 
28574
  friend class ::ExtACBuilderCoupling;
 
28575
  friend class ::ExtACSyntaxCoupling;
 
28576
  friend class ::ExtACTree;
 
28577
  friend class ::ExtACKeywords;
 
28578
  friend class ::ExtGnu;
 
28579
  friend class ::PragmaOnceUnitState;
 
28580
  friend class ::PragmaOnce;
 
28581
  friend class ::CMatchSyntax;
 
28582
 
 
28583
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28584
 
 
28585
  CTree *sons[4]; // open, type, close, init
 
28586
 
 
28587
public:
 
28588
  /** Constructor.
 
28589
   *  \param r Left parenthesis of the type name.
 
28590
   *  \param t The type name.
 
28591
   *  \param cr Right parenthesis of the type name.
 
28592
   *  \param i The initializer list. */
 
28593
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
 
28594
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
28595
    AddSon (sons[2], cr); AddSon (sons[3], i);
 
28596
  }
 
28597
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28598
  static const char *NodeId ();
 
28599
  /** Get the name of the node. Can be compared with NodeId(). */
 
28600
  const char *NodeName () const { return NodeId (); }
 
28601
  /** Get the number of sons. */
 
28602
  int Sons () const { return 4; }
 
28603
  /** Get the n-th son.
 
28604
   *  \param n The index of the son.
 
28605
   *  \return The n-th son or NULL. */
 
28606
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
28607
  /** Replace a son.
 
28608
   *  \param old_son The son to replace.
 
28609
   *  \param new_son The new son. */
 
28610
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28611
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
28612
  }
 
28613
  /** Get the type name. */
 
28614
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
28615
  /** Get the initializer list. */
 
28616
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
28617
  /** Get the semantic information object. */
 
28618
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
28619
   private:
 
28620
  typedef CT_CmpdLiteral CCExprResolveExpr;
 
28621
 
 
28622
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28623
 public :
 
28624
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
28625
  typedef CT_CmpdLiteral CExprResolveExpr;
 
28626
 
 
28627
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28628
 public :
 
28629
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28630
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28631
};
 
28632
 
 
28633
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
28634
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
 
28635
 
 
28636
#line 28637 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28637
} // closed Puma
 
28638
class CCExprResolve;
 
28639
class CExprResolve;
 
28640
class WinIfExists;
 
28641
class WinImportHandler;
 
28642
class WinMacros;
 
28643
class WinAsm;
 
28644
class WinDeclSpecs;
 
28645
class WinMemberExplSpec;
 
28646
class WinTypeKeywords;
 
28647
class WinFriend;
 
28648
class ExtAC;
 
28649
class ExtACBuilderCoupling;
 
28650
class ExtACSyntaxCoupling;
 
28651
class ExtACTree;
 
28652
class ExtACKeywords;
 
28653
class ExtGnu;
 
28654
class PragmaOnceUnitState;
 
28655
class PragmaOnce;
 
28656
class CMatchSyntax;
 
28657
namespace Puma {
 
28658
 
 
28659
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28660
 
 
28661
#line 28662 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28662
} // closed Puma
 
28663
 
 
28664
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28665
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28666
#include "CCExprResolveH.ah"
 
28667
#endif
 
28668
namespace Puma {
 
28669
 
 
28670
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28671
 
 
28672
#line 28673 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28673
} // closed Puma
 
28674
 
 
28675
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28676
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28677
#include "CExprResolveH.ah"
 
28678
#endif
 
28679
namespace Puma {
 
28680
 
 
28681
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28682
class CT_ConstructExpr : public CT_Expression, public CSemObject {
 
28683
#line 28684 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28684
  friend class ::CCExprResolve;
 
28685
  friend class ::CExprResolve;
 
28686
  friend class ::WinIfExists;
 
28687
  friend class ::WinImportHandler;
 
28688
  friend class ::WinMacros;
 
28689
  friend class ::WinAsm;
 
28690
  friend class ::WinDeclSpecs;
 
28691
  friend class ::WinMemberExplSpec;
 
28692
  friend class ::WinTypeKeywords;
 
28693
  friend class ::WinFriend;
 
28694
  friend class ::ExtAC;
 
28695
  friend class ::ExtACBuilderCoupling;
 
28696
  friend class ::ExtACSyntaxCoupling;
 
28697
  friend class ::ExtACTree;
 
28698
  friend class ::ExtACKeywords;
 
28699
  friend class ::ExtGnu;
 
28700
  friend class ::PragmaOnceUnitState;
 
28701
  friend class ::PragmaOnce;
 
28702
  friend class ::CMatchSyntax;
 
28703
 
 
28704
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28705
 
 
28706
  CTree *sons[2]; // type, init
 
28707
 
 
28708
public:
 
28709
  /** Constructor.
 
28710
   *  \param t The type name.
 
28711
   *  \param i The initializer list. */
 
28712
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
28713
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28714
  static const char *NodeId ();
 
28715
  /** Get the name of the node. Can be compared with NodeId(). */
 
28716
  const char *NodeName () const { return NodeId (); }
 
28717
  /** Get the number of sons. */
 
28718
  int Sons () const { return 2; }
 
28719
  /** Get the n-th son.
 
28720
   *  \param n The index of the son.
 
28721
   *  \return The n-th son or NULL. */
 
28722
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
28723
  /** Replace a son.
 
28724
   *  \param old_son The son to replace.
 
28725
   *  \param new_son The new son. */
 
28726
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28727
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
28728
  }
 
28729
  /** Get the type name. */
 
28730
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
28731
  /** Get the initializer. */
 
28732
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
28733
  /** Get the semantic information object. */
 
28734
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
28735
   private:
 
28736
  typedef CT_ConstructExpr CCExprResolveExpr;
 
28737
 
 
28738
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28739
 public :
 
28740
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
28741
  typedef CT_ConstructExpr CExprResolveExpr;
 
28742
 
 
28743
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28744
 public :
 
28745
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28746
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28747
};
 
28748
 
 
28749
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
28750
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
 
28751
 
 
28752
#line 28753 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28753
} // closed Puma
 
28754
class CCExprResolve;
 
28755
class CExprResolve;
 
28756
class WinIfExists;
 
28757
class WinImportHandler;
 
28758
class WinMacros;
 
28759
class WinAsm;
 
28760
class WinDeclSpecs;
 
28761
class WinMemberExplSpec;
 
28762
class WinTypeKeywords;
 
28763
class WinFriend;
 
28764
class ExtAC;
 
28765
class ExtACBuilderCoupling;
 
28766
class ExtACSyntaxCoupling;
 
28767
class ExtACTree;
 
28768
class ExtACKeywords;
 
28769
class ExtGnu;
 
28770
class PragmaOnceUnitState;
 
28771
class PragmaOnce;
 
28772
class CMatchSyntax;
 
28773
namespace Puma {
 
28774
 
 
28775
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28776
 
 
28777
#line 28778 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28778
} // closed Puma
 
28779
 
 
28780
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28781
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28782
#include "CCExprResolveH.ah"
 
28783
#endif
 
28784
namespace Puma {
 
28785
 
 
28786
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28787
 
 
28788
#line 28789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28789
} // closed Puma
 
28790
 
 
28791
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28792
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28793
#include "CExprResolveH.ah"
 
28794
#endif
 
28795
namespace Puma {
 
28796
 
 
28797
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28798
class CT_ThrowExpr : public CT_Expression {
 
28799
#line 28800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28800
  friend class ::CCExprResolve;
 
28801
  friend class ::CExprResolve;
 
28802
  friend class ::WinIfExists;
 
28803
  friend class ::WinImportHandler;
 
28804
  friend class ::WinMacros;
 
28805
  friend class ::WinAsm;
 
28806
  friend class ::WinDeclSpecs;
 
28807
  friend class ::WinMemberExplSpec;
 
28808
  friend class ::WinTypeKeywords;
 
28809
  friend class ::WinFriend;
 
28810
  friend class ::ExtAC;
 
28811
  friend class ::ExtACBuilderCoupling;
 
28812
  friend class ::ExtACSyntaxCoupling;
 
28813
  friend class ::ExtACTree;
 
28814
  friend class ::ExtACKeywords;
 
28815
  friend class ::ExtGnu;
 
28816
  friend class ::PragmaOnceUnitState;
 
28817
  friend class ::PragmaOnce;
 
28818
  friend class ::CMatchSyntax;
 
28819
 
 
28820
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28821
 
 
28822
  CTree *sons[2]; // throw, expr
 
28823
 
 
28824
public:
 
28825
  /** Constructor.
 
28826
   *  \param t The 'throw' keyword.
 
28827
   *  \param e The expression. */
 
28828
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
28829
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28830
  static const char *NodeId ();
 
28831
  /** Get the name of the node. Can be compared with NodeId(). */
 
28832
  const char *NodeName () const { return NodeId (); }
 
28833
  /** Get the number of sons. */
 
28834
  int Sons () const { return CTree::Sons (sons, 2); }
 
28835
  /** Get the n-th son.
 
28836
   *  \param n The index of the son.
 
28837
   *  \return The n-th son or NULL. */
 
28838
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
28839
  /** Replace a son.
 
28840
   *  \param old_son The son to replace.
 
28841
   *  \param new_son The new son. */
 
28842
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28843
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
28844
  }
 
28845
  /** Get the expression. */
 
28846
  CTree *Expr () const { return sons[1]; }
 
28847
   private:
 
28848
  typedef CT_ThrowExpr CCExprResolveExpr;
 
28849
 
 
28850
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28851
 public :
 
28852
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
28853
  typedef CT_ThrowExpr CExprResolveExpr;
 
28854
 
 
28855
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28856
 public :
 
28857
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28858
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28859
};
 
28860
 
 
28861
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
28862
 *  Tree node representing an index expression. */
 
28863
 
 
28864
#line 28865 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28865
} // closed Puma
 
28866
class CCExprResolve;
 
28867
class CExprResolve;
 
28868
class WinIfExists;
 
28869
class WinImportHandler;
 
28870
class WinMacros;
 
28871
class WinAsm;
 
28872
class WinDeclSpecs;
 
28873
class WinMemberExplSpec;
 
28874
class WinTypeKeywords;
 
28875
class WinFriend;
 
28876
class ExtAC;
 
28877
class ExtACBuilderCoupling;
 
28878
class ExtACSyntaxCoupling;
 
28879
class ExtACTree;
 
28880
class ExtACKeywords;
 
28881
class ExtGnu;
 
28882
class PragmaOnceUnitState;
 
28883
class PragmaOnce;
 
28884
class CMatchSyntax;
 
28885
namespace Puma {
 
28886
 
 
28887
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28888
 
 
28889
#line 28890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28890
} // closed Puma
 
28891
 
 
28892
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28893
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
28894
#include "CCExprResolveH.ah"
 
28895
#endif
 
28896
namespace Puma {
 
28897
 
 
28898
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28899
 
 
28900
#line 28901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28901
} // closed Puma
 
28902
 
 
28903
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28904
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
28905
#include "CExprResolveH.ah"
 
28906
#endif
 
28907
namespace Puma {
 
28908
 
 
28909
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28910
class CT_IndexExpr : public CT_Call {
 
28911
#line 28912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28912
  friend class ::CCExprResolve;
 
28913
  friend class ::CExprResolve;
 
28914
  friend class ::WinIfExists;
 
28915
  friend class ::WinImportHandler;
 
28916
  friend class ::WinMacros;
 
28917
  friend class ::WinAsm;
 
28918
  friend class ::WinDeclSpecs;
 
28919
  friend class ::WinMemberExplSpec;
 
28920
  friend class ::WinTypeKeywords;
 
28921
  friend class ::WinFriend;
 
28922
  friend class ::ExtAC;
 
28923
  friend class ::ExtACBuilderCoupling;
 
28924
  friend class ::ExtACSyntaxCoupling;
 
28925
  friend class ::ExtACTree;
 
28926
  friend class ::ExtACKeywords;
 
28927
  friend class ::ExtGnu;
 
28928
  friend class ::PragmaOnceUnitState;
 
28929
  friend class ::PragmaOnce;
 
28930
  friend class ::CMatchSyntax;
 
28931
 
 
28932
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28933
 
 
28934
  CTree *sons[4]; // expr, open, index, close
 
28935
 
 
28936
public:
 
28937
  /** Constructor.
 
28938
   *  \param e The expression on which to invoke the index operator.
 
28939
   *  \param o Left parenthesis of the index expression.
 
28940
   *  \param i The index expression. 
 
28941
   *  \param c Right parenthesis of the index expression. */
 
28942
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
 
28943
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
28944
    AddSon (sons[2], i); AddSon (sons[3], c);
 
28945
  }
 
28946
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
28947
  static const char *NodeId ();
 
28948
  /** Get the name of the node. Can be compared with NodeId(). */
 
28949
  const char *NodeName () const { return NodeId (); }
 
28950
  /** Get the number of sons. */
 
28951
  int Sons () const { return 4; }
 
28952
  /** Get the n-th son.
 
28953
   *  \param n The index of the son.
 
28954
   *  \return The n-th son or NULL. */
 
28955
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
28956
  /** Replace a son.
 
28957
   *  \param old_son The son to replace.
 
28958
   *  \param new_son The new son. */
 
28959
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
28960
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
28961
  }
 
28962
   private:
 
28963
  typedef CT_IndexExpr CCExprResolveExpr;
 
28964
 
 
28965
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
28966
 public :
 
28967
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
28968
  typedef CT_IndexExpr CExprResolveExpr;
 
28969
 
 
28970
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
28971
 public :
 
28972
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
28973
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
28974
};
 
28975
 
 
28976
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
28977
 *  Tree node representing a function call expression, e.g. f(i). */
 
28978
 
 
28979
#line 28980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
28980
} // closed Puma
 
28981
class CCExprResolve;
 
28982
class CExprResolve;
 
28983
class WinIfExists;
 
28984
class WinImportHandler;
 
28985
class WinMacros;
 
28986
class WinAsm;
 
28987
class WinDeclSpecs;
 
28988
class WinMemberExplSpec;
 
28989
class WinTypeKeywords;
 
28990
class WinFriend;
 
28991
class ExtAC;
 
28992
class ExtACBuilderCoupling;
 
28993
class ExtACSyntaxCoupling;
 
28994
class ExtACTree;
 
28995
class ExtACKeywords;
 
28996
class ExtGnu;
 
28997
class PragmaOnceUnitState;
 
28998
class PragmaOnce;
 
28999
class CMatchSyntax;
 
29000
namespace Puma {
 
29001
 
 
29002
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29003
 
 
29004
#line 29005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29005
} // closed Puma
 
29006
 
 
29007
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29008
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29009
#include "CCExprResolveH.ah"
 
29010
#endif
 
29011
namespace Puma {
 
29012
 
 
29013
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29014
 
 
29015
#line 29016 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29016
} // closed Puma
 
29017
 
 
29018
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29019
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29020
#include "CExprResolveH.ah"
 
29021
#endif
 
29022
namespace Puma {
 
29023
 
 
29024
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29025
class CT_CallExpr : public CT_Call {
 
29026
#line 29027 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29027
  friend class ::CCExprResolve;
 
29028
  friend class ::CExprResolve;
 
29029
  friend class ::WinIfExists;
 
29030
  friend class ::WinImportHandler;
 
29031
  friend class ::WinMacros;
 
29032
  friend class ::WinAsm;
 
29033
  friend class ::WinDeclSpecs;
 
29034
  friend class ::WinMemberExplSpec;
 
29035
  friend class ::WinTypeKeywords;
 
29036
  friend class ::WinFriend;
 
29037
  friend class ::ExtAC;
 
29038
  friend class ::ExtACBuilderCoupling;
 
29039
  friend class ::ExtACSyntaxCoupling;
 
29040
  friend class ::ExtACTree;
 
29041
  friend class ::ExtACKeywords;
 
29042
  friend class ::ExtGnu;
 
29043
  friend class ::PragmaOnceUnitState;
 
29044
  friend class ::PragmaOnce;
 
29045
  friend class ::CMatchSyntax;
 
29046
 
 
29047
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29048
 
 
29049
  CTree *sons[2]; // expr, args
 
29050
 
 
29051
public:
 
29052
  /** Constructor.
 
29053
   *  \param e The expression on which the call is invoked. */
 
29054
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
29055
  /** Constructor.
 
29056
   *  \param e The expression on which the call is invoked.
 
29057
   *  \param l The argument list of the call. */
 
29058
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
29059
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
29060
  static const char *NodeId ();
 
29061
  /** Get the name of the node. Can be compared with NodeId(). */
 
29062
  const char *NodeName () const { return NodeId (); }
 
29063
  /** Get the number of sons. */
 
29064
  int Sons () const { return CTree::Sons (sons, 2); }
 
29065
  /** Get the n-th son.
 
29066
   *  \param n The index of the son.
 
29067
   *  \return The n-th son or NULL. */
 
29068
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
29069
  /** Replace a son.
 
29070
   *  \param old_son The son to replace.
 
29071
   *  \param new_son The new son. */
 
29072
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
29073
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
29074
  }
 
29075
  CTree *Expr () const { return sons[0]; }
 
29076
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
 
29077
   private:
 
29078
  typedef CT_CallExpr CCExprResolveExpr;
 
29079
 
 
29080
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29081
 public :
 
29082
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
29083
  typedef CT_CallExpr CExprResolveExpr;
 
29084
 
 
29085
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29086
 public :
 
29087
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29088
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29089
};
 
29090
 
 
29091
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
29092
 *  Tree node representing a cast expression, e.g. (int)a. */
 
29093
 
 
29094
#line 29095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29095
} // closed Puma
 
29096
class CCExprResolve;
 
29097
class CExprResolve;
 
29098
class WinIfExists;
 
29099
class WinImportHandler;
 
29100
class WinMacros;
 
29101
class WinAsm;
 
29102
class WinDeclSpecs;
 
29103
class WinMemberExplSpec;
 
29104
class WinTypeKeywords;
 
29105
class WinFriend;
 
29106
class ExtAC;
 
29107
class ExtACBuilderCoupling;
 
29108
class ExtACSyntaxCoupling;
 
29109
class ExtACTree;
 
29110
class ExtACKeywords;
 
29111
class ExtGnu;
 
29112
class PragmaOnceUnitState;
 
29113
class PragmaOnce;
 
29114
class CMatchSyntax;
 
29115
namespace Puma {
 
29116
 
 
29117
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29118
 
 
29119
#line 29120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29120
} // closed Puma
 
29121
 
 
29122
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29123
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29124
#include "CCExprResolveH.ah"
 
29125
#endif
 
29126
namespace Puma {
 
29127
 
 
29128
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29129
 
 
29130
#line 29131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29131
} // closed Puma
 
29132
 
 
29133
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29134
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29135
#include "CExprResolveH.ah"
 
29136
#endif
 
29137
namespace Puma {
 
29138
 
 
29139
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29140
class CT_CastExpr : public CT_Expression {
 
29141
#line 29142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29142
  friend class ::CCExprResolve;
 
29143
  friend class ::CExprResolve;
 
29144
  friend class ::WinIfExists;
 
29145
  friend class ::WinImportHandler;
 
29146
  friend class ::WinMacros;
 
29147
  friend class ::WinAsm;
 
29148
  friend class ::WinDeclSpecs;
 
29149
  friend class ::WinMemberExplSpec;
 
29150
  friend class ::WinTypeKeywords;
 
29151
  friend class ::WinFriend;
 
29152
  friend class ::ExtAC;
 
29153
  friend class ::ExtACBuilderCoupling;
 
29154
  friend class ::ExtACSyntaxCoupling;
 
29155
  friend class ::ExtACTree;
 
29156
  friend class ::ExtACKeywords;
 
29157
  friend class ::ExtGnu;
 
29158
  friend class ::PragmaOnceUnitState;
 
29159
  friend class ::PragmaOnce;
 
29160
  friend class ::CMatchSyntax;
 
29161
 
 
29162
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29163
 
 
29164
  CTree *sons[4]; // open, type, close, expr
 
29165
 
 
29166
public:
 
29167
  /** Constructor.
 
29168
   *  \param o Left parenthesis of the type name.
 
29169
   *  \param t The type to cast to.
 
29170
   *  \param c Right parenthesis of the type name. 
 
29171
   *  \param e The expression to cast. */
 
29172
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
 
29173
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
29174
    AddSon (sons[2], c); AddSon (sons[3], e);
 
29175
  }
 
29176
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
29177
  static const char *NodeId ();
 
29178
  /** Get the name of the node. Can be compared with NodeId(). */
 
29179
  const char *NodeName () const { return NodeId (); }
 
29180
  /** Get the number of sons. */
 
29181
  int Sons () const { return 4; }
 
29182
  /** Get the n-th son.
 
29183
   *  \param n The index of the son.
 
29184
   *  \return The n-th son or NULL. */
 
29185
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
29186
  /** Replace a son.
 
29187
   *  \param old_son The son to replace.
 
29188
   *  \param new_son The new son. */
 
29189
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
29190
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
29191
  }
 
29192
  /** Get the casted expression. */
 
29193
  CTree *Expr () const { return sons[3]; }
 
29194
  /** Get the type to cast to. */
 
29195
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
29196
   private:
 
29197
  typedef CT_CastExpr CCExprResolveExpr;
 
29198
 
 
29199
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29200
 public :
 
29201
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
29202
  typedef CT_CastExpr CExprResolveExpr;
 
29203
 
 
29204
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29205
 public :
 
29206
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29207
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29208
};
 
29209
 
 
29210
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
29211
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
 
29212
 
 
29213
#line 29214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29214
} // closed Puma
 
29215
class CCExprResolve;
 
29216
class CExprResolve;
 
29217
class WinIfExists;
 
29218
class WinImportHandler;
 
29219
class WinMacros;
 
29220
class WinAsm;
 
29221
class WinDeclSpecs;
 
29222
class WinMemberExplSpec;
 
29223
class WinTypeKeywords;
 
29224
class WinFriend;
 
29225
class ExtAC;
 
29226
class ExtACBuilderCoupling;
 
29227
class ExtACSyntaxCoupling;
 
29228
class ExtACTree;
 
29229
class ExtACKeywords;
 
29230
class ExtGnu;
 
29231
class PragmaOnceUnitState;
 
29232
class PragmaOnce;
 
29233
class CMatchSyntax;
 
29234
namespace Puma {
 
29235
 
 
29236
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29237
 
 
29238
#line 29239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29239
} // closed Puma
 
29240
 
 
29241
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29242
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29243
#include "CCExprResolveH.ah"
 
29244
#endif
 
29245
namespace Puma {
 
29246
 
 
29247
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29248
 
 
29249
#line 29250 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29250
} // closed Puma
 
29251
 
 
29252
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29253
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29254
#include "CExprResolveH.ah"
 
29255
#endif
 
29256
namespace Puma {
 
29257
 
 
29258
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29259
class CT_StaticCast : public CT_Expression {
 
29260
#line 29261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29261
  friend class ::CCExprResolve;
 
29262
  friend class ::CExprResolve;
 
29263
  friend class ::WinIfExists;
 
29264
  friend class ::WinImportHandler;
 
29265
  friend class ::WinMacros;
 
29266
  friend class ::WinAsm;
 
29267
  friend class ::WinDeclSpecs;
 
29268
  friend class ::WinMemberExplSpec;
 
29269
  friend class ::WinTypeKeywords;
 
29270
  friend class ::WinFriend;
 
29271
  friend class ::ExtAC;
 
29272
  friend class ::ExtACBuilderCoupling;
 
29273
  friend class ::ExtACSyntaxCoupling;
 
29274
  friend class ::ExtACTree;
 
29275
  friend class ::ExtACKeywords;
 
29276
  friend class ::ExtGnu;
 
29277
  friend class ::PragmaOnceUnitState;
 
29278
  friend class ::PragmaOnce;
 
29279
  friend class ::CMatchSyntax;
 
29280
 
 
29281
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29282
 
 
29283
  CTree *sons[5]; // cast, open, type, close, expr
 
29284
 
 
29285
public:
 
29286
  /** Constructor.
 
29287
   *  \param cst The cast operator, i.e. 'static_cast'.
 
29288
   *  \param o Left arrow bracket of the type name.
 
29289
   *  \param t The type to cast to.
 
29290
   *  \param c Right array bracket of the type name.
 
29291
   *  \param e The expression to cast. */
 
29292
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
 
29293
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
29294
    AddSon (sons[3], c); AddSon (sons[4], e);
 
29295
  }
 
29296
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
29297
  static const char *NodeId ();
 
29298
  /** Get the name of the node. Can be compared with NodeId(). */
 
29299
  const char *NodeName () const { return NodeId (); }
 
29300
  /** Get the number of sons. */
 
29301
  int Sons () const { return 5; }
 
29302
  /** Get the n-th son.
 
29303
   *  \param n The index of the son.
 
29304
   *  \return The n-th son or NULL. */
 
29305
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
29306
  /** Replace a son.
 
29307
   *  \param old_son The son to replace.
 
29308
   *  \param new_son The new son. */
 
29309
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
29310
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
29311
  }
 
29312
  /** Get the casted expression. */
 
29313
  CTree *Expr () const { return sons[4]; }
 
29314
  /** Get the type to cast to. */
 
29315
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
29316
   private:
 
29317
  typedef CT_StaticCast CCExprResolveExpr;
 
29318
 
 
29319
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29320
 public :
 
29321
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
29322
  typedef CT_StaticCast CExprResolveExpr;
 
29323
 
 
29324
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29325
 public :
 
29326
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29327
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29328
};
 
29329
 
 
29330
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
29331
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
 
29332
 
 
29333
#line 29334 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29334
} // closed Puma
 
29335
class CCExprResolve;
 
29336
class CExprResolve;
 
29337
class WinIfExists;
 
29338
class WinImportHandler;
 
29339
class WinMacros;
 
29340
class WinAsm;
 
29341
class WinDeclSpecs;
 
29342
class WinMemberExplSpec;
 
29343
class WinTypeKeywords;
 
29344
class WinFriend;
 
29345
class ExtAC;
 
29346
class ExtACBuilderCoupling;
 
29347
class ExtACSyntaxCoupling;
 
29348
class ExtACTree;
 
29349
class ExtACKeywords;
 
29350
class ExtGnu;
 
29351
class PragmaOnceUnitState;
 
29352
class PragmaOnce;
 
29353
class CMatchSyntax;
 
29354
namespace Puma {
 
29355
 
 
29356
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29357
 
 
29358
#line 29359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29359
} // closed Puma
 
29360
 
 
29361
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29362
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29363
#include "CCExprResolveH.ah"
 
29364
#endif
 
29365
namespace Puma {
 
29366
 
 
29367
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29368
 
 
29369
#line 29370 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29370
} // closed Puma
 
29371
 
 
29372
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29373
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29374
#include "CExprResolveH.ah"
 
29375
#endif
 
29376
namespace Puma {
 
29377
 
 
29378
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29379
class CT_ConstCast : public CT_StaticCast {
 
29380
#line 29381 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29381
  friend class ::CCExprResolve;
 
29382
  friend class ::CExprResolve;
 
29383
  friend class ::WinIfExists;
 
29384
  friend class ::WinImportHandler;
 
29385
  friend class ::WinMacros;
 
29386
  friend class ::WinAsm;
 
29387
  friend class ::WinDeclSpecs;
 
29388
  friend class ::WinMemberExplSpec;
 
29389
  friend class ::WinTypeKeywords;
 
29390
  friend class ::WinFriend;
 
29391
  friend class ::ExtAC;
 
29392
  friend class ::ExtACBuilderCoupling;
 
29393
  friend class ::ExtACSyntaxCoupling;
 
29394
  friend class ::ExtACTree;
 
29395
  friend class ::ExtACKeywords;
 
29396
  friend class ::ExtGnu;
 
29397
  friend class ::PragmaOnceUnitState;
 
29398
  friend class ::PragmaOnce;
 
29399
  friend class ::CMatchSyntax;
 
29400
 
 
29401
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29402
 
 
29403
public:
 
29404
  /** Constructor.
 
29405
   *  \param cst The cast operator, i.e. 'const_cast'.
 
29406
   *  \param o Left arrow bracket of the type name.
 
29407
   *  \param t The type to cast to.
 
29408
   *  \param c Right array bracket of the type name.
 
29409
   *  \param e The expression to cast. */
 
29410
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
29411
    CT_StaticCast (cst, o, t, c, e) {}
 
29412
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
29413
  static const char *NodeId ();
 
29414
  /** Get the name of the node. Can be compared with NodeId(). */
 
29415
  const char *NodeName () const { return NodeId (); }
 
29416
   private:
 
29417
  typedef CT_ConstCast CCExprResolveExpr;
 
29418
 
 
29419
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29420
 public :
 
29421
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
29422
  typedef CT_ConstCast CExprResolveExpr;
 
29423
 
 
29424
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29425
 public :
 
29426
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29427
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29428
};
 
29429
 
 
29430
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
29431
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
 
29432
 
 
29433
#line 29434 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29434
} // closed Puma
 
29435
class CCExprResolve;
 
29436
class CExprResolve;
 
29437
class WinIfExists;
 
29438
class WinImportHandler;
 
29439
class WinMacros;
 
29440
class WinAsm;
 
29441
class WinDeclSpecs;
 
29442
class WinMemberExplSpec;
 
29443
class WinTypeKeywords;
 
29444
class WinFriend;
 
29445
class ExtAC;
 
29446
class ExtACBuilderCoupling;
 
29447
class ExtACSyntaxCoupling;
 
29448
class ExtACTree;
 
29449
class ExtACKeywords;
 
29450
class ExtGnu;
 
29451
class PragmaOnceUnitState;
 
29452
class PragmaOnce;
 
29453
class CMatchSyntax;
 
29454
namespace Puma {
 
29455
 
 
29456
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29457
 
 
29458
#line 29459 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29459
} // closed Puma
 
29460
 
 
29461
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29462
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29463
#include "CCExprResolveH.ah"
 
29464
#endif
 
29465
namespace Puma {
 
29466
 
 
29467
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29468
 
 
29469
#line 29470 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29470
} // closed Puma
 
29471
 
 
29472
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29473
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29474
#include "CExprResolveH.ah"
 
29475
#endif
 
29476
namespace Puma {
 
29477
 
 
29478
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29479
class CT_ReintCast : public CT_StaticCast {
 
29480
#line 29481 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29481
  friend class ::CCExprResolve;
 
29482
  friend class ::CExprResolve;
 
29483
  friend class ::WinIfExists;
 
29484
  friend class ::WinImportHandler;
 
29485
  friend class ::WinMacros;
 
29486
  friend class ::WinAsm;
 
29487
  friend class ::WinDeclSpecs;
 
29488
  friend class ::WinMemberExplSpec;
 
29489
  friend class ::WinTypeKeywords;
 
29490
  friend class ::WinFriend;
 
29491
  friend class ::ExtAC;
 
29492
  friend class ::ExtACBuilderCoupling;
 
29493
  friend class ::ExtACSyntaxCoupling;
 
29494
  friend class ::ExtACTree;
 
29495
  friend class ::ExtACKeywords;
 
29496
  friend class ::ExtGnu;
 
29497
  friend class ::PragmaOnceUnitState;
 
29498
  friend class ::PragmaOnce;
 
29499
  friend class ::CMatchSyntax;
 
29500
 
 
29501
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29502
 
 
29503
public:
 
29504
  /** Constructor.
 
29505
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
29506
   *  \param o Left arrow bracket of the type name.
 
29507
   *  \param t The type to cast to.
 
29508
   *  \param c Right array bracket of the type name.
 
29509
   *  \param e The expression to cast. */
 
29510
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
29511
    CT_StaticCast (cst, o, t, c, e) {}
 
29512
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
29513
  static const char *NodeId ();
 
29514
  /** Get the name of the node. Can be compared with NodeId(). */
 
29515
  const char *NodeName () const { return NodeId (); }
 
29516
   private:
 
29517
  typedef CT_ReintCast CCExprResolveExpr;
 
29518
 
 
29519
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29520
 public :
 
29521
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
29522
  typedef CT_ReintCast CExprResolveExpr;
 
29523
 
 
29524
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29525
 public :
 
29526
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29527
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29528
};
 
29529
 
 
29530
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
29531
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
 
29532
 
 
29533
#line 29534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29534
} // closed Puma
 
29535
class CCExprResolve;
 
29536
class CExprResolve;
 
29537
class WinIfExists;
 
29538
class WinImportHandler;
 
29539
class WinMacros;
 
29540
class WinAsm;
 
29541
class WinDeclSpecs;
 
29542
class WinMemberExplSpec;
 
29543
class WinTypeKeywords;
 
29544
class WinFriend;
 
29545
class ExtAC;
 
29546
class ExtACBuilderCoupling;
 
29547
class ExtACSyntaxCoupling;
 
29548
class ExtACTree;
 
29549
class ExtACKeywords;
 
29550
class ExtGnu;
 
29551
class PragmaOnceUnitState;
 
29552
class PragmaOnce;
 
29553
class CMatchSyntax;
 
29554
namespace Puma {
 
29555
 
 
29556
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29557
 
 
29558
#line 29559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29559
} // closed Puma
 
29560
 
 
29561
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29562
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29563
#include "CCExprResolveH.ah"
 
29564
#endif
 
29565
namespace Puma {
 
29566
 
 
29567
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29568
 
 
29569
#line 29570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29570
} // closed Puma
 
29571
 
 
29572
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29573
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29574
#include "CExprResolveH.ah"
 
29575
#endif
 
29576
namespace Puma {
 
29577
 
 
29578
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29579
class CT_DynamicCast : public CT_StaticCast {
 
29580
#line 29581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29581
  friend class ::CCExprResolve;
 
29582
  friend class ::CExprResolve;
 
29583
  friend class ::WinIfExists;
 
29584
  friend class ::WinImportHandler;
 
29585
  friend class ::WinMacros;
 
29586
  friend class ::WinAsm;
 
29587
  friend class ::WinDeclSpecs;
 
29588
  friend class ::WinMemberExplSpec;
 
29589
  friend class ::WinTypeKeywords;
 
29590
  friend class ::WinFriend;
 
29591
  friend class ::ExtAC;
 
29592
  friend class ::ExtACBuilderCoupling;
 
29593
  friend class ::ExtACSyntaxCoupling;
 
29594
  friend class ::ExtACTree;
 
29595
  friend class ::ExtACKeywords;
 
29596
  friend class ::ExtGnu;
 
29597
  friend class ::PragmaOnceUnitState;
 
29598
  friend class ::PragmaOnce;
 
29599
  friend class ::CMatchSyntax;
 
29600
 
 
29601
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29602
 
 
29603
public:
 
29604
  /** Constructor.
 
29605
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
29606
   *  \param o Left arrow bracket of the type name.
 
29607
   *  \param t The type to cast to.
 
29608
   *  \param c Right array bracket of the type name.
 
29609
   *  \param e The expression to cast. */
 
29610
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
 
29611
    CT_StaticCast (cst, o, t, c, e) {}
 
29612
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
29613
  static const char *NodeId ();
 
29614
  /** Get the name of the node. Can be compared with NodeId(). */
 
29615
  const char *NodeName () const { return NodeId (); }
 
29616
   private:
 
29617
  typedef CT_DynamicCast CCExprResolveExpr;
 
29618
 
 
29619
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29620
 public :
 
29621
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
29622
  typedef CT_DynamicCast CExprResolveExpr;
 
29623
 
 
29624
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29625
 public :
 
29626
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29627
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29628
};
 
29629
 
 
29630
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
29631
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
29632
 *  where 1.2 is implicitely casted from float to int. */
 
29633
 
 
29634
#line 29635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29635
} // closed Puma
 
29636
class CCExprResolve;
 
29637
class CExprResolve;
 
29638
class WinIfExists;
 
29639
class WinImportHandler;
 
29640
class WinMacros;
 
29641
class WinAsm;
 
29642
class WinDeclSpecs;
 
29643
class WinMemberExplSpec;
 
29644
class WinTypeKeywords;
 
29645
class WinFriend;
 
29646
class ExtAC;
 
29647
class ExtACBuilderCoupling;
 
29648
class ExtACSyntaxCoupling;
 
29649
class ExtACTree;
 
29650
class ExtACKeywords;
 
29651
class ExtGnu;
 
29652
class PragmaOnceUnitState;
 
29653
class PragmaOnce;
 
29654
class CMatchSyntax;
 
29655
namespace Puma {
 
29656
 
 
29657
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29658
 
 
29659
#line 29660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29660
} // closed Puma
 
29661
 
 
29662
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29663
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29664
#include "CCExprResolveH.ah"
 
29665
#endif
 
29666
namespace Puma {
 
29667
 
 
29668
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29669
 
 
29670
#line 29671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29671
} // closed Puma
 
29672
 
 
29673
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29674
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29675
#include "CExprResolveH.ah"
 
29676
#endif
 
29677
namespace Puma {
 
29678
 
 
29679
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29680
class CT_ImplicitCast : public CT_Expression {
 
29681
#line 29682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29682
  friend class ::CCExprResolve;
 
29683
  friend class ::CExprResolve;
 
29684
  friend class ::WinIfExists;
 
29685
  friend class ::WinImportHandler;
 
29686
  friend class ::WinMacros;
 
29687
  friend class ::WinAsm;
 
29688
  friend class ::WinDeclSpecs;
 
29689
  friend class ::WinMemberExplSpec;
 
29690
  friend class ::WinTypeKeywords;
 
29691
  friend class ::WinFriend;
 
29692
  friend class ::ExtAC;
 
29693
  friend class ::ExtACBuilderCoupling;
 
29694
  friend class ::ExtACSyntaxCoupling;
 
29695
  friend class ::ExtACTree;
 
29696
  friend class ::ExtACKeywords;
 
29697
  friend class ::ExtGnu;
 
29698
  friend class ::PragmaOnceUnitState;
 
29699
  friend class ::PragmaOnce;
 
29700
  friend class ::CMatchSyntax;
 
29701
 
 
29702
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29703
 
 
29704
  CTree *_expr; // casted expression
 
29705
 
 
29706
public:
 
29707
  /** Constructor.
 
29708
   *  \param e The expression that is implicitely casted. */
 
29709
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
29710
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
29711
  static const char *NodeId ();
 
29712
  /** Get the name of the node. Can be compared with NodeId(). */
 
29713
  const char *NodeName () const { return NodeId (); }
 
29714
  /** Get the number of sons. */
 
29715
  int Sons () const { return 1; }
 
29716
  /** Get the n-th son.
 
29717
   *  \param n The index of the son.
 
29718
   *  \return The n-th son or NULL. */
 
29719
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
29720
  /** Get the casted expression. */
 
29721
  CTree *Expr () const { return _expr; }
 
29722
  /** Replace a son.
 
29723
   *  \param old_son The son to replace.
 
29724
   *  \param new_son The new son. */
 
29725
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
29726
   { CTree::ReplaceSon (_expr, old_son, new_son); }
 
29727
   private:
 
29728
  typedef CT_ImplicitCast CCExprResolveExpr;
 
29729
 
 
29730
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29731
 public :
 
29732
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
29733
  typedef CT_ImplicitCast CExprResolveExpr;
 
29734
 
 
29735
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29736
 public :
 
29737
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29738
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29739
};
 
29740
 
 
29741
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
29742
 *  Tree node representing a typeid expression, e.g. typeid(X). */
 
29743
 
 
29744
#line 29745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29745
} // closed Puma
 
29746
class CCExprResolve;
 
29747
class CExprResolve;
 
29748
class WinIfExists;
 
29749
class WinImportHandler;
 
29750
class WinMacros;
 
29751
class WinAsm;
 
29752
class WinDeclSpecs;
 
29753
class WinMemberExplSpec;
 
29754
class WinTypeKeywords;
 
29755
class WinFriend;
 
29756
class ExtAC;
 
29757
class ExtACBuilderCoupling;
 
29758
class ExtACSyntaxCoupling;
 
29759
class ExtACTree;
 
29760
class ExtACKeywords;
 
29761
class ExtGnu;
 
29762
class PragmaOnceUnitState;
 
29763
class PragmaOnce;
 
29764
class CMatchSyntax;
 
29765
namespace Puma {
 
29766
 
 
29767
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29768
 
 
29769
#line 29770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29770
} // closed Puma
 
29771
 
 
29772
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29773
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29774
#include "CCExprResolveH.ah"
 
29775
#endif
 
29776
namespace Puma {
 
29777
 
 
29778
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29779
 
 
29780
#line 29781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29781
} // closed Puma
 
29782
 
 
29783
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29784
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29785
#include "CExprResolveH.ah"
 
29786
#endif
 
29787
namespace Puma {
 
29788
 
 
29789
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29790
class CT_TypeidExpr : public CT_Expression {
 
29791
#line 29792 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29792
  friend class ::CCExprResolve;
 
29793
  friend class ::CExprResolve;
 
29794
  friend class ::WinIfExists;
 
29795
  friend class ::WinImportHandler;
 
29796
  friend class ::WinMacros;
 
29797
  friend class ::WinAsm;
 
29798
  friend class ::WinDeclSpecs;
 
29799
  friend class ::WinMemberExplSpec;
 
29800
  friend class ::WinTypeKeywords;
 
29801
  friend class ::WinFriend;
 
29802
  friend class ::ExtAC;
 
29803
  friend class ::ExtACBuilderCoupling;
 
29804
  friend class ::ExtACSyntaxCoupling;
 
29805
  friend class ::ExtACTree;
 
29806
  friend class ::ExtACKeywords;
 
29807
  friend class ::ExtGnu;
 
29808
  friend class ::PragmaOnceUnitState;
 
29809
  friend class ::PragmaOnce;
 
29810
  friend class ::CMatchSyntax;
 
29811
 
 
29812
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29813
 
 
29814
  CTree *sons[4]; // typeid, open, type_id/expr, close
 
29815
 
 
29816
public:
 
29817
  /** Constructor.
 
29818
   *  \param tid The 'typeid' operator.
 
29819
   *  \param o The left parenthesis of the type name or expression.
 
29820
   *  \param e The expression or type name for which to get the type identifier.
 
29821
   *  \param c The right parenthesis of the type name or expression. */
 
29822
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
 
29823
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
29824
    AddSon (sons[2], e); AddSon (sons[3], c);
 
29825
  }
 
29826
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
29827
  static const char *NodeId ();
 
29828
  /** Get the name of the node. Can be compared with NodeId(). */
 
29829
  const char *NodeName () const { return NodeId (); }
 
29830
  /** Get the number of sons. */
 
29831
  int Sons () const { return 4; }
 
29832
  /** Get the n-th son.
 
29833
   *  \param n The index of the son.
 
29834
   *  \return The n-th son or NULL. */
 
29835
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
29836
  /** Replace a son.
 
29837
   *  \param old_son The son to replace.
 
29838
   *  \param new_son The new son. */
 
29839
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
29840
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
29841
  }
 
29842
  /** Get the typeid argument, i.e. the expression or type name for
 
29843
   *  which to get the type identifier. */
 
29844
  CTree *Arg () const { return sons[2]; }
 
29845
   private:
 
29846
  typedef CT_TypeidExpr CCExprResolveExpr;
 
29847
 
 
29848
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29849
 public :
 
29850
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
29851
  typedef CT_TypeidExpr CExprResolveExpr;
 
29852
 
 
29853
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29854
 public :
 
29855
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29856
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29857
};
 
29858
 
 
29859
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
29860
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
 
29861
 
 
29862
#line 29863 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29863
} // closed Puma
 
29864
class CCExprResolve;
 
29865
class CExprResolve;
 
29866
class WinIfExists;
 
29867
class WinImportHandler;
 
29868
class WinMacros;
 
29869
class WinAsm;
 
29870
class WinDeclSpecs;
 
29871
class WinMemberExplSpec;
 
29872
class WinTypeKeywords;
 
29873
class WinFriend;
 
29874
class ExtAC;
 
29875
class ExtACBuilderCoupling;
 
29876
class ExtACSyntaxCoupling;
 
29877
class ExtACTree;
 
29878
class ExtACKeywords;
 
29879
class ExtGnu;
 
29880
class PragmaOnceUnitState;
 
29881
class PragmaOnce;
 
29882
class CMatchSyntax;
 
29883
namespace Puma {
 
29884
 
 
29885
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29886
 
 
29887
#line 29888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29888
} // closed Puma
 
29889
 
 
29890
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29891
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
29892
#include "CCExprResolveH.ah"
 
29893
#endif
 
29894
namespace Puma {
 
29895
 
 
29896
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29897
 
 
29898
#line 29899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29899
} // closed Puma
 
29900
 
 
29901
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29902
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
29903
#include "CExprResolveH.ah"
 
29904
#endif
 
29905
namespace Puma {
 
29906
 
 
29907
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29908
class CT_SizeofExpr : public CT_Expression {
 
29909
#line 29910 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29910
  friend class ::CCExprResolve;
 
29911
  friend class ::CExprResolve;
 
29912
  friend class ::WinIfExists;
 
29913
  friend class ::WinImportHandler;
 
29914
  friend class ::WinMacros;
 
29915
  friend class ::WinAsm;
 
29916
  friend class ::WinDeclSpecs;
 
29917
  friend class ::WinMemberExplSpec;
 
29918
  friend class ::WinTypeKeywords;
 
29919
  friend class ::WinFriend;
 
29920
  friend class ::ExtAC;
 
29921
  friend class ::ExtACBuilderCoupling;
 
29922
  friend class ::ExtACSyntaxCoupling;
 
29923
  friend class ::ExtACTree;
 
29924
  friend class ::ExtACKeywords;
 
29925
  friend class ::ExtGnu;
 
29926
  friend class ::PragmaOnceUnitState;
 
29927
  friend class ::PragmaOnce;
 
29928
  friend class ::CMatchSyntax;
 
29929
 
 
29930
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29931
 
 
29932
  CTree *sons[5]; // key, open, type, close, expr
 
29933
 
 
29934
public:
 
29935
  /** Constructor.
 
29936
   *  \param k The 'sizeof' keyword.
 
29937
   *  \param o Left parenthesis around the type name.
 
29938
   *  \param t The type from which to get the size.
 
29939
   *  \param c Right parenthesis around the type name. */
 
29940
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
 
29941
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
29942
    AddSon (sons[3], c); AddSon (sons[4], 0);
 
29943
  }
 
29944
  /** Constructor.
 
29945
   *  \param k The 'sizeof' keyword.
 
29946
   *  \param e The expression from which to get the size. */
 
29947
  CT_SizeofExpr (CTree *k, CTree *e) {
 
29948
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
29949
    AddSon (sons[3], 0); AddSon (sons[4], e);
 
29950
  }
 
29951
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
29952
  static const char *NodeId ();
 
29953
  /** Get the name of the node. Can be compared with NodeId(). */
 
29954
  const char *NodeName () const { return NodeId (); }
 
29955
  /** Get the number of sons. */
 
29956
  int Sons () const { return CTree::Sons (sons, 5); }
 
29957
  /** Get the n-th son.
 
29958
   *  \param n The index of the son.
 
29959
   *  \return The n-th son or NULL. */
 
29960
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
29961
  /** Replace a son.
 
29962
   *  \param old_son The son to replace.
 
29963
   *  \param new_son The new son. */
 
29964
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
29965
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
29966
  }
 
29967
  /** Get the expression. */
 
29968
  CTree *Expr () const { return sons[4]; }
 
29969
  /** Get the type name. */
 
29970
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
 
29971
   private:
 
29972
  typedef CT_SizeofExpr CCExprResolveExpr;
 
29973
 
 
29974
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
29975
 public :
 
29976
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
29977
  typedef CT_SizeofExpr CExprResolveExpr;
 
29978
 
 
29979
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
29980
 public :
 
29981
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
29982
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
29983
};
 
29984
 
 
29985
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
29986
 *  Tree node representing an index designator, i.e. [1]. */
 
29987
 
 
29988
#line 29989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
29989
} // closed Puma
 
29990
class CCExprResolve;
 
29991
class CExprResolve;
 
29992
class WinIfExists;
 
29993
class WinImportHandler;
 
29994
class WinMacros;
 
29995
class WinAsm;
 
29996
class WinDeclSpecs;
 
29997
class WinMemberExplSpec;
 
29998
class WinTypeKeywords;
 
29999
class WinFriend;
 
30000
class ExtAC;
 
30001
class ExtACBuilderCoupling;
 
30002
class ExtACSyntaxCoupling;
 
30003
class ExtACTree;
 
30004
class ExtACKeywords;
 
30005
class ExtGnu;
 
30006
class PragmaOnceUnitState;
 
30007
class PragmaOnce;
 
30008
class CMatchSyntax;
 
30009
namespace Puma {
 
30010
 
 
30011
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30012
 
 
30013
#line 30014 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30014
} // closed Puma
 
30015
 
 
30016
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30017
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30018
#include "CCExprResolveH.ah"
 
30019
#endif
 
30020
namespace Puma {
 
30021
 
 
30022
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30023
 
 
30024
#line 30025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30025
} // closed Puma
 
30026
 
 
30027
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30028
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30029
#include "CExprResolveH.ah"
 
30030
#endif
 
30031
namespace Puma {
 
30032
 
 
30033
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30034
class CT_IndexDesignator : public CT_Expression {
 
30035
#line 30036 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30036
  friend class ::CCExprResolve;
 
30037
  friend class ::CExprResolve;
 
30038
  friend class ::WinIfExists;
 
30039
  friend class ::WinImportHandler;
 
30040
  friend class ::WinMacros;
 
30041
  friend class ::WinAsm;
 
30042
  friend class ::WinDeclSpecs;
 
30043
  friend class ::WinMemberExplSpec;
 
30044
  friend class ::WinTypeKeywords;
 
30045
  friend class ::WinFriend;
 
30046
  friend class ::ExtAC;
 
30047
  friend class ::ExtACBuilderCoupling;
 
30048
  friend class ::ExtACSyntaxCoupling;
 
30049
  friend class ::ExtACTree;
 
30050
  friend class ::ExtACKeywords;
 
30051
  friend class ::ExtGnu;
 
30052
  friend class ::PragmaOnceUnitState;
 
30053
  friend class ::PragmaOnce;
 
30054
  friend class ::CMatchSyntax;
 
30055
 
 
30056
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30057
 
 
30058
  CTree *sons[3]; // open, index, close
 
30059
 
 
30060
public:
 
30061
  /** Constructor.
 
30062
   *  \param o Left bracket of the index designator.
 
30063
   *  \param i The index expression.
 
30064
   *  \param c Right bracket of the index designator. */
 
30065
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
 
30066
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
 
30067
  }
 
30068
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30069
  static const char *NodeId ();
 
30070
  /** Get the name of the node. Can be compared with NodeId(). */
 
30071
  const char *NodeName () const { return NodeId (); }
 
30072
  /** Get the number of sons. */
 
30073
  int Sons () const { return 3; }
 
30074
  /** Get the n-th son.
 
30075
   *  \param n The index of the son.
 
30076
   *  \return The n-th son or NULL. */
 
30077
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
30078
  /** Replace a son.
 
30079
   *  \param old_son The son to replace.
 
30080
   *  \param new_son The new son. */
 
30081
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
30082
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
30083
  }
 
30084
   private:
 
30085
  typedef CT_IndexDesignator CCExprResolveExpr;
 
30086
 
 
30087
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30088
 public :
 
30089
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
30090
  typedef CT_IndexDesignator CExprResolveExpr;
 
30091
 
 
30092
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30093
 public :
 
30094
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30095
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30096
};
 
30097
 
 
30098
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
30099
 *  Tree node representing a member designator, e.g. .a. */
 
30100
 
 
30101
#line 30102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30102
} // closed Puma
 
30103
class CCExprResolve;
 
30104
class CExprResolve;
 
30105
class WinIfExists;
 
30106
class WinImportHandler;
 
30107
class WinMacros;
 
30108
class WinAsm;
 
30109
class WinDeclSpecs;
 
30110
class WinMemberExplSpec;
 
30111
class WinTypeKeywords;
 
30112
class WinFriend;
 
30113
class ExtAC;
 
30114
class ExtACBuilderCoupling;
 
30115
class ExtACSyntaxCoupling;
 
30116
class ExtACTree;
 
30117
class ExtACKeywords;
 
30118
class ExtGnu;
 
30119
class PragmaOnceUnitState;
 
30120
class PragmaOnce;
 
30121
class CMatchSyntax;
 
30122
namespace Puma {
 
30123
 
 
30124
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30125
 
 
30126
#line 30127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30127
} // closed Puma
 
30128
 
 
30129
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30130
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
30131
#include "CCExprResolveH.ah"
 
30132
#endif
 
30133
namespace Puma {
 
30134
 
 
30135
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30136
 
 
30137
#line 30138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30138
} // closed Puma
 
30139
 
 
30140
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30141
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
30142
#include "CExprResolveH.ah"
 
30143
#endif
 
30144
namespace Puma {
 
30145
 
 
30146
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30147
class CT_MembDesignator : public CT_Expression {
 
30148
#line 30149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30149
  friend class ::CCExprResolve;
 
30150
  friend class ::CExprResolve;
 
30151
  friend class ::WinIfExists;
 
30152
  friend class ::WinImportHandler;
 
30153
  friend class ::WinMacros;
 
30154
  friend class ::WinAsm;
 
30155
  friend class ::WinDeclSpecs;
 
30156
  friend class ::WinMemberExplSpec;
 
30157
  friend class ::WinTypeKeywords;
 
30158
  friend class ::WinFriend;
 
30159
  friend class ::ExtAC;
 
30160
  friend class ::ExtACBuilderCoupling;
 
30161
  friend class ::ExtACSyntaxCoupling;
 
30162
  friend class ::ExtACTree;
 
30163
  friend class ::ExtACKeywords;
 
30164
  friend class ::ExtGnu;
 
30165
  friend class ::PragmaOnceUnitState;
 
30166
  friend class ::PragmaOnce;
 
30167
  friend class ::CMatchSyntax;
 
30168
 
 
30169
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30170
 
 
30171
  CTree *sons[2]; // dot, member
 
30172
 
 
30173
public:
 
30174
  /** Constructor.
 
30175
   *  \param d The dot before the member name.
 
30176
   *  \param m The member name. */
 
30177
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
30178
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30179
  static const char *NodeId ();
 
30180
  /** Get the name of the node. Can be compared with NodeId(). */
 
30181
  const char *NodeName () const { return NodeId (); }
 
30182
  /** Get the number of sons. */
 
30183
  int Sons () const { return 2; }
 
30184
  /** Get the n-th son.
 
30185
   *  \param n The index of the son.
 
30186
   *  \return The n-th son or NULL. */
 
30187
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
30188
  /** Replace a son.
 
30189
   *  \param old_son The son to replace.
 
30190
   *  \param new_son The new son. */
 
30191
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
30192
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
30193
  }
 
30194
   private:
 
30195
  typedef CT_MembDesignator CCExprResolveExpr;
 
30196
 
 
30197
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
30198
 public :
 
30199
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
30200
  typedef CT_MembDesignator CExprResolveExpr;
 
30201
 
 
30202
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
30203
 public :
 
30204
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
30205
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30206
};
 
30207
 
 
30208
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
30209
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
 
30210
 
 
30211
#line 30212 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30212
} // closed Puma
 
30213
class CCExprResolve;
 
30214
class CExprResolve;
 
30215
class WinIfExists;
 
30216
class WinImportHandler;
 
30217
class WinMacros;
 
30218
class WinAsm;
 
30219
class WinDeclSpecs;
 
30220
class WinMemberExplSpec;
 
30221
class WinTypeKeywords;
 
30222
class WinFriend;
 
30223
class ExtAC;
 
30224
class ExtACBuilderCoupling;
 
30225
class ExtACSyntaxCoupling;
 
30226
class ExtACTree;
 
30227
class ExtACKeywords;
 
30228
class ExtGnu;
 
30229
class PragmaOnceUnitState;
 
30230
class PragmaOnce;
 
30231
class CMatchSyntax;
 
30232
namespace Puma {
 
30233
 
 
30234
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30235
class CT_DesignatorSeq : public CT_List, public CSemValue {
 
30236
#line 30237 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30237
  friend class ::CCExprResolve;
 
30238
  friend class ::CExprResolve;
 
30239
  friend class ::WinIfExists;
 
30240
  friend class ::WinImportHandler;
 
30241
  friend class ::WinMacros;
 
30242
  friend class ::WinAsm;
 
30243
  friend class ::WinDeclSpecs;
 
30244
  friend class ::WinMemberExplSpec;
 
30245
  friend class ::WinTypeKeywords;
 
30246
  friend class ::WinFriend;
 
30247
  friend class ::ExtAC;
 
30248
  friend class ::ExtACBuilderCoupling;
 
30249
  friend class ::ExtACSyntaxCoupling;
 
30250
  friend class ::ExtACTree;
 
30251
  friend class ::ExtACKeywords;
 
30252
  friend class ::ExtGnu;
 
30253
  friend class ::PragmaOnceUnitState;
 
30254
  friend class ::PragmaOnce;
 
30255
  friend class ::CMatchSyntax;
 
30256
 
 
30257
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30258
 
 
30259
public:
 
30260
  /** Constructor.
 
30261
   *  \param size Initial number of designators. */
 
30262
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
30263
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30264
  static const char *NodeId ();
 
30265
  /** Get the name of the node. Can be compared with NodeId(). */
 
30266
  const char *NodeName () const { return NodeId (); }
 
30267
 
 
30268
  /** Get the type of the entity to initialize. */
 
30269
  CTypeInfo *Type () const { return type; }
 
30270
  /** Get the value of the entity to initialize. */
 
30271
  CExprValue *Value () const { return value; }
 
30272
  /** Get the semantic value object. */
 
30273
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
30274
};
 
30275
 
 
30276
/*****************************************************************************/
 
30277
/*                                                                           */
 
30278
/*                         Declaration specifiers                            */
 
30279
/*                                                                           */
 
30280
/*****************************************************************************/
 
30281
 
 
30282
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
30283
 *  Base class for all tree nodes representing declaration specifiers. */
 
30284
 
 
30285
#line 30286 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30286
} // closed Puma
 
30287
class CCExprResolve;
 
30288
class CExprResolve;
 
30289
class WinIfExists;
 
30290
class WinImportHandler;
 
30291
class WinMacros;
 
30292
class WinAsm;
 
30293
class WinDeclSpecs;
 
30294
class WinMemberExplSpec;
 
30295
class WinTypeKeywords;
 
30296
class WinFriend;
 
30297
class ExtAC;
 
30298
class ExtACBuilderCoupling;
 
30299
class ExtACSyntaxCoupling;
 
30300
class ExtACTree;
 
30301
class ExtACKeywords;
 
30302
class ExtGnu;
 
30303
class PragmaOnceUnitState;
 
30304
class PragmaOnce;
 
30305
class CMatchSyntax;
 
30306
namespace Puma {
 
30307
 
 
30308
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30309
class CT_DeclSpec : public CTree {
 
30310
#line 30311 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30311
  friend class ::CCExprResolve;
 
30312
  friend class ::CExprResolve;
 
30313
  friend class ::WinIfExists;
 
30314
  friend class ::WinImportHandler;
 
30315
  friend class ::WinMacros;
 
30316
  friend class ::WinAsm;
 
30317
  friend class ::WinDeclSpecs;
 
30318
  friend class ::WinMemberExplSpec;
 
30319
  friend class ::WinTypeKeywords;
 
30320
  friend class ::WinFriend;
 
30321
  friend class ::ExtAC;
 
30322
  friend class ::ExtACBuilderCoupling;
 
30323
  friend class ::ExtACSyntaxCoupling;
 
30324
  friend class ::ExtACTree;
 
30325
  friend class ::ExtACKeywords;
 
30326
  friend class ::ExtGnu;
 
30327
  friend class ::PragmaOnceUnitState;
 
30328
  friend class ::PragmaOnce;
 
30329
  friend class ::CMatchSyntax;
 
30330
 
 
30331
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30332
 
 
30333
protected:
 
30334
  /** Constructor. */
 
30335
  CT_DeclSpec () {}
 
30336
};
 
30337
 
 
30338
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
30339
 *  Tree node representing a primitive declaration specifier. */
 
30340
 
 
30341
#line 30342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30342
} // closed Puma
 
30343
class CCExprResolve;
 
30344
class CExprResolve;
 
30345
class WinIfExists;
 
30346
class WinImportHandler;
 
30347
class WinMacros;
 
30348
class WinAsm;
 
30349
class WinDeclSpecs;
 
30350
class WinMemberExplSpec;
 
30351
class WinTypeKeywords;
 
30352
class WinFriend;
 
30353
class ExtAC;
 
30354
class ExtACBuilderCoupling;
 
30355
class ExtACSyntaxCoupling;
 
30356
class ExtACTree;
 
30357
class ExtACKeywords;
 
30358
class ExtGnu;
 
30359
class PragmaOnceUnitState;
 
30360
class PragmaOnce;
 
30361
class CMatchSyntax;
 
30362
namespace Puma {
 
30363
 
 
30364
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30365
class CT_PrimDeclSpec : public CT_DeclSpec {
 
30366
#line 30367 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30367
  friend class ::CCExprResolve;
 
30368
  friend class ::CExprResolve;
 
30369
  friend class ::WinIfExists;
 
30370
  friend class ::WinImportHandler;
 
30371
  friend class ::WinMacros;
 
30372
  friend class ::WinAsm;
 
30373
  friend class ::WinDeclSpecs;
 
30374
  friend class ::WinMemberExplSpec;
 
30375
  friend class ::WinTypeKeywords;
 
30376
  friend class ::WinFriend;
 
30377
  friend class ::ExtAC;
 
30378
  friend class ::ExtACBuilderCoupling;
 
30379
  friend class ::ExtACSyntaxCoupling;
 
30380
  friend class ::ExtACTree;
 
30381
  friend class ::ExtACKeywords;
 
30382
  friend class ::ExtGnu;
 
30383
  friend class ::PragmaOnceUnitState;
 
30384
  friend class ::PragmaOnce;
 
30385
  friend class ::CMatchSyntax;
 
30386
 
 
30387
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30388
 
 
30389
public:
 
30390
  /** Declaration specifier types. */
 
30391
  enum Type { 
 
30392
    PDS_FRIEND,    /** friend */
 
30393
    PDS_TYPEDEF,   /** typedef */
 
30394
    PDS_AUTO,      /** auto */
 
30395
    PDS_REGISTER,  /** register */
 
30396
    PDS_STATIC,    /** static */
 
30397
    PDS_EXTERN,    /** extern */
 
30398
    PDS_MUTABLE,   /** mutable */
 
30399
    PDS_INLINE,    /** inline */
 
30400
    PDS_VIRTUAL,   /** virtual */
 
30401
    PDS_EXPLICIT,  /** explicit */
 
30402
    PDS_CONST,     /** const */
 
30403
    PDS_VOLATILE,  /** volatile */
 
30404
    PDS_RESTRICT,  /** restrict */
 
30405
    PDS_CHAR,      /** char */
 
30406
    PDS_WCHAR_T,   /** wchar_t */
 
30407
    PDS_BOOL,      /** bool */
 
30408
    PDS_SHORT,     /** short */
 
30409
    PDS_INT,       /** int */
 
30410
    PDS_LONG,      /** long */
 
30411
    PDS_SIGNED,    /** signed */
 
30412
    PDS_UNSIGNED,  /** unsigned */
 
30413
    PDS_FLOAT,     /** float */
 
30414
    PDS_DOUBLE,    /** double */
 
30415
    PDS_VOID,      /** void */
 
30416
    // AspectC++ specific type specifier
 
30417
    PDS_UNKNOWN_T, /** unknown_t */
 
30418
    // Win specific declaration specifiers
 
30419
    PDS_CDECL,     /** __cdecl */
 
30420
    PDS_STDCALL,   /** __stdcall */
 
30421
    PDS_FASTCALL,  /** __fastcall */
 
30422
    PDS_INT64,     /** __int64 */
 
30423
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
30424
    PDS_NUM        /** Number of declaration specifier types. */
 
30425
  };
 
30426
 
 
30427
private:
 
30428
  Type _type;
 
30429
  CTree *_token; // has to be a CT_Token
 
30430
 
 
30431
  void determine_type ();
 
30432
 
 
30433
public:
 
30434
  /** Constructor.
 
30435
   *  \param t The token containing the declaration specifier. */
 
30436
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
30437
  /** Constructor.
 
30438
   *  \param t The declaration specifier type. */
 
30439
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
30440
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30441
  static const char *NodeId ();
 
30442
  /** Get the name of the node. Can be compared with NodeId(). */
 
30443
  const char *NodeName () const { return NodeId (); }
 
30444
  /** Get the number of sons. */
 
30445
  int Sons () const { return _token ? 1 : 0; }
 
30446
  /** Get the n-th son.
 
30447
   *  \param n The index of the son.
 
30448
   *  \return The n-th son or NULL. */
 
30449
  CTree *Son (int n) const 
 
30450
   { return (n == 0) ? _token : (CTree*)0; }
 
30451
  /** Get the textual representation of the declaration specifier.
 
30452
   *  \return The string representation or " ". */
 
30453
  const char *SpecText () const 
 
30454
   { return _token ? _token->token ()->text () : " "; }
 
30455
  /** Get the declaration specifier type. */
 
30456
  Type SpecType () const { return _type; }
 
30457
  /** Number of declaration specifier types. */
 
30458
  static const int NumTypes = PDS_NUM;
 
30459
  /** Replace a son.
 
30460
   *  \param old_son The son to replace.
 
30461
   *  \param new_son The new son. */
 
30462
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
30463
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
30464
    determine_type ();
 
30465
  }
 
30466
};
 
30467
 
 
30468
/** \class CT_NamedType CTree.h Puma/CTree.h
 
30469
 *  Tree node representing a named type, e.g. (int*)a. 
 
30470
 *  where int* is a type with a generated name. */
 
30471
 
 
30472
#line 30473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30473
} // closed Puma
 
30474
class CCExprResolve;
 
30475
class CExprResolve;
 
30476
class WinIfExists;
 
30477
class WinImportHandler;
 
30478
class WinMacros;
 
30479
class WinAsm;
 
30480
class WinDeclSpecs;
 
30481
class WinMemberExplSpec;
 
30482
class WinTypeKeywords;
 
30483
class WinFriend;
 
30484
class ExtAC;
 
30485
class ExtACBuilderCoupling;
 
30486
class ExtACSyntaxCoupling;
 
30487
class ExtACTree;
 
30488
class ExtACKeywords;
 
30489
class ExtGnu;
 
30490
class PragmaOnceUnitState;
 
30491
class PragmaOnce;
 
30492
class CMatchSyntax;
 
30493
namespace Puma {
 
30494
 
 
30495
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30496
class CT_NamedType : public CT_DeclSpec, public CSemObject {
 
30497
#line 30498 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30498
  friend class ::CCExprResolve;
 
30499
  friend class ::CExprResolve;
 
30500
  friend class ::WinIfExists;
 
30501
  friend class ::WinImportHandler;
 
30502
  friend class ::WinMacros;
 
30503
  friend class ::WinAsm;
 
30504
  friend class ::WinDeclSpecs;
 
30505
  friend class ::WinMemberExplSpec;
 
30506
  friend class ::WinTypeKeywords;
 
30507
  friend class ::WinFriend;
 
30508
  friend class ::ExtAC;
 
30509
  friend class ::ExtACBuilderCoupling;
 
30510
  friend class ::ExtACSyntaxCoupling;
 
30511
  friend class ::ExtACTree;
 
30512
  friend class ::ExtACKeywords;
 
30513
  friend class ::ExtGnu;
 
30514
  friend class ::PragmaOnceUnitState;
 
30515
  friend class ::PragmaOnce;
 
30516
  friend class ::CMatchSyntax;
 
30517
 
 
30518
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30519
 
 
30520
  CTree *sons[2]; // declspecs, declarator
 
30521
 
 
30522
public:
 
30523
  /** Constructor.
 
30524
   *  \param dss The declaration specifier sequence of the type.
 
30525
   *  \param d The type declarator. */
 
30526
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
30527
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30528
  static const char *NodeId ();
 
30529
  /** Get the name of the node. Can be compared with NodeId(). */
 
30530
  const char *NodeName () const { return NodeId (); }
 
30531
  /** Get the number of sons. */
 
30532
  int Sons () const { return CTree::Sons (sons, 2); }
 
30533
  /** Get the n-th son.
 
30534
   *  \param n The index of the son.
 
30535
   *  \return The n-th son or NULL. */
 
30536
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
30537
  /** Get the declarator. */
 
30538
  CTree *Declarator () const { return sons[1]; }
 
30539
  /** Replace a son.
 
30540
   *  \param old_son The son to replace.
 
30541
   *  \param new_son The new son. */
 
30542
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
30543
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
30544
  }
 
30545
  /** Get the semantic information object. */
 
30546
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
30547
};
 
30548
      
 
30549
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
30550
 *  Tree node representing a class specifier, e.g. class X. */
 
30551
 
 
30552
#line 30553 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30553
} // closed Puma
 
30554
class CCExprResolve;
 
30555
class CExprResolve;
 
30556
class WinIfExists;
 
30557
class WinImportHandler;
 
30558
class WinMacros;
 
30559
class WinAsm;
 
30560
class WinDeclSpecs;
 
30561
class WinMemberExplSpec;
 
30562
class WinTypeKeywords;
 
30563
class WinFriend;
 
30564
class ExtAC;
 
30565
class ExtACBuilderCoupling;
 
30566
class ExtACSyntaxCoupling;
 
30567
class ExtACTree;
 
30568
class ExtACKeywords;
 
30569
class ExtGnu;
 
30570
class PragmaOnceUnitState;
 
30571
class PragmaOnce;
 
30572
class CMatchSyntax;
 
30573
namespace Puma {
 
30574
 
 
30575
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30576
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
 
30577
#line 30578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30578
  friend class ::CCExprResolve;
 
30579
  friend class ::CExprResolve;
 
30580
  friend class ::WinIfExists;
 
30581
  friend class ::WinImportHandler;
 
30582
  friend class ::WinMacros;
 
30583
  friend class ::WinAsm;
 
30584
  friend class ::WinDeclSpecs;
 
30585
  friend class ::WinMemberExplSpec;
 
30586
  friend class ::WinTypeKeywords;
 
30587
  friend class ::WinFriend;
 
30588
  friend class ::ExtAC;
 
30589
  friend class ::ExtACBuilderCoupling;
 
30590
  friend class ::ExtACSyntaxCoupling;
 
30591
  friend class ::ExtACTree;
 
30592
  friend class ::ExtACKeywords;
 
30593
  friend class ::ExtGnu;
 
30594
  friend class ::PragmaOnceUnitState;
 
30595
  friend class ::PragmaOnce;
 
30596
  friend class ::CMatchSyntax;
 
30597
 
 
30598
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30599
 
 
30600
  CTree *sons[2]; // key, name
 
30601
  
 
30602
public:
 
30603
  /** Constructor.
 
30604
   *  \param k The 'class' or 'struct' keyword.
 
30605
   *  \param n The class name. */
 
30606
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
30607
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30608
  static const char *NodeId ();
 
30609
  /** Get the name of the node. Can be compared with NodeId(). */
 
30610
  const char *NodeName () const { return NodeId (); }
 
30611
  /** Get the number of sons. */
 
30612
  int Sons () const { return 2; }
 
30613
  /** Get the n-th son.
 
30614
   *  \param n The index of the son.
 
30615
   *  \return The n-th son or NULL. */
 
30616
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
30617
  /** Get the class name. */
 
30618
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
30619
  /** Get the semantic information object. */
 
30620
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
30621
  /** Replace a son.
 
30622
   *  \param old_son The son to replace.
 
30623
   *  \param new_son The new son. */
 
30624
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
30625
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
30626
  }
 
30627
};
 
30628
 
 
30629
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
30630
 *  Tree node representing a union specifier, e.g. union X. */
 
30631
 
 
30632
#line 30633 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30633
} // closed Puma
 
30634
class CCExprResolve;
 
30635
class CExprResolve;
 
30636
class WinIfExists;
 
30637
class WinImportHandler;
 
30638
class WinMacros;
 
30639
class WinAsm;
 
30640
class WinDeclSpecs;
 
30641
class WinMemberExplSpec;
 
30642
class WinTypeKeywords;
 
30643
class WinFriend;
 
30644
class ExtAC;
 
30645
class ExtACBuilderCoupling;
 
30646
class ExtACSyntaxCoupling;
 
30647
class ExtACTree;
 
30648
class ExtACKeywords;
 
30649
class ExtGnu;
 
30650
class PragmaOnceUnitState;
 
30651
class PragmaOnce;
 
30652
class CMatchSyntax;
 
30653
namespace Puma {
 
30654
 
 
30655
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30656
class CT_UnionSpec : public CT_ClassSpec {
 
30657
#line 30658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30658
  friend class ::CCExprResolve;
 
30659
  friend class ::CExprResolve;
 
30660
  friend class ::WinIfExists;
 
30661
  friend class ::WinImportHandler;
 
30662
  friend class ::WinMacros;
 
30663
  friend class ::WinAsm;
 
30664
  friend class ::WinDeclSpecs;
 
30665
  friend class ::WinMemberExplSpec;
 
30666
  friend class ::WinTypeKeywords;
 
30667
  friend class ::WinFriend;
 
30668
  friend class ::ExtAC;
 
30669
  friend class ::ExtACBuilderCoupling;
 
30670
  friend class ::ExtACSyntaxCoupling;
 
30671
  friend class ::ExtACTree;
 
30672
  friend class ::ExtACKeywords;
 
30673
  friend class ::ExtGnu;
 
30674
  friend class ::PragmaOnceUnitState;
 
30675
  friend class ::PragmaOnce;
 
30676
  friend class ::CMatchSyntax;
 
30677
 
 
30678
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30679
 
 
30680
public:
 
30681
  /** Constructor.
 
30682
   *  \param k The 'union' keyword.
 
30683
   *  \param n The name of the union. */
 
30684
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
30685
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30686
  static const char *NodeId ();
 
30687
  /** Get the name of the node. Can be compared with NodeId(). */
 
30688
  const char *NodeName () const { return NodeId (); }
 
30689
};
 
30690
 
 
30691
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
30692
 *  Tree node representing an enumeration specifier, e.g. enum X. */
 
30693
 
 
30694
#line 30695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30695
} // closed Puma
 
30696
class CCExprResolve;
 
30697
class CExprResolve;
 
30698
class WinIfExists;
 
30699
class WinImportHandler;
 
30700
class WinMacros;
 
30701
class WinAsm;
 
30702
class WinDeclSpecs;
 
30703
class WinMemberExplSpec;
 
30704
class WinTypeKeywords;
 
30705
class WinFriend;
 
30706
class ExtAC;
 
30707
class ExtACBuilderCoupling;
 
30708
class ExtACSyntaxCoupling;
 
30709
class ExtACTree;
 
30710
class ExtACKeywords;
 
30711
class ExtGnu;
 
30712
class PragmaOnceUnitState;
 
30713
class PragmaOnce;
 
30714
class CMatchSyntax;
 
30715
namespace Puma {
 
30716
 
 
30717
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30718
class CT_EnumSpec : public CT_ClassSpec {
 
30719
#line 30720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30720
  friend class ::CCExprResolve;
 
30721
  friend class ::CExprResolve;
 
30722
  friend class ::WinIfExists;
 
30723
  friend class ::WinImportHandler;
 
30724
  friend class ::WinMacros;
 
30725
  friend class ::WinAsm;
 
30726
  friend class ::WinDeclSpecs;
 
30727
  friend class ::WinMemberExplSpec;
 
30728
  friend class ::WinTypeKeywords;
 
30729
  friend class ::WinFriend;
 
30730
  friend class ::ExtAC;
 
30731
  friend class ::ExtACBuilderCoupling;
 
30732
  friend class ::ExtACSyntaxCoupling;
 
30733
  friend class ::ExtACTree;
 
30734
  friend class ::ExtACKeywords;
 
30735
  friend class ::ExtGnu;
 
30736
  friend class ::PragmaOnceUnitState;
 
30737
  friend class ::PragmaOnce;
 
30738
  friend class ::CMatchSyntax;
 
30739
 
 
30740
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30741
 
 
30742
public:
 
30743
  /** Constructor.
 
30744
   *  \param k The 'enum' keyword. 
 
30745
   *  \param n The name of the enumeration. */
 
30746
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
30747
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30748
  static const char *NodeId ();
 
30749
  /** Get the name of the node. Can be compared with NodeId(). */
 
30750
  const char *NodeName () const { return NodeId (); }
 
30751
};
 
30752
 
 
30753
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
30754
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
 
30755
 
 
30756
#line 30757 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30757
} // closed Puma
 
30758
class CCExprResolve;
 
30759
class CExprResolve;
 
30760
class WinIfExists;
 
30761
class WinImportHandler;
 
30762
class WinMacros;
 
30763
class WinAsm;
 
30764
class WinDeclSpecs;
 
30765
class WinMemberExplSpec;
 
30766
class WinTypeKeywords;
 
30767
class WinFriend;
 
30768
class ExtAC;
 
30769
class ExtACBuilderCoupling;
 
30770
class ExtACSyntaxCoupling;
 
30771
class ExtACTree;
 
30772
class ExtACKeywords;
 
30773
class ExtGnu;
 
30774
class PragmaOnceUnitState;
 
30775
class PragmaOnce;
 
30776
class CMatchSyntax;
 
30777
namespace Puma {
 
30778
 
 
30779
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30780
class CT_ExceptionSpec : public CT_DeclSpec {
 
30781
#line 30782 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30782
  friend class ::CCExprResolve;
 
30783
  friend class ::CExprResolve;
 
30784
  friend class ::WinIfExists;
 
30785
  friend class ::WinImportHandler;
 
30786
  friend class ::WinMacros;
 
30787
  friend class ::WinAsm;
 
30788
  friend class ::WinDeclSpecs;
 
30789
  friend class ::WinMemberExplSpec;
 
30790
  friend class ::WinTypeKeywords;
 
30791
  friend class ::WinFriend;
 
30792
  friend class ::ExtAC;
 
30793
  friend class ::ExtACBuilderCoupling;
 
30794
  friend class ::ExtACSyntaxCoupling;
 
30795
  friend class ::ExtACTree;
 
30796
  friend class ::ExtACKeywords;
 
30797
  friend class ::ExtGnu;
 
30798
  friend class ::PragmaOnceUnitState;
 
30799
  friend class ::PragmaOnce;
 
30800
  friend class ::CMatchSyntax;
 
30801
 
 
30802
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30803
 
 
30804
  CTree *sons[2]; // throw, type_id_list
 
30805
  
 
30806
public:
 
30807
  /** Constructor.
 
30808
   *  \param k The 'throw' keyword.
 
30809
   *  \param l The type list for the exception type to throw. */
 
30810
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
30811
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30812
  static const char *NodeId ();
 
30813
  /** Get the name of the node. Can be compared with NodeId(). */
 
30814
  const char *NodeName () const { return NodeId (); }
 
30815
  /** Get the number of sons. */
 
30816
  int Sons () const { return 2; }
 
30817
  /** Get the n-th son.
 
30818
   *  \param n The index of the son.
 
30819
   *  \return The n-th son or NULL. */
 
30820
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
30821
  /** Get the exception type list. */
 
30822
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
30823
  /** Replace a son.
 
30824
   *  \param old_son The son to replace.
 
30825
   *  \param new_son The new son. */
 
30826
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
30827
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
30828
  }
 
30829
};
 
30830
 
 
30831
/*****************************************************************************/
 
30832
/*                                                                           */
 
30833
/*                              Declarations                                 */
 
30834
/*                                                                           */
 
30835
/*****************************************************************************/
 
30836
 
 
30837
/** \class CT_Decl CTree.h Puma/CTree.h
 
30838
 *  Base class for all tree nodes representing declarations. */
 
30839
 
 
30840
#line 30841 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30841
} // closed Puma
 
30842
class CCExprResolve;
 
30843
class CExprResolve;
 
30844
class WinIfExists;
 
30845
class WinImportHandler;
 
30846
class WinMacros;
 
30847
class WinAsm;
 
30848
class WinDeclSpecs;
 
30849
class WinMemberExplSpec;
 
30850
class WinTypeKeywords;
 
30851
class WinFriend;
 
30852
class ExtAC;
 
30853
class ExtACBuilderCoupling;
 
30854
class ExtACSyntaxCoupling;
 
30855
class ExtACTree;
 
30856
class ExtACKeywords;
 
30857
class ExtGnu;
 
30858
class PragmaOnceUnitState;
 
30859
class PragmaOnce;
 
30860
class CMatchSyntax;
 
30861
namespace Puma {
 
30862
 
 
30863
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30864
class CT_Decl : public CTree {
 
30865
#line 30866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30866
  friend class ::CCExprResolve;
 
30867
  friend class ::CExprResolve;
 
30868
  friend class ::WinIfExists;
 
30869
  friend class ::WinImportHandler;
 
30870
  friend class ::WinMacros;
 
30871
  friend class ::WinAsm;
 
30872
  friend class ::WinDeclSpecs;
 
30873
  friend class ::WinMemberExplSpec;
 
30874
  friend class ::WinTypeKeywords;
 
30875
  friend class ::WinFriend;
 
30876
  friend class ::ExtAC;
 
30877
  friend class ::ExtACBuilderCoupling;
 
30878
  friend class ::ExtACSyntaxCoupling;
 
30879
  friend class ::ExtACTree;
 
30880
  friend class ::ExtACKeywords;
 
30881
  friend class ::ExtGnu;
 
30882
  friend class ::PragmaOnceUnitState;
 
30883
  friend class ::PragmaOnce;
 
30884
  friend class ::CMatchSyntax;
 
30885
 
 
30886
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30887
 
 
30888
  CT_LinkageSpec *_linkage;
 
30889
  
 
30890
protected:
 
30891
  /** Constructor. */
 
30892
  CT_Decl () : _linkage (0) {}
 
30893
  
 
30894
public:
 
30895
  /** Set the linkage of the declared entity.
 
30896
   *  \param l The linkage specifiers. */
 
30897
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
30898
  /** Get the linkage specifiers. */
 
30899
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
30900
  /** Get this. */
 
30901
  virtual CT_Decl *IsDeclaration () { return this; }
 
30902
};
 
30903
 
 
30904
/** \class CT_Program CTree.h Puma/CTree.h
 
30905
 *  Root node of C/C++ syntax tree. */
 
30906
 
 
30907
#line 30908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30908
} // closed Puma
 
30909
class CCExprResolve;
 
30910
class CExprResolve;
 
30911
class WinIfExists;
 
30912
class WinImportHandler;
 
30913
class WinMacros;
 
30914
class WinAsm;
 
30915
class WinDeclSpecs;
 
30916
class WinMemberExplSpec;
 
30917
class WinTypeKeywords;
 
30918
class WinFriend;
 
30919
class ExtAC;
 
30920
class ExtACBuilderCoupling;
 
30921
class ExtACSyntaxCoupling;
 
30922
class ExtACTree;
 
30923
class ExtACKeywords;
 
30924
class ExtGnu;
 
30925
class PragmaOnceUnitState;
 
30926
class PragmaOnce;
 
30927
class CMatchSyntax;
 
30928
namespace Puma {
 
30929
 
 
30930
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30931
class CT_Program : public CT_DeclList, public CSemScope {
 
30932
#line 30933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30933
  friend class ::CCExprResolve;
 
30934
  friend class ::CExprResolve;
 
30935
  friend class ::WinIfExists;
 
30936
  friend class ::WinImportHandler;
 
30937
  friend class ::WinMacros;
 
30938
  friend class ::WinAsm;
 
30939
  friend class ::WinDeclSpecs;
 
30940
  friend class ::WinMemberExplSpec;
 
30941
  friend class ::WinTypeKeywords;
 
30942
  friend class ::WinFriend;
 
30943
  friend class ::ExtAC;
 
30944
  friend class ::ExtACBuilderCoupling;
 
30945
  friend class ::ExtACSyntaxCoupling;
 
30946
  friend class ::ExtACTree;
 
30947
  friend class ::ExtACKeywords;
 
30948
  friend class ::ExtGnu;
 
30949
  friend class ::PragmaOnceUnitState;
 
30950
  friend class ::PragmaOnce;
 
30951
  friend class ::CMatchSyntax;
 
30952
 
 
30953
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30954
 
 
30955
public:
 
30956
  /** Constructor.
 
30957
   *  \param size The initial number of declarations in the program.
 
30958
   *  \param incr The initial increment count. */
 
30959
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
30960
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
30961
  static const char *NodeId ();
 
30962
  /** Get the name of the node. Can be compared with NodeId(). */
 
30963
  const char *NodeName () const { return NodeId (); }
 
30964
  /** Get the semantic scope object. */
 
30965
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
30966
};
 
30967
   
 
30968
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
30969
 *  Tree node representing an object declaration, e.g. int *i. */
 
30970
 
 
30971
#line 30972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30972
} // closed Puma
 
30973
class CCExprResolve;
 
30974
class CExprResolve;
 
30975
class WinIfExists;
 
30976
class WinImportHandler;
 
30977
class WinMacros;
 
30978
class WinAsm;
 
30979
class WinDeclSpecs;
 
30980
class WinMemberExplSpec;
 
30981
class WinTypeKeywords;
 
30982
class WinFriend;
 
30983
class ExtAC;
 
30984
class ExtACBuilderCoupling;
 
30985
class ExtACSyntaxCoupling;
 
30986
class ExtACTree;
 
30987
class ExtACKeywords;
 
30988
class ExtGnu;
 
30989
class PragmaOnceUnitState;
 
30990
class PragmaOnce;
 
30991
class CMatchSyntax;
 
30992
namespace Puma {
 
30993
 
 
30994
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
30995
class CT_ObjDecl : public CT_Decl {
 
30996
#line 30997 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
30997
  friend class ::CCExprResolve;
 
30998
  friend class ::CExprResolve;
 
30999
  friend class ::WinIfExists;
 
31000
  friend class ::WinImportHandler;
 
31001
  friend class ::WinMacros;
 
31002
  friend class ::WinAsm;
 
31003
  friend class ::WinDeclSpecs;
 
31004
  friend class ::WinMemberExplSpec;
 
31005
  friend class ::WinTypeKeywords;
 
31006
  friend class ::WinFriend;
 
31007
  friend class ::ExtAC;
 
31008
  friend class ::ExtACBuilderCoupling;
 
31009
  friend class ::ExtACSyntaxCoupling;
 
31010
  friend class ::ExtACTree;
 
31011
  friend class ::ExtACKeywords;
 
31012
  friend class ::ExtGnu;
 
31013
  friend class ::PragmaOnceUnitState;
 
31014
  friend class ::PragmaOnce;
 
31015
  friend class ::CMatchSyntax;
 
31016
 
 
31017
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31018
 
 
31019
  CTree *sons[3]; // declspecs, declarators, colon
 
31020
 
 
31021
public:
 
31022
  /** Constructor.
 
31023
   *  \param dsl The declaration specifier sequence.
 
31024
   *  \param dl The declarator list.
 
31025
   *  \param c Optional colon. */
 
31026
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
 
31027
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
 
31028
  }
 
31029
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31030
  static const char *NodeId ();
 
31031
  /** Get the name of the node. Can be compared with NodeId(). */
 
31032
  const char *NodeName () const { return NodeId (); }
 
31033
  /** Get the number of sons. */
 
31034
  int Sons () const { return 3; }
 
31035
  /** Get the n-th son.
 
31036
   *  \param n The index of the son.
 
31037
   *  \return The n-th son or NULL. */
 
31038
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
31039
  /** Get the declaration specifier sequence. */
 
31040
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
31041
  /** Get the declarator list. */
 
31042
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
31043
  /** Replace a son.
 
31044
   *  \param old_son The son to replace.
 
31045
   *  \param new_son The new son. */
 
31046
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
31047
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
31048
  }
 
31049
};
 
31050
 
 
31051
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
31052
 *  Tree node representing a template declaration. */
 
31053
 
 
31054
#line 31055 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31055
} // closed Puma
 
31056
class CCExprResolve;
 
31057
class CExprResolve;
 
31058
class WinIfExists;
 
31059
class WinImportHandler;
 
31060
class WinMacros;
 
31061
class WinAsm;
 
31062
class WinDeclSpecs;
 
31063
class WinMemberExplSpec;
 
31064
class WinTypeKeywords;
 
31065
class WinFriend;
 
31066
class ExtAC;
 
31067
class ExtACBuilderCoupling;
 
31068
class ExtACSyntaxCoupling;
 
31069
class ExtACTree;
 
31070
class ExtACKeywords;
 
31071
class ExtGnu;
 
31072
class PragmaOnceUnitState;
 
31073
class PragmaOnce;
 
31074
class CMatchSyntax;
 
31075
namespace Puma {
 
31076
 
 
31077
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31078
class CT_TemplateDecl : public CT_Decl, public CSemScope {
 
31079
#line 31080 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31080
  friend class ::CCExprResolve;
 
31081
  friend class ::CExprResolve;
 
31082
  friend class ::WinIfExists;
 
31083
  friend class ::WinImportHandler;
 
31084
  friend class ::WinMacros;
 
31085
  friend class ::WinAsm;
 
31086
  friend class ::WinDeclSpecs;
 
31087
  friend class ::WinMemberExplSpec;
 
31088
  friend class ::WinTypeKeywords;
 
31089
  friend class ::WinFriend;
 
31090
  friend class ::ExtAC;
 
31091
  friend class ::ExtACBuilderCoupling;
 
31092
  friend class ::ExtACSyntaxCoupling;
 
31093
  friend class ::ExtACTree;
 
31094
  friend class ::ExtACKeywords;
 
31095
  friend class ::ExtGnu;
 
31096
  friend class ::PragmaOnceUnitState;
 
31097
  friend class ::PragmaOnce;
 
31098
  friend class ::CMatchSyntax;
 
31099
 
 
31100
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31101
 
 
31102
  CTree *sons[3]; // export, param_list, decl
 
31103
 
 
31104
public:
 
31105
  /** Constructor.
 
31106
   *  \param e Optional 'export' keyword. 
 
31107
   *  \param p The template parameter list.
 
31108
   *  \param d The class or function declaration. */
 
31109
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
 
31110
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
 
31111
  }
 
31112
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31113
  static const char *NodeId ();
 
31114
  /** Get the name of the node. Can be compared with NodeId(). */
 
31115
  const char *NodeName () const { return NodeId (); }
 
31116
  /** Get the number of sons. */
 
31117
  int Sons () const { return CTree::Sons (sons, 3); }
 
31118
  /** Get the n-th son.
 
31119
   *  \param n The index of the son.
 
31120
   *  \return The n-th son or NULL. */
 
31121
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
31122
  /** Replace a son.
 
31123
   *  \param old_son The son to replace.
 
31124
   *  \param new_son The new son. */
 
31125
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
31126
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
 
31127
  }
 
31128
  /** Get the 'export' keyword. */
 
31129
  CTree *Export () const { return sons[0]; }
 
31130
  /** Get the template parameter list. */
 
31131
  CT_TemplateParamList *Parameters () const { 
 
31132
    return (CT_TemplateParamList*)sons[1]; 
 
31133
  }
 
31134
  /** Get the class or function declaration. */
 
31135
  CTree *Declaration () const { return sons[2]; }
 
31136
  /** Get the semantic scope object. */
 
31137
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
31138
};
 
31139
 
 
31140
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
31141
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
 
31142
 
 
31143
#line 31144 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31144
} // closed Puma
 
31145
class CCExprResolve;
 
31146
class CExprResolve;
 
31147
class WinIfExists;
 
31148
class WinImportHandler;
 
31149
class WinMacros;
 
31150
class WinAsm;
 
31151
class WinDeclSpecs;
 
31152
class WinMemberExplSpec;
 
31153
class WinTypeKeywords;
 
31154
class WinFriend;
 
31155
class ExtAC;
 
31156
class ExtACBuilderCoupling;
 
31157
class ExtACSyntaxCoupling;
 
31158
class ExtACTree;
 
31159
class ExtACKeywords;
 
31160
class ExtGnu;
 
31161
class PragmaOnceUnitState;
 
31162
class PragmaOnce;
 
31163
class CMatchSyntax;
 
31164
namespace Puma {
 
31165
 
 
31166
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31167
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
 
31168
#line 31169 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31169
  friend class ::CCExprResolve;
 
31170
  friend class ::CExprResolve;
 
31171
  friend class ::WinIfExists;
 
31172
  friend class ::WinImportHandler;
 
31173
  friend class ::WinMacros;
 
31174
  friend class ::WinAsm;
 
31175
  friend class ::WinDeclSpecs;
 
31176
  friend class ::WinMemberExplSpec;
 
31177
  friend class ::WinTypeKeywords;
 
31178
  friend class ::WinFriend;
 
31179
  friend class ::ExtAC;
 
31180
  friend class ::ExtACBuilderCoupling;
 
31181
  friend class ::ExtACSyntaxCoupling;
 
31182
  friend class ::ExtACTree;
 
31183
  friend class ::ExtACKeywords;
 
31184
  friend class ::ExtGnu;
 
31185
  friend class ::PragmaOnceUnitState;
 
31186
  friend class ::PragmaOnce;
 
31187
  friend class ::CMatchSyntax;
 
31188
 
 
31189
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31190
 
 
31191
protected:
 
31192
  /** Constructor. */
 
31193
  CT_TemplateParamDecl () {}
 
31194
  
 
31195
public:
 
31196
  /** Get the template default argument. */
 
31197
  virtual CT_ExprList *DefaultArgument () const = 0;
 
31198
  /** Get the semantic information object. */
 
31199
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
31200
};
 
31201
 
 
31202
 
 
31203
#line 31204 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31204
} // closed Puma
 
31205
class CCExprResolve;
 
31206
class CExprResolve;
 
31207
class WinIfExists;
 
31208
class WinImportHandler;
 
31209
class WinMacros;
 
31210
class WinAsm;
 
31211
class WinDeclSpecs;
 
31212
class WinMemberExplSpec;
 
31213
class WinTypeKeywords;
 
31214
class WinFriend;
 
31215
class ExtAC;
 
31216
class ExtACBuilderCoupling;
 
31217
class ExtACSyntaxCoupling;
 
31218
class ExtACTree;
 
31219
class ExtACKeywords;
 
31220
class ExtGnu;
 
31221
class PragmaOnceUnitState;
 
31222
class PragmaOnce;
 
31223
class CMatchSyntax;
 
31224
namespace Puma {
 
31225
 
 
31226
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31227
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
 
31228
#line 31229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31229
  friend class ::CCExprResolve;
 
31230
  friend class ::CExprResolve;
 
31231
  friend class ::WinIfExists;
 
31232
  friend class ::WinImportHandler;
 
31233
  friend class ::WinMacros;
 
31234
  friend class ::WinAsm;
 
31235
  friend class ::WinDeclSpecs;
 
31236
  friend class ::WinMemberExplSpec;
 
31237
  friend class ::WinTypeKeywords;
 
31238
  friend class ::WinFriend;
 
31239
  friend class ::ExtAC;
 
31240
  friend class ::ExtACBuilderCoupling;
 
31241
  friend class ::ExtACSyntaxCoupling;
 
31242
  friend class ::ExtACTree;
 
31243
  friend class ::ExtACKeywords;
 
31244
  friend class ::ExtGnu;
 
31245
  friend class ::PragmaOnceUnitState;
 
31246
  friend class ::PragmaOnce;
 
31247
  friend class ::CMatchSyntax;
 
31248
 
 
31249
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31250
 
 
31251
  CTree *sons[3]; // declspecs, declarator, init
 
31252
 
 
31253
public:
 
31254
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
 
31255
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
 
31256
  }
 
31257
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31258
  static const char *NodeId ();
 
31259
  /** Get the name of the node. Can be compared with NodeId(). */
 
31260
  const char *NodeName () const { return NodeId (); }
 
31261
  /** Get the number of sons. */
 
31262
  int Sons () const { return CTree::Sons (sons, 3); }
 
31263
  /** Get the n-th son.
 
31264
   *  \param n The index of the son.
 
31265
   *  \return The n-th son or NULL. */
 
31266
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
31267
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
31268
  CTree *Declarator () const { return sons[1]; }
 
31269
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
 
31270
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
31271
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
31272
  /** Replace a son.
 
31273
   *  \param old_son The son to replace.
 
31274
   *  \param new_son The new son. */
 
31275
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
31276
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
31277
  }
 
31278
};
 
31279
 
 
31280
 
 
31281
#line 31282 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31282
} // closed Puma
 
31283
class CCExprResolve;
 
31284
class CExprResolve;
 
31285
class WinIfExists;
 
31286
class WinImportHandler;
 
31287
class WinMacros;
 
31288
class WinAsm;
 
31289
class WinDeclSpecs;
 
31290
class WinMemberExplSpec;
 
31291
class WinTypeKeywords;
 
31292
class WinFriend;
 
31293
class ExtAC;
 
31294
class ExtACBuilderCoupling;
 
31295
class ExtACSyntaxCoupling;
 
31296
class ExtACTree;
 
31297
class ExtACKeywords;
 
31298
class ExtGnu;
 
31299
class PragmaOnceUnitState;
 
31300
class PragmaOnce;
 
31301
class CMatchSyntax;
 
31302
namespace Puma {
 
31303
 
 
31304
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31305
class CT_TypeParamDecl : public CT_TemplateParamDecl {
 
31306
#line 31307 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31307
  friend class ::CCExprResolve;
 
31308
  friend class ::CExprResolve;
 
31309
  friend class ::WinIfExists;
 
31310
  friend class ::WinImportHandler;
 
31311
  friend class ::WinMacros;
 
31312
  friend class ::WinAsm;
 
31313
  friend class ::WinDeclSpecs;
 
31314
  friend class ::WinMemberExplSpec;
 
31315
  friend class ::WinTypeKeywords;
 
31316
  friend class ::WinFriend;
 
31317
  friend class ::ExtAC;
 
31318
  friend class ::ExtACBuilderCoupling;
 
31319
  friend class ::ExtACSyntaxCoupling;
 
31320
  friend class ::ExtACTree;
 
31321
  friend class ::ExtACKeywords;
 
31322
  friend class ::ExtGnu;
 
31323
  friend class ::PragmaOnceUnitState;
 
31324
  friend class ::PragmaOnce;
 
31325
  friend class ::CMatchSyntax;
 
31326
 
 
31327
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31328
 
 
31329
  CTree *sons[4]; // params, key, id, init
 
31330
 
 
31331
public:
 
31332
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
 
31333
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
31334
    AddSon (sons[2], id); AddSon (sons[3], i);
 
31335
  }
 
31336
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31337
  static const char *NodeId ();
 
31338
  /** Get the name of the node. Can be compared with NodeId(). */
 
31339
  const char *NodeName () const { return NodeId (); }
 
31340
  /** Get the number of sons. */
 
31341
  int Sons () const { return CTree::Sons (sons, 4); }
 
31342
  /** Get the n-th son.
 
31343
   *  \param n The index of the son.
 
31344
   *  \return The n-th son or NULL. */
 
31345
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
31346
  CT_TemplateParamList *Parameters () const { 
 
31347
    return (CT_TemplateParamList*)sons[0]; 
 
31348
  }
 
31349
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
31350
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
 
31351
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
31352
  /** Replace a son.
 
31353
   *  \param old_son The son to replace.
 
31354
   *  \param new_son The new son. */
 
31355
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
31356
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
31357
  }
 
31358
};
 
31359
 
 
31360
 
 
31361
#line 31362 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31362
} // closed Puma
 
31363
class CCExprResolve;
 
31364
class CExprResolve;
 
31365
class WinIfExists;
 
31366
class WinImportHandler;
 
31367
class WinMacros;
 
31368
class WinAsm;
 
31369
class WinDeclSpecs;
 
31370
class WinMemberExplSpec;
 
31371
class WinTypeKeywords;
 
31372
class WinFriend;
 
31373
class ExtAC;
 
31374
class ExtACBuilderCoupling;
 
31375
class ExtACSyntaxCoupling;
 
31376
class ExtACTree;
 
31377
class ExtACKeywords;
 
31378
class ExtGnu;
 
31379
class PragmaOnceUnitState;
 
31380
class PragmaOnce;
 
31381
class CMatchSyntax;
 
31382
namespace Puma {
 
31383
 
 
31384
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31385
class CT_EnumDef : public CT_Decl, public CSemObject {
 
31386
#line 31387 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31387
  friend class ::CCExprResolve;
 
31388
  friend class ::CExprResolve;
 
31389
  friend class ::WinIfExists;
 
31390
  friend class ::WinImportHandler;
 
31391
  friend class ::WinMacros;
 
31392
  friend class ::WinAsm;
 
31393
  friend class ::WinDeclSpecs;
 
31394
  friend class ::WinMemberExplSpec;
 
31395
  friend class ::WinTypeKeywords;
 
31396
  friend class ::WinFriend;
 
31397
  friend class ::ExtAC;
 
31398
  friend class ::ExtACBuilderCoupling;
 
31399
  friend class ::ExtACSyntaxCoupling;
 
31400
  friend class ::ExtACTree;
 
31401
  friend class ::ExtACKeywords;
 
31402
  friend class ::ExtGnu;
 
31403
  friend class ::PragmaOnceUnitState;
 
31404
  friend class ::PragmaOnce;
 
31405
  friend class ::CMatchSyntax;
 
31406
 
 
31407
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31408
 
 
31409
  CTree *sons[3]; // key, name, enumerators
 
31410
 
 
31411
public:
 
31412
  CT_EnumDef (CTree *k, CTree *n) {
 
31413
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
 
31414
  }
 
31415
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31416
  static const char *NodeId ();
 
31417
  /** Get the name of the node. Can be compared with NodeId(). */
 
31418
  const char *NodeName () const { return NodeId (); }
 
31419
  /** Get the number of sons. */
 
31420
  int Sons () const { return CTree::Sons (sons, 3); }
 
31421
  /** Get the n-th son.
 
31422
   *  \param n The index of the son.
 
31423
   *  \return The n-th son or NULL. */
 
31424
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
31425
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
31426
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
 
31427
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
31428
  /** Replace a son.
 
31429
   *  \param old_son The son to replace.
 
31430
   *  \param new_son The new son. */
 
31431
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
31432
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
31433
  }
 
31434
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
31435
};
 
31436
 
 
31437
 
 
31438
#line 31439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31439
} // closed Puma
 
31440
class CCExprResolve;
 
31441
class CExprResolve;
 
31442
class WinIfExists;
 
31443
class WinImportHandler;
 
31444
class WinMacros;
 
31445
class WinAsm;
 
31446
class WinDeclSpecs;
 
31447
class WinMemberExplSpec;
 
31448
class WinTypeKeywords;
 
31449
class WinFriend;
 
31450
class ExtAC;
 
31451
class ExtACBuilderCoupling;
 
31452
class ExtACSyntaxCoupling;
 
31453
class ExtACTree;
 
31454
class ExtACKeywords;
 
31455
class ExtGnu;
 
31456
class PragmaOnceUnitState;
 
31457
class PragmaOnce;
 
31458
class CMatchSyntax;
 
31459
namespace Puma {
 
31460
 
 
31461
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31462
class CT_Enumerator : public CT_Decl, public CSemObject {
 
31463
#line 31464 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31464
  friend class ::CCExprResolve;
 
31465
  friend class ::CExprResolve;
 
31466
  friend class ::WinIfExists;
 
31467
  friend class ::WinImportHandler;
 
31468
  friend class ::WinMacros;
 
31469
  friend class ::WinAsm;
 
31470
  friend class ::WinDeclSpecs;
 
31471
  friend class ::WinMemberExplSpec;
 
31472
  friend class ::WinTypeKeywords;
 
31473
  friend class ::WinFriend;
 
31474
  friend class ::ExtAC;
 
31475
  friend class ::ExtACBuilderCoupling;
 
31476
  friend class ::ExtACSyntaxCoupling;
 
31477
  friend class ::ExtACTree;
 
31478
  friend class ::ExtACKeywords;
 
31479
  friend class ::ExtGnu;
 
31480
  friend class ::PragmaOnceUnitState;
 
31481
  friend class ::PragmaOnce;
 
31482
  friend class ::CMatchSyntax;
 
31483
 
 
31484
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31485
 
 
31486
  CTree *sons[2]; // name, init
 
31487
 
 
31488
public:
 
31489
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
31490
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31491
  static const char *NodeId ();
 
31492
  /** Get the name of the node. Can be compared with NodeId(). */
 
31493
  const char *NodeName () const { return NodeId (); }
 
31494
  /** Get the number of sons. */
 
31495
  int Sons () const { return CTree::Sons (sons, 2); }
 
31496
  /** Get the n-th son.
 
31497
   *  \param n The index of the son.
 
31498
   *  \return The n-th son or NULL. */
 
31499
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
31500
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
31501
  void Initializer (CTree *i) { AddSon (sons[1], i); }
 
31502
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
31503
  /** Replace a son.
 
31504
   *  \param old_son The son to replace.
 
31505
   *  \param new_son The new son. */
 
31506
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
31507
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
 
31508
  }
 
31509
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
31510
};
 
31511
 
 
31512
 
 
31513
#line 31514 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31514
} // closed Puma
 
31515
class CCExprResolve;
 
31516
class CExprResolve;
 
31517
class WinIfExists;
 
31518
class WinImportHandler;
 
31519
class WinMacros;
 
31520
class WinAsm;
 
31521
class WinDeclSpecs;
 
31522
class WinMemberExplSpec;
 
31523
class WinTypeKeywords;
 
31524
class WinFriend;
 
31525
class ExtAC;
 
31526
class ExtACBuilderCoupling;
 
31527
class ExtACSyntaxCoupling;
 
31528
class ExtACTree;
 
31529
class ExtACKeywords;
 
31530
class ExtGnu;
 
31531
class PragmaOnceUnitState;
 
31532
class PragmaOnce;
 
31533
class CMatchSyntax;
 
31534
namespace Puma {
 
31535
 
 
31536
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31537
class CT_FctDef : public CT_Decl, public CSemObject {
 
31538
#line 31539 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31539
  friend class ::CCExprResolve;
 
31540
  friend class ::CExprResolve;
 
31541
  friend class ::WinIfExists;
 
31542
  friend class ::WinImportHandler;
 
31543
  friend class ::WinMacros;
 
31544
  friend class ::WinAsm;
 
31545
  friend class ::WinDeclSpecs;
 
31546
  friend class ::WinMemberExplSpec;
 
31547
  friend class ::WinTypeKeywords;
 
31548
  friend class ::WinFriend;
 
31549
  friend class ::ExtAC;
 
31550
  friend class ::ExtACBuilderCoupling;
 
31551
  friend class ::ExtACSyntaxCoupling;
 
31552
  friend class ::ExtACTree;
 
31553
  friend class ::ExtACKeywords;
 
31554
  friend class ::ExtGnu;
 
31555
  friend class ::PragmaOnceUnitState;
 
31556
  friend class ::PragmaOnce;
 
31557
  friend class ::CMatchSyntax;
 
31558
 
 
31559
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31560
 
 
31561
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
 
31562
 
 
31563
public:
 
31564
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
 
31565
             CTree *b, CTree *hs) {
 
31566
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
31567
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
31568
    AddSon (sons[6], hs); 
 
31569
  }
 
31570
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31571
  static const char *NodeId ();
 
31572
  /** Get the name of the node. Can be compared with NodeId(). */
 
31573
  const char *NodeName () const { return NodeId (); }
 
31574
  /** Get the number of sons. */
 
31575
  int Sons () const { return CTree::Sons (sons, 7); }
 
31576
  /** Get the n-th son.
 
31577
   *  \param n The index of the son.
 
31578
   *  \return The n-th son or NULL. */
 
31579
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
31580
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
31581
  CTree *Declarator () const { return sons[1]; }
 
31582
  CT_Token *TryKey () const { return (CT_Token*)sons[2]; }
 
31583
  CTree *CtorInit () const { return sons[3]; }
 
31584
  CT_ArgDeclSeq *ArgDeclSeq () const { return (CT_ArgDeclSeq*)sons[4]; }
 
31585
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
 
31586
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
 
31587
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
31588
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
31589
  void Body (CTree *b) { AddSon (sons[5], b); }
 
31590
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
 
31591
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
31592
    AddSon (sons[5], b); AddSon (sons[6], h);
 
31593
  }
 
31594
  /** Replace a son.
 
31595
   *  \param old_son The son to replace.
 
31596
   *  \param new_son The new son. */
 
31597
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
31598
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
31599
  }
 
31600
};
 
31601
 
 
31602
 
 
31603
#line 31604 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31604
} // closed Puma
 
31605
class CCExprResolve;
 
31606
class CExprResolve;
 
31607
class WinIfExists;
 
31608
class WinImportHandler;
 
31609
class WinMacros;
 
31610
class WinAsm;
 
31611
class WinDeclSpecs;
 
31612
class WinMemberExplSpec;
 
31613
class WinTypeKeywords;
 
31614
class WinFriend;
 
31615
class ExtAC;
 
31616
class ExtACBuilderCoupling;
 
31617
class ExtACSyntaxCoupling;
 
31618
class ExtACTree;
 
31619
class ExtACKeywords;
 
31620
class ExtGnu;
 
31621
class PragmaOnceUnitState;
 
31622
class PragmaOnce;
 
31623
class CMatchSyntax;
 
31624
namespace Puma {
 
31625
 
 
31626
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31627
class CT_AsmDef : public CT_Decl {
 
31628
#line 31629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31629
  friend class ::CCExprResolve;
 
31630
  friend class ::CExprResolve;
 
31631
  friend class ::WinIfExists;
 
31632
  friend class ::WinImportHandler;
 
31633
  friend class ::WinMacros;
 
31634
  friend class ::WinAsm;
 
31635
  friend class ::WinDeclSpecs;
 
31636
  friend class ::WinMemberExplSpec;
 
31637
  friend class ::WinTypeKeywords;
 
31638
  friend class ::WinFriend;
 
31639
  friend class ::ExtAC;
 
31640
  friend class ::ExtACBuilderCoupling;
 
31641
  friend class ::ExtACSyntaxCoupling;
 
31642
  friend class ::ExtACTree;
 
31643
  friend class ::ExtACKeywords;
 
31644
  friend class ::ExtGnu;
 
31645
  friend class ::PragmaOnceUnitState;
 
31646
  friend class ::PragmaOnce;
 
31647
  friend class ::CMatchSyntax;
 
31648
 
 
31649
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31650
 
 
31651
  CTree *sons[5]; // asm, open, str, close, semi_colon
 
31652
 
 
31653
public:
 
31654
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
 
31655
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
31656
    AddSon (sons[3], c); AddSon (sons[4], sc); 
 
31657
  }
 
31658
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31659
  static const char *NodeId ();
 
31660
  /** Get the name of the node. Can be compared with NodeId(). */
 
31661
  const char *NodeName () const { return NodeId (); }
 
31662
  /** Get the number of sons. */
 
31663
  int Sons () const { return 5; }
 
31664
  /** Get the n-th son.
 
31665
   *  \param n The index of the son.
 
31666
   *  \return The n-th son or NULL. */
 
31667
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
31668
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
31669
  /** Replace a son.
 
31670
   *  \param old_son The son to replace.
 
31671
   *  \param new_son The new son. */
 
31672
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
31673
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
31674
  }
 
31675
};
 
31676
 
 
31677
 
 
31678
#line 31679 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31679
} // closed Puma
 
31680
class CCExprResolve;
 
31681
class CExprResolve;
 
31682
class WinIfExists;
 
31683
class WinImportHandler;
 
31684
class WinMacros;
 
31685
class WinAsm;
 
31686
class WinDeclSpecs;
 
31687
class WinMemberExplSpec;
 
31688
class WinTypeKeywords;
 
31689
class WinFriend;
 
31690
class ExtAC;
 
31691
class ExtACBuilderCoupling;
 
31692
class ExtACSyntaxCoupling;
 
31693
class ExtACTree;
 
31694
class ExtACKeywords;
 
31695
class ExtGnu;
 
31696
class PragmaOnceUnitState;
 
31697
class PragmaOnce;
 
31698
class CMatchSyntax;
 
31699
namespace Puma {
 
31700
 
 
31701
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31702
class CT_Handler : public CT_Decl, public CSemScope {
 
31703
#line 31704 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31704
  friend class ::CCExprResolve;
 
31705
  friend class ::CExprResolve;
 
31706
  friend class ::WinIfExists;
 
31707
  friend class ::WinImportHandler;
 
31708
  friend class ::WinMacros;
 
31709
  friend class ::WinAsm;
 
31710
  friend class ::WinDeclSpecs;
 
31711
  friend class ::WinMemberExplSpec;
 
31712
  friend class ::WinTypeKeywords;
 
31713
  friend class ::WinFriend;
 
31714
  friend class ::ExtAC;
 
31715
  friend class ::ExtACBuilderCoupling;
 
31716
  friend class ::ExtACSyntaxCoupling;
 
31717
  friend class ::ExtACTree;
 
31718
  friend class ::ExtACKeywords;
 
31719
  friend class ::ExtGnu;
 
31720
  friend class ::PragmaOnceUnitState;
 
31721
  friend class ::PragmaOnce;
 
31722
  friend class ::CMatchSyntax;
 
31723
 
 
31724
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31725
 
 
31726
  CTree *sons[3]; // catch, exception_decl, stmt
 
31727
 
 
31728
public:
 
31729
  CT_Handler (CTree *c, CTree *e, CTree *s) {
 
31730
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
 
31731
  }
 
31732
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31733
  static const char *NodeId ();
 
31734
  /** Get the name of the node. Can be compared with NodeId(). */
 
31735
  const char *NodeName () const { return NodeId (); }
 
31736
  /** Get the number of sons. */
 
31737
  int Sons () const { return 3; }
 
31738
  /** Get the n-th son.
 
31739
   *  \param n The index of the son.
 
31740
   *  \return The n-th son or NULL. */
 
31741
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
31742
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
31743
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
31744
  /** Replace a son.
 
31745
   *  \param old_son The son to replace.
 
31746
   *  \param new_son The new son. */
 
31747
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
31748
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
31749
  }
 
31750
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
31751
};
 
31752
 
 
31753
 
 
31754
#line 31755 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31755
} // closed Puma
 
31756
class CCExprResolve;
 
31757
class CExprResolve;
 
31758
class WinIfExists;
 
31759
class WinImportHandler;
 
31760
class WinMacros;
 
31761
class WinAsm;
 
31762
class WinDeclSpecs;
 
31763
class WinMemberExplSpec;
 
31764
class WinTypeKeywords;
 
31765
class WinFriend;
 
31766
class ExtAC;
 
31767
class ExtACBuilderCoupling;
 
31768
class ExtACSyntaxCoupling;
 
31769
class ExtACTree;
 
31770
class ExtACKeywords;
 
31771
class ExtGnu;
 
31772
class PragmaOnceUnitState;
 
31773
class PragmaOnce;
 
31774
class CMatchSyntax;
 
31775
namespace Puma {
 
31776
 
 
31777
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31778
class CT_LinkageSpec : public CT_Decl {
 
31779
#line 31780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31780
  friend class ::CCExprResolve;
 
31781
  friend class ::CExprResolve;
 
31782
  friend class ::WinIfExists;
 
31783
  friend class ::WinImportHandler;
 
31784
  friend class ::WinMacros;
 
31785
  friend class ::WinAsm;
 
31786
  friend class ::WinDeclSpecs;
 
31787
  friend class ::WinMemberExplSpec;
 
31788
  friend class ::WinTypeKeywords;
 
31789
  friend class ::WinFriend;
 
31790
  friend class ::ExtAC;
 
31791
  friend class ::ExtACBuilderCoupling;
 
31792
  friend class ::ExtACSyntaxCoupling;
 
31793
  friend class ::ExtACTree;
 
31794
  friend class ::ExtACKeywords;
 
31795
  friend class ::ExtGnu;
 
31796
  friend class ::PragmaOnceUnitState;
 
31797
  friend class ::PragmaOnce;
 
31798
  friend class ::CMatchSyntax;
 
31799
 
 
31800
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31801
 
 
31802
  CTree *sons[5]; // extern, str, open, decls, close
 
31803
 
 
31804
public:
 
31805
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
 
31806
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
31807
    AddSon (sons[3], d); AddSon (sons[4], c);
 
31808
    if (isList ())
 
31809
      ((CT_DeclList*)Decls ())->Linkage (this);
 
31810
    else
 
31811
      ((CT_Decl*)Decls ())->Linkage (this);
 
31812
  }
 
31813
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31814
  static const char *NodeId ();
 
31815
  /** Get the name of the node. Can be compared with NodeId(). */
 
31816
  const char *NodeName () const { return NodeId (); }
 
31817
  /** Get the number of sons. */
 
31818
  int Sons () const { return CTree::Sons (sons, 5); }
 
31819
  /** Get the n-th son.
 
31820
   *  \param n The index of the son.
 
31821
   *  \return The n-th son or NULL. */
 
31822
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
31823
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
 
31824
  CTree *Decls () const { return sons[3]; }
 
31825
  bool isList () const {
 
31826
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
 
31827
  }
 
31828
  /** Replace a son.
 
31829
   *  \param old_son The son to replace.
 
31830
   *  \param new_son The new son. */
 
31831
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
31832
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
31833
  }
 
31834
};
 
31835
 
 
31836
 
 
31837
#line 31838 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31838
} // closed Puma
 
31839
class CCExprResolve;
 
31840
class CExprResolve;
 
31841
class WinIfExists;
 
31842
class WinImportHandler;
 
31843
class WinMacros;
 
31844
class WinAsm;
 
31845
class WinDeclSpecs;
 
31846
class WinMemberExplSpec;
 
31847
class WinTypeKeywords;
 
31848
class WinFriend;
 
31849
class ExtAC;
 
31850
class ExtACBuilderCoupling;
 
31851
class ExtACSyntaxCoupling;
 
31852
class ExtACTree;
 
31853
class ExtACKeywords;
 
31854
class ExtGnu;
 
31855
class PragmaOnceUnitState;
 
31856
class PragmaOnce;
 
31857
class CMatchSyntax;
 
31858
namespace Puma {
 
31859
 
 
31860
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31861
class CT_ArgDecl : public CT_Decl, public CSemObject {
 
31862
#line 31863 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31863
  friend class ::CCExprResolve;
 
31864
  friend class ::CExprResolve;
 
31865
  friend class ::WinIfExists;
 
31866
  friend class ::WinImportHandler;
 
31867
  friend class ::WinMacros;
 
31868
  friend class ::WinAsm;
 
31869
  friend class ::WinDeclSpecs;
 
31870
  friend class ::WinMemberExplSpec;
 
31871
  friend class ::WinTypeKeywords;
 
31872
  friend class ::WinFriend;
 
31873
  friend class ::ExtAC;
 
31874
  friend class ::ExtACBuilderCoupling;
 
31875
  friend class ::ExtACSyntaxCoupling;
 
31876
  friend class ::ExtACTree;
 
31877
  friend class ::ExtACKeywords;
 
31878
  friend class ::ExtGnu;
 
31879
  friend class ::PragmaOnceUnitState;
 
31880
  friend class ::PragmaOnce;
 
31881
  friend class ::CMatchSyntax;
 
31882
 
 
31883
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31884
 
 
31885
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
 
31886
 
 
31887
public:
 
31888
  CT_ArgDecl (CTree *dsl, CTree *d) {
 
31889
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
31890
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
 
31891
  }
 
31892
  CT_ArgDecl (CTree *ellipsis) {
 
31893
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
31894
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
 
31895
  }
 
31896
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31897
  static const char *NodeId ();
 
31898
  /** Get the name of the node. Can be compared with NodeId(). */
 
31899
  const char *NodeName () const { return NodeId (); }
 
31900
  /** Get the number of sons. */
 
31901
  int Sons () const { return CTree::Sons (sons, 4); }
 
31902
  /** Get the n-th son.
 
31903
   *  \param n The index of the son.
 
31904
   *  \return The n-th son or NULL. */
 
31905
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
31906
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
31907
  CTree *Declarator () const { return sons[1]; }
 
31908
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
31909
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
 
31910
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
31911
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
31912
  /** Replace a son.
 
31913
   *  \param old_son The son to replace.
 
31914
   *  \param new_son The new son. */
 
31915
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
31916
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
31917
  }
 
31918
};
 
31919
 
 
31920
 
 
31921
#line 31922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31922
} // closed Puma
 
31923
class CCExprResolve;
 
31924
class CExprResolve;
 
31925
class WinIfExists;
 
31926
class WinImportHandler;
 
31927
class WinMacros;
 
31928
class WinAsm;
 
31929
class WinDeclSpecs;
 
31930
class WinMemberExplSpec;
 
31931
class WinTypeKeywords;
 
31932
class WinFriend;
 
31933
class ExtAC;
 
31934
class ExtACBuilderCoupling;
 
31935
class ExtACSyntaxCoupling;
 
31936
class ExtACTree;
 
31937
class ExtACKeywords;
 
31938
class ExtGnu;
 
31939
class PragmaOnceUnitState;
 
31940
class PragmaOnce;
 
31941
class CMatchSyntax;
 
31942
namespace Puma {
 
31943
 
 
31944
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31945
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
 
31946
#line 31947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31947
  friend class ::CCExprResolve;
 
31948
  friend class ::CExprResolve;
 
31949
  friend class ::WinIfExists;
 
31950
  friend class ::WinImportHandler;
 
31951
  friend class ::WinMacros;
 
31952
  friend class ::WinAsm;
 
31953
  friend class ::WinDeclSpecs;
 
31954
  friend class ::WinMemberExplSpec;
 
31955
  friend class ::WinTypeKeywords;
 
31956
  friend class ::WinFriend;
 
31957
  friend class ::ExtAC;
 
31958
  friend class ::ExtACBuilderCoupling;
 
31959
  friend class ::ExtACSyntaxCoupling;
 
31960
  friend class ::ExtACTree;
 
31961
  friend class ::ExtACKeywords;
 
31962
  friend class ::ExtGnu;
 
31963
  friend class ::PragmaOnceUnitState;
 
31964
  friend class ::PragmaOnce;
 
31965
  friend class ::CMatchSyntax;
 
31966
 
 
31967
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
31968
 
 
31969
public:
 
31970
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
 
31971
   CT_DeclList (size, 2) { AddProperties (props); }
 
31972
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
31973
  static const char *NodeId ();
 
31974
  /** Get the name of the node. Can be compared with NodeId(). */
 
31975
  const char *NodeName () const { return NodeId (); }
 
31976
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
31977
};
 
31978
 
 
31979
 
 
31980
#line 31981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
31981
} // closed Puma
 
31982
class CCExprResolve;
 
31983
class CExprResolve;
 
31984
class WinIfExists;
 
31985
class WinImportHandler;
 
31986
class WinMacros;
 
31987
class WinAsm;
 
31988
class WinDeclSpecs;
 
31989
class WinMemberExplSpec;
 
31990
class WinTypeKeywords;
 
31991
class WinFriend;
 
31992
class ExtAC;
 
31993
class ExtACBuilderCoupling;
 
31994
class ExtACSyntaxCoupling;
 
31995
class ExtACTree;
 
31996
class ExtACKeywords;
 
31997
class ExtGnu;
 
31998
class PragmaOnceUnitState;
 
31999
class PragmaOnce;
 
32000
class CMatchSyntax;
 
32001
namespace Puma {
 
32002
 
 
32003
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32004
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
 
32005
#line 32006 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32006
  friend class ::CCExprResolve;
 
32007
  friend class ::CExprResolve;
 
32008
  friend class ::WinIfExists;
 
32009
  friend class ::WinImportHandler;
 
32010
  friend class ::WinMacros;
 
32011
  friend class ::WinAsm;
 
32012
  friend class ::WinDeclSpecs;
 
32013
  friend class ::WinMemberExplSpec;
 
32014
  friend class ::WinTypeKeywords;
 
32015
  friend class ::WinFriend;
 
32016
  friend class ::ExtAC;
 
32017
  friend class ::ExtACBuilderCoupling;
 
32018
  friend class ::ExtACSyntaxCoupling;
 
32019
  friend class ::ExtACTree;
 
32020
  friend class ::ExtACKeywords;
 
32021
  friend class ::ExtGnu;
 
32022
  friend class ::PragmaOnceUnitState;
 
32023
  friend class ::PragmaOnce;
 
32024
  friend class ::CMatchSyntax;
 
32025
 
 
32026
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32027
 
 
32028
public:
 
32029
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
32030
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32031
  static const char *NodeId ();
 
32032
  /** Get the name of the node. Can be compared with NodeId(). */
 
32033
  const char *NodeName () const { return NodeId (); }
 
32034
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
32035
};
 
32036
 
 
32037
 
 
32038
#line 32039 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32039
} // closed Puma
 
32040
class CCExprResolve;
 
32041
class CExprResolve;
 
32042
class WinIfExists;
 
32043
class WinImportHandler;
 
32044
class WinMacros;
 
32045
class WinAsm;
 
32046
class WinDeclSpecs;
 
32047
class WinMemberExplSpec;
 
32048
class WinTypeKeywords;
 
32049
class WinFriend;
 
32050
class ExtAC;
 
32051
class ExtACBuilderCoupling;
 
32052
class ExtACSyntaxCoupling;
 
32053
class ExtACTree;
 
32054
class ExtACKeywords;
 
32055
class ExtGnu;
 
32056
class PragmaOnceUnitState;
 
32057
class PragmaOnce;
 
32058
class CMatchSyntax;
 
32059
namespace Puma {
 
32060
 
 
32061
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32062
class CT_ArgNameList : public CT_ArgDeclList {
 
32063
#line 32064 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32064
  friend class ::CCExprResolve;
 
32065
  friend class ::CExprResolve;
 
32066
  friend class ::WinIfExists;
 
32067
  friend class ::WinImportHandler;
 
32068
  friend class ::WinMacros;
 
32069
  friend class ::WinAsm;
 
32070
  friend class ::WinDeclSpecs;
 
32071
  friend class ::WinMemberExplSpec;
 
32072
  friend class ::WinTypeKeywords;
 
32073
  friend class ::WinFriend;
 
32074
  friend class ::ExtAC;
 
32075
  friend class ::ExtACBuilderCoupling;
 
32076
  friend class ::ExtACSyntaxCoupling;
 
32077
  friend class ::ExtACTree;
 
32078
  friend class ::ExtACKeywords;
 
32079
  friend class ::ExtGnu;
 
32080
  friend class ::PragmaOnceUnitState;
 
32081
  friend class ::PragmaOnce;
 
32082
  friend class ::CMatchSyntax;
 
32083
 
 
32084
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32085
 
 
32086
public:
 
32087
  CT_ArgNameList () : CT_ArgDeclList () {}
 
32088
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32089
  static const char *NodeId ();
 
32090
  /** Get the name of the node. Can be compared with NodeId(). */
 
32091
  const char *NodeName () const { return NodeId (); }
 
32092
};
 
32093
 
 
32094
 
 
32095
#line 32096 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32096
} // closed Puma
 
32097
class CCExprResolve;
 
32098
class CExprResolve;
 
32099
class WinIfExists;
 
32100
class WinImportHandler;
 
32101
class WinMacros;
 
32102
class WinAsm;
 
32103
class WinDeclSpecs;
 
32104
class WinMemberExplSpec;
 
32105
class WinTypeKeywords;
 
32106
class WinFriend;
 
32107
class ExtAC;
 
32108
class ExtACBuilderCoupling;
 
32109
class ExtACSyntaxCoupling;
 
32110
class ExtACTree;
 
32111
class ExtACKeywords;
 
32112
class ExtGnu;
 
32113
class PragmaOnceUnitState;
 
32114
class PragmaOnce;
 
32115
class CMatchSyntax;
 
32116
namespace Puma {
 
32117
 
 
32118
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32119
class CT_NamespaceDef : public CT_Decl, public CSemObject {
 
32120
#line 32121 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32121
  friend class ::CCExprResolve;
 
32122
  friend class ::CExprResolve;
 
32123
  friend class ::WinIfExists;
 
32124
  friend class ::WinImportHandler;
 
32125
  friend class ::WinMacros;
 
32126
  friend class ::WinAsm;
 
32127
  friend class ::WinDeclSpecs;
 
32128
  friend class ::WinMemberExplSpec;
 
32129
  friend class ::WinTypeKeywords;
 
32130
  friend class ::WinFriend;
 
32131
  friend class ::ExtAC;
 
32132
  friend class ::ExtACBuilderCoupling;
 
32133
  friend class ::ExtACSyntaxCoupling;
 
32134
  friend class ::ExtACTree;
 
32135
  friend class ::ExtACKeywords;
 
32136
  friend class ::ExtGnu;
 
32137
  friend class ::PragmaOnceUnitState;
 
32138
  friend class ::PragmaOnce;
 
32139
  friend class ::CMatchSyntax;
 
32140
 
 
32141
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32142
 
 
32143
  CTree *sons[3]; // ns, name, members
 
32144
 
 
32145
public:
 
32146
  CT_NamespaceDef (CTree *n, CTree *nm) {
 
32147
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
 
32148
  }
 
32149
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
 
32150
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
 
32151
  }
 
32152
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32153
  static const char *NodeId ();
 
32154
  /** Get the name of the node. Can be compared with NodeId(). */
 
32155
  const char *NodeName () const { return NodeId (); }
 
32156
  /** Get the number of sons. */
 
32157
  int Sons () const { return CTree::Sons (sons, 3); }
 
32158
  /** Get the n-th son.
 
32159
   *  \param n The index of the son.
 
32160
   *  \return The n-th son or NULL. */
 
32161
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
32162
  void Members (CTree *m) { AddSon (sons[2], m); }
 
32163
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
 
32164
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
32165
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
32166
  /** Replace a son.
 
32167
   *  \param old_son The son to replace.
 
32168
   *  \param new_son The new son. */
 
32169
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
32170
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
32171
  }
 
32172
};
 
32173
 
 
32174
 
 
32175
#line 32176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32176
} // closed Puma
 
32177
class CCExprResolve;
 
32178
class CExprResolve;
 
32179
class WinIfExists;
 
32180
class WinImportHandler;
 
32181
class WinMacros;
 
32182
class WinAsm;
 
32183
class WinDeclSpecs;
 
32184
class WinMemberExplSpec;
 
32185
class WinTypeKeywords;
 
32186
class WinFriend;
 
32187
class ExtAC;
 
32188
class ExtACBuilderCoupling;
 
32189
class ExtACSyntaxCoupling;
 
32190
class ExtACTree;
 
32191
class ExtACKeywords;
 
32192
class ExtGnu;
 
32193
class PragmaOnceUnitState;
 
32194
class PragmaOnce;
 
32195
class CMatchSyntax;
 
32196
namespace Puma {
 
32197
 
 
32198
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32199
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
 
32200
#line 32201 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32201
  friend class ::CCExprResolve;
 
32202
  friend class ::CExprResolve;
 
32203
  friend class ::WinIfExists;
 
32204
  friend class ::WinImportHandler;
 
32205
  friend class ::WinMacros;
 
32206
  friend class ::WinAsm;
 
32207
  friend class ::WinDeclSpecs;
 
32208
  friend class ::WinMemberExplSpec;
 
32209
  friend class ::WinTypeKeywords;
 
32210
  friend class ::WinFriend;
 
32211
  friend class ::ExtAC;
 
32212
  friend class ::ExtACBuilderCoupling;
 
32213
  friend class ::ExtACSyntaxCoupling;
 
32214
  friend class ::ExtACTree;
 
32215
  friend class ::ExtACKeywords;
 
32216
  friend class ::ExtGnu;
 
32217
  friend class ::PragmaOnceUnitState;
 
32218
  friend class ::PragmaOnce;
 
32219
  friend class ::CMatchSyntax;
 
32220
 
 
32221
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32222
 
 
32223
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
 
32224
 
 
32225
public:
 
32226
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
 
32227
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
32228
    AddSon (sons[3], nm); AddSon (sons[4], s); 
 
32229
  }
 
32230
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32231
  static const char *NodeId ();
 
32232
  /** Get the name of the node. Can be compared with NodeId(). */
 
32233
  const char *NodeName () const { return NodeId (); }
 
32234
  /** Get the number of sons. */
 
32235
  int Sons () const { return 5; }
 
32236
  /** Get the n-th son.
 
32237
   *  \param n The index of the son.
 
32238
   *  \return The n-th son or NULL. */
 
32239
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
32240
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
 
32241
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
 
32242
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
32243
  /** Replace a son.
 
32244
   *  \param old_son The son to replace.
 
32245
   *  \param new_son The new son. */
 
32246
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
32247
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
32248
  }
 
32249
};
 
32250
 
 
32251
 
 
32252
#line 32253 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32253
} // closed Puma
 
32254
class CCExprResolve;
 
32255
class CExprResolve;
 
32256
class WinIfExists;
 
32257
class WinImportHandler;
 
32258
class WinMacros;
 
32259
class WinAsm;
 
32260
class WinDeclSpecs;
 
32261
class WinMemberExplSpec;
 
32262
class WinTypeKeywords;
 
32263
class WinFriend;
 
32264
class ExtAC;
 
32265
class ExtACBuilderCoupling;
 
32266
class ExtACSyntaxCoupling;
 
32267
class ExtACTree;
 
32268
class ExtACKeywords;
 
32269
class ExtGnu;
 
32270
class PragmaOnceUnitState;
 
32271
class PragmaOnce;
 
32272
class CMatchSyntax;
 
32273
namespace Puma {
 
32274
 
 
32275
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32276
class CT_UsingDirective : public CT_Decl {
 
32277
#line 32278 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32278
  friend class ::CCExprResolve;
 
32279
  friend class ::CExprResolve;
 
32280
  friend class ::WinIfExists;
 
32281
  friend class ::WinImportHandler;
 
32282
  friend class ::WinMacros;
 
32283
  friend class ::WinAsm;
 
32284
  friend class ::WinDeclSpecs;
 
32285
  friend class ::WinMemberExplSpec;
 
32286
  friend class ::WinTypeKeywords;
 
32287
  friend class ::WinFriend;
 
32288
  friend class ::ExtAC;
 
32289
  friend class ::ExtACBuilderCoupling;
 
32290
  friend class ::ExtACSyntaxCoupling;
 
32291
  friend class ::ExtACTree;
 
32292
  friend class ::ExtACKeywords;
 
32293
  friend class ::ExtGnu;
 
32294
  friend class ::PragmaOnceUnitState;
 
32295
  friend class ::PragmaOnce;
 
32296
  friend class ::CMatchSyntax;
 
32297
 
 
32298
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32299
 
 
32300
  CTree *sons[4]; // using, ns, name, semi_colon
 
32301
 
 
32302
public:
 
32303
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
 
32304
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
32305
    AddSon (sons[3], s); 
 
32306
  }
 
32307
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32308
  static const char *NodeId ();
 
32309
  /** Get the name of the node. Can be compared with NodeId(). */
 
32310
  const char *NodeName () const { return NodeId (); }
 
32311
  /** Get the number of sons. */
 
32312
  int Sons () const { return 4; }
 
32313
  /** Get the n-th son.
 
32314
   *  \param n The index of the son.
 
32315
   *  \return The n-th son or NULL. */
 
32316
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
32317
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
32318
  /** Replace a son.
 
32319
   *  \param old_son The son to replace.
 
32320
   *  \param new_son The new son. */
 
32321
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
32322
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
32323
  }
 
32324
};
 
32325
 
 
32326
/*****************************************************************************/
 
32327
/*                                                                           */
 
32328
/*                              Declarators                                  */
 
32329
/*                                                                           */
 
32330
/*****************************************************************************/
 
32331
 
 
32332
 
 
32333
#line 32334 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32334
} // closed Puma
 
32335
class CCExprResolve;
 
32336
class CExprResolve;
 
32337
class WinIfExists;
 
32338
class WinImportHandler;
 
32339
class WinMacros;
 
32340
class WinAsm;
 
32341
class WinDeclSpecs;
 
32342
class WinMemberExplSpec;
 
32343
class WinTypeKeywords;
 
32344
class WinFriend;
 
32345
class ExtAC;
 
32346
class ExtACBuilderCoupling;
 
32347
class ExtACSyntaxCoupling;
 
32348
class ExtACTree;
 
32349
class ExtACKeywords;
 
32350
class ExtGnu;
 
32351
class PragmaOnceUnitState;
 
32352
class PragmaOnce;
 
32353
class CMatchSyntax;
 
32354
namespace Puma {
 
32355
 
 
32356
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32357
class CT_Declarator : public CTree {
 
32358
#line 32359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32359
  friend class ::CCExprResolve;
 
32360
  friend class ::CExprResolve;
 
32361
  friend class ::WinIfExists;
 
32362
  friend class ::WinImportHandler;
 
32363
  friend class ::WinMacros;
 
32364
  friend class ::WinAsm;
 
32365
  friend class ::WinDeclSpecs;
 
32366
  friend class ::WinMemberExplSpec;
 
32367
  friend class ::WinTypeKeywords;
 
32368
  friend class ::WinFriend;
 
32369
  friend class ::ExtAC;
 
32370
  friend class ::ExtACBuilderCoupling;
 
32371
  friend class ::ExtACSyntaxCoupling;
 
32372
  friend class ::ExtACTree;
 
32373
  friend class ::ExtACKeywords;
 
32374
  friend class ::ExtGnu;
 
32375
  friend class ::PragmaOnceUnitState;
 
32376
  friend class ::PragmaOnce;
 
32377
  friend class ::CMatchSyntax;
 
32378
 
 
32379
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32380
 
 
32381
protected:
 
32382
  CT_Declarator () {}
 
32383
 
 
32384
public:
 
32385
  virtual CTree *Declarator () const = 0;
 
32386
  //classification function
 
32387
  virtual CT_Declarator *IsDeclarator () { return this; }
 
32388
  // locate the name node
 
32389
  CT_SimpleName *Name ();
 
32390
  CT_SimpleName *Name (CT_Declarator *&last_declarator);
 
32391
};
 
32392
 
 
32393
 
 
32394
#line 32395 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32395
} // closed Puma
 
32396
class CCExprResolve;
 
32397
class CExprResolve;
 
32398
class WinIfExists;
 
32399
class WinImportHandler;
 
32400
class WinMacros;
 
32401
class WinAsm;
 
32402
class WinDeclSpecs;
 
32403
class WinMemberExplSpec;
 
32404
class WinTypeKeywords;
 
32405
class WinFriend;
 
32406
class ExtAC;
 
32407
class ExtACBuilderCoupling;
 
32408
class ExtACSyntaxCoupling;
 
32409
class ExtACTree;
 
32410
class ExtACKeywords;
 
32411
class ExtGnu;
 
32412
class PragmaOnceUnitState;
 
32413
class PragmaOnce;
 
32414
class CMatchSyntax;
 
32415
namespace Puma {
 
32416
 
 
32417
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32418
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
 
32419
#line 32420 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32420
  friend class ::CCExprResolve;
 
32421
  friend class ::CExprResolve;
 
32422
  friend class ::WinIfExists;
 
32423
  friend class ::WinImportHandler;
 
32424
  friend class ::WinMacros;
 
32425
  friend class ::WinAsm;
 
32426
  friend class ::WinDeclSpecs;
 
32427
  friend class ::WinMemberExplSpec;
 
32428
  friend class ::WinTypeKeywords;
 
32429
  friend class ::WinFriend;
 
32430
  friend class ::ExtAC;
 
32431
  friend class ::ExtACBuilderCoupling;
 
32432
  friend class ::ExtACSyntaxCoupling;
 
32433
  friend class ::ExtACTree;
 
32434
  friend class ::ExtACKeywords;
 
32435
  friend class ::ExtGnu;
 
32436
  friend class ::PragmaOnceUnitState;
 
32437
  friend class ::PragmaOnce;
 
32438
  friend class ::CMatchSyntax;
 
32439
 
 
32440
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32441
 
 
32442
  CTree *sons[3]; // declarator, ext, init
 
32443
  CTree *obj_decl;
 
32444
 
 
32445
public:
 
32446
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
32447
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
32448
    AddSon (obj_decl, 0); 
 
32449
  }
 
32450
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32451
  static const char *NodeId ();
 
32452
  /** Get the name of the node. Can be compared with NodeId(). */
 
32453
  const char *NodeName () const { return NodeId (); }
 
32454
  /** Get the number of sons. */
 
32455
  int Sons () const { return CTree::Sons (sons, 3); }
 
32456
  /** Get the n-th son.
 
32457
   *  \param n The index of the son.
 
32458
   *  \return The n-th son or NULL. */
 
32459
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
32460
  CTree *Declarator () const { return sons[0]; }
 
32461
  CTree *Extension () const { return sons[1]; }
 
32462
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
32463
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
32464
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
32465
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
32466
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
32467
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
32468
  /** Replace a son.
 
32469
   *  \param old_son The son to replace.
 
32470
   *  \param new_son The new son. */
 
32471
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
32472
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
32473
  }
 
32474
};
 
32475
 
 
32476
 
 
32477
#line 32478 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32478
} // closed Puma
 
32479
class CCExprResolve;
 
32480
class CExprResolve;
 
32481
class WinIfExists;
 
32482
class WinImportHandler;
 
32483
class WinMacros;
 
32484
class WinAsm;
 
32485
class WinDeclSpecs;
 
32486
class WinMemberExplSpec;
 
32487
class WinTypeKeywords;
 
32488
class WinFriend;
 
32489
class ExtAC;
 
32490
class ExtACBuilderCoupling;
 
32491
class ExtACSyntaxCoupling;
 
32492
class ExtACTree;
 
32493
class ExtACKeywords;
 
32494
class ExtGnu;
 
32495
class PragmaOnceUnitState;
 
32496
class PragmaOnce;
 
32497
class CMatchSyntax;
 
32498
namespace Puma {
 
32499
 
 
32500
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32501
class CT_BracedDeclarator : public CT_Declarator {
 
32502
#line 32503 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32503
  friend class ::CCExprResolve;
 
32504
  friend class ::CExprResolve;
 
32505
  friend class ::WinIfExists;
 
32506
  friend class ::WinImportHandler;
 
32507
  friend class ::WinMacros;
 
32508
  friend class ::WinAsm;
 
32509
  friend class ::WinDeclSpecs;
 
32510
  friend class ::WinMemberExplSpec;
 
32511
  friend class ::WinTypeKeywords;
 
32512
  friend class ::WinFriend;
 
32513
  friend class ::ExtAC;
 
32514
  friend class ::ExtACBuilderCoupling;
 
32515
  friend class ::ExtACSyntaxCoupling;
 
32516
  friend class ::ExtACTree;
 
32517
  friend class ::ExtACKeywords;
 
32518
  friend class ::ExtGnu;
 
32519
  friend class ::PragmaOnceUnitState;
 
32520
  friend class ::PragmaOnce;
 
32521
  friend class ::CMatchSyntax;
 
32522
 
 
32523
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32524
 
 
32525
  CTree *sons[4]; // open, win_specs, declarator, close
 
32526
 
 
32527
public:
 
32528
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
 
32529
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
32530
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
32531
  }
 
32532
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
 
32533
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
32534
    AddSon (sons[2], d); AddSon (sons[3], c); 
 
32535
  }
 
32536
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32537
  static const char *NodeId ();
 
32538
  /** Get the name of the node. Can be compared with NodeId(). */
 
32539
  const char *NodeName () const { return NodeId (); }
 
32540
  /** Get the number of sons. */
 
32541
  int Sons () const { return CTree::Sons (sons, 4); }
 
32542
  /** Get the n-th son.
 
32543
   *  \param n The index of the son.
 
32544
   *  \return The n-th son or NULL. */
 
32545
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
32546
  CTree *Declarator () const { return sons[2]; }
 
32547
  /** Replace a son.
 
32548
   *  \param old_son The son to replace.
 
32549
   *  \param new_son The new son. */
 
32550
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
32551
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
32552
  }
 
32553
};
 
32554
 
 
32555
 
 
32556
#line 32557 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32557
} // closed Puma
 
32558
class CCExprResolve;
 
32559
class CExprResolve;
 
32560
class WinIfExists;
 
32561
class WinImportHandler;
 
32562
class WinMacros;
 
32563
class WinAsm;
 
32564
class WinDeclSpecs;
 
32565
class WinMemberExplSpec;
 
32566
class WinTypeKeywords;
 
32567
class WinFriend;
 
32568
class ExtAC;
 
32569
class ExtACBuilderCoupling;
 
32570
class ExtACSyntaxCoupling;
 
32571
class ExtACTree;
 
32572
class ExtACKeywords;
 
32573
class ExtGnu;
 
32574
class PragmaOnceUnitState;
 
32575
class PragmaOnce;
 
32576
class CMatchSyntax;
 
32577
namespace Puma {
 
32578
 
 
32579
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32580
class CT_ArrayDelimiter : public CTree {
 
32581
#line 32582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32582
  friend class ::CCExprResolve;
 
32583
  friend class ::CExprResolve;
 
32584
  friend class ::WinIfExists;
 
32585
  friend class ::WinImportHandler;
 
32586
  friend class ::WinMacros;
 
32587
  friend class ::WinAsm;
 
32588
  friend class ::WinDeclSpecs;
 
32589
  friend class ::WinMemberExplSpec;
 
32590
  friend class ::WinTypeKeywords;
 
32591
  friend class ::WinFriend;
 
32592
  friend class ::ExtAC;
 
32593
  friend class ::ExtACBuilderCoupling;
 
32594
  friend class ::ExtACSyntaxCoupling;
 
32595
  friend class ::ExtACTree;
 
32596
  friend class ::ExtACKeywords;
 
32597
  friend class ::ExtGnu;
 
32598
  friend class ::PragmaOnceUnitState;
 
32599
  friend class ::PragmaOnce;
 
32600
  friend class ::CMatchSyntax;
 
32601
 
 
32602
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32603
 
 
32604
  CTree *sons[4]; // star, static, quals, expr
 
32605
  bool pos0;
 
32606
 
 
32607
public:
 
32608
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
 
32609
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
32610
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
 
32611
  }
 
32612
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32613
  static const char *NodeId ();
 
32614
  /** Get the name of the node. Can be compared with NodeId(). */
 
32615
  const char *NodeName () const { return NodeId (); }
 
32616
  /** Get the number of sons. */
 
32617
  int Sons () const { return CTree::Sons (sons, 4); }
 
32618
  /** Get the n-th son.
 
32619
   *  \param n The index of the son.
 
32620
   *  \return The n-th son or NULL. */
 
32621
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
32622
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
 
32623
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
 
32624
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
 
32625
  CTree *Expr () const { return sons[3]; }
 
32626
  /** Replace a son.
 
32627
   *  \param old_son The son to replace.
 
32628
   *  \param new_son The new son. */
 
32629
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
32630
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
32631
  }
 
32632
};
 
32633
 
 
32634
 
 
32635
#line 32636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32636
} // closed Puma
 
32637
class CCExprResolve;
 
32638
class CExprResolve;
 
32639
class WinIfExists;
 
32640
class WinImportHandler;
 
32641
class WinMacros;
 
32642
class WinAsm;
 
32643
class WinDeclSpecs;
 
32644
class WinMemberExplSpec;
 
32645
class WinTypeKeywords;
 
32646
class WinFriend;
 
32647
class ExtAC;
 
32648
class ExtACBuilderCoupling;
 
32649
class ExtACSyntaxCoupling;
 
32650
class ExtACTree;
 
32651
class ExtACKeywords;
 
32652
class ExtGnu;
 
32653
class PragmaOnceUnitState;
 
32654
class PragmaOnce;
 
32655
class CMatchSyntax;
 
32656
namespace Puma {
 
32657
 
 
32658
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32659
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
 
32660
#line 32661 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32661
  friend class ::CCExprResolve;
 
32662
  friend class ::CExprResolve;
 
32663
  friend class ::WinIfExists;
 
32664
  friend class ::WinImportHandler;
 
32665
  friend class ::WinMacros;
 
32666
  friend class ::WinAsm;
 
32667
  friend class ::WinDeclSpecs;
 
32668
  friend class ::WinMemberExplSpec;
 
32669
  friend class ::WinTypeKeywords;
 
32670
  friend class ::WinFriend;
 
32671
  friend class ::ExtAC;
 
32672
  friend class ::ExtACBuilderCoupling;
 
32673
  friend class ::ExtACSyntaxCoupling;
 
32674
  friend class ::ExtACTree;
 
32675
  friend class ::ExtACKeywords;
 
32676
  friend class ::ExtGnu;
 
32677
  friend class ::PragmaOnceUnitState;
 
32678
  friend class ::PragmaOnce;
 
32679
  friend class ::CMatchSyntax;
 
32680
 
 
32681
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32682
 
 
32683
  CTree *sons[4]; // declarator, open, delim, close
 
32684
 
 
32685
public:
 
32686
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
 
32687
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
32688
    AddSon (sons[2], ad); AddSon (sons[3], c); 
 
32689
  }
 
32690
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32691
  static const char *NodeId ();
 
32692
  /** Get the name of the node. Can be compared with NodeId(). */
 
32693
  const char *NodeName () const { return NodeId (); }
 
32694
  /** Get the number of sons. */
 
32695
  int Sons () const { return 4; }
 
32696
  /** Get the n-th son.
 
32697
   *  \param n The index of the son.
 
32698
   *  \return The n-th son or NULL. */
 
32699
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
32700
  CTree *Declarator () const { return sons[0]; }
 
32701
  CT_ArrayDelimiter *Delimiter () const 
 
32702
   { return (CT_ArrayDelimiter*)sons[2]; }
 
32703
  /** Replace a son.
 
32704
   *  \param old_son The son to replace.
 
32705
   *  \param new_son The new son. */
 
32706
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
32707
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
32708
  }
 
32709
  CTypeInfo *Type () const { return type; }
 
32710
  CExprValue *Value () const { return value; }
 
32711
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
32712
};
 
32713
 
 
32714
 
 
32715
#line 32716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32716
} // closed Puma
 
32717
class CCExprResolve;
 
32718
class CExprResolve;
 
32719
class WinIfExists;
 
32720
class WinImportHandler;
 
32721
class WinMacros;
 
32722
class WinAsm;
 
32723
class WinDeclSpecs;
 
32724
class WinMemberExplSpec;
 
32725
class WinTypeKeywords;
 
32726
class WinFriend;
 
32727
class ExtAC;
 
32728
class ExtACBuilderCoupling;
 
32729
class ExtACSyntaxCoupling;
 
32730
class ExtACTree;
 
32731
class ExtACKeywords;
 
32732
class ExtGnu;
 
32733
class PragmaOnceUnitState;
 
32734
class PragmaOnce;
 
32735
class CMatchSyntax;
 
32736
namespace Puma {
 
32737
 
 
32738
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32739
class CT_FctDeclarator : public CT_Declarator {
 
32740
#line 32741 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32741
  friend class ::CCExprResolve;
 
32742
  friend class ::CExprResolve;
 
32743
  friend class ::WinIfExists;
 
32744
  friend class ::WinImportHandler;
 
32745
  friend class ::WinMacros;
 
32746
  friend class ::WinAsm;
 
32747
  friend class ::WinDeclSpecs;
 
32748
  friend class ::WinMemberExplSpec;
 
32749
  friend class ::WinTypeKeywords;
 
32750
  friend class ::WinFriend;
 
32751
  friend class ::ExtAC;
 
32752
  friend class ::ExtACBuilderCoupling;
 
32753
  friend class ::ExtACSyntaxCoupling;
 
32754
  friend class ::ExtACTree;
 
32755
  friend class ::ExtACKeywords;
 
32756
  friend class ::ExtGnu;
 
32757
  friend class ::PragmaOnceUnitState;
 
32758
  friend class ::PragmaOnce;
 
32759
  friend class ::CMatchSyntax;
 
32760
 
 
32761
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32762
 
 
32763
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
 
32764
 
 
32765
public:
 
32766
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
 
32767
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
32768
    AddSon (sons[2], cv); AddSon (sons[3], es); 
 
32769
  }
 
32770
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32771
  static const char *NodeId ();
 
32772
  /** Get the name of the node. Can be compared with NodeId(). */
 
32773
  const char *NodeName () const { return NodeId (); }
 
32774
  /** Get the number of sons. */
 
32775
  int Sons () const { return CTree::Sons (sons, 4); }
 
32776
  /** Get the n-th son.
 
32777
   *  \param n The index of the son.
 
32778
   *  \return The n-th son or NULL. */
 
32779
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
32780
  CTree *Declarator () const { return sons[0]; }
 
32781
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
32782
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
 
32783
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
32784
  /** Replace a son.
 
32785
   *  \param old_son The son to replace.
 
32786
   *  \param new_son The new son. */
 
32787
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
32788
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
32789
  }
 
32790
};
 
32791
 
 
32792
 
 
32793
#line 32794 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32794
} // closed Puma
 
32795
class CCExprResolve;
 
32796
class CExprResolve;
 
32797
class WinIfExists;
 
32798
class WinImportHandler;
 
32799
class WinMacros;
 
32800
class WinAsm;
 
32801
class WinDeclSpecs;
 
32802
class WinMemberExplSpec;
 
32803
class WinTypeKeywords;
 
32804
class WinFriend;
 
32805
class ExtAC;
 
32806
class ExtACBuilderCoupling;
 
32807
class ExtACSyntaxCoupling;
 
32808
class ExtACTree;
 
32809
class ExtACKeywords;
 
32810
class ExtGnu;
 
32811
class PragmaOnceUnitState;
 
32812
class PragmaOnce;
 
32813
class CMatchSyntax;
 
32814
namespace Puma {
 
32815
 
 
32816
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32817
class CT_RefDeclarator : public CT_Declarator {
 
32818
#line 32819 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32819
  friend class ::CCExprResolve;
 
32820
  friend class ::CExprResolve;
 
32821
  friend class ::WinIfExists;
 
32822
  friend class ::WinImportHandler;
 
32823
  friend class ::WinMacros;
 
32824
  friend class ::WinAsm;
 
32825
  friend class ::WinDeclSpecs;
 
32826
  friend class ::WinMemberExplSpec;
 
32827
  friend class ::WinTypeKeywords;
 
32828
  friend class ::WinFriend;
 
32829
  friend class ::ExtAC;
 
32830
  friend class ::ExtACBuilderCoupling;
 
32831
  friend class ::ExtACSyntaxCoupling;
 
32832
  friend class ::ExtACTree;
 
32833
  friend class ::ExtACKeywords;
 
32834
  friend class ::ExtGnu;
 
32835
  friend class ::PragmaOnceUnitState;
 
32836
  friend class ::PragmaOnce;
 
32837
  friend class ::CMatchSyntax;
 
32838
 
 
32839
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32840
 
 
32841
  CTree *sons[2]; // ref, declarator
 
32842
 
 
32843
public:
 
32844
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
32845
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32846
  static const char *NodeId ();
 
32847
  /** Get the name of the node. Can be compared with NodeId(). */
 
32848
  const char *NodeName () const { return NodeId (); }
 
32849
  /** Get the number of sons. */
 
32850
  int Sons () const { return 2; }
 
32851
  /** Get the n-th son.
 
32852
   *  \param n The index of the son.
 
32853
   *  \return The n-th son or NULL. */
 
32854
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
32855
  CTree *Declarator () const { return sons[1]; }
 
32856
  /** Replace a son.
 
32857
   *  \param old_son The son to replace.
 
32858
   *  \param new_son The new son. */
 
32859
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
32860
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
32861
  }
 
32862
};
 
32863
 
 
32864
 
 
32865
#line 32866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32866
} // closed Puma
 
32867
class CCExprResolve;
 
32868
class CExprResolve;
 
32869
class WinIfExists;
 
32870
class WinImportHandler;
 
32871
class WinMacros;
 
32872
class WinAsm;
 
32873
class WinDeclSpecs;
 
32874
class WinMemberExplSpec;
 
32875
class WinTypeKeywords;
 
32876
class WinFriend;
 
32877
class ExtAC;
 
32878
class ExtACBuilderCoupling;
 
32879
class ExtACSyntaxCoupling;
 
32880
class ExtACTree;
 
32881
class ExtACKeywords;
 
32882
class ExtGnu;
 
32883
class PragmaOnceUnitState;
 
32884
class PragmaOnce;
 
32885
class CMatchSyntax;
 
32886
namespace Puma {
 
32887
 
 
32888
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32889
class CT_PtrDeclarator : public CT_Declarator {
 
32890
#line 32891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32891
  friend class ::CCExprResolve;
 
32892
  friend class ::CExprResolve;
 
32893
  friend class ::WinIfExists;
 
32894
  friend class ::WinImportHandler;
 
32895
  friend class ::WinMacros;
 
32896
  friend class ::WinAsm;
 
32897
  friend class ::WinDeclSpecs;
 
32898
  friend class ::WinMemberExplSpec;
 
32899
  friend class ::WinTypeKeywords;
 
32900
  friend class ::WinFriend;
 
32901
  friend class ::ExtAC;
 
32902
  friend class ::ExtACBuilderCoupling;
 
32903
  friend class ::ExtACSyntaxCoupling;
 
32904
  friend class ::ExtACTree;
 
32905
  friend class ::ExtACKeywords;
 
32906
  friend class ::ExtGnu;
 
32907
  friend class ::PragmaOnceUnitState;
 
32908
  friend class ::PragmaOnce;
 
32909
  friend class ::CMatchSyntax;
 
32910
 
 
32911
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32912
 
 
32913
  CTree *sons[3]; // ptr, cv_quals, declarator
 
32914
 
 
32915
public:
 
32916
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
 
32917
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
 
32918
  }
 
32919
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32920
  static const char *NodeId ();
 
32921
  /** Get the name of the node. Can be compared with NodeId(). */
 
32922
  const char *NodeName () const { return NodeId (); }
 
32923
  /** Get the number of sons. */
 
32924
  int Sons () const { return CTree::Sons (sons, 3); }
 
32925
  /** Get the n-th son.
 
32926
   *  \param n The index of the son.
 
32927
   *  \return The n-th son or NULL. */
 
32928
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
32929
  CTree *Declarator () const { return sons[2]; }
 
32930
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
32931
  /** Replace a son.
 
32932
   *  \param old_son The son to replace.
 
32933
   *  \param new_son The new son. */
 
32934
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
32935
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
32936
  }
 
32937
};
 
32938
 
 
32939
 
 
32940
#line 32941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32941
} // closed Puma
 
32942
class CCExprResolve;
 
32943
class CExprResolve;
 
32944
class WinIfExists;
 
32945
class WinImportHandler;
 
32946
class WinMacros;
 
32947
class WinAsm;
 
32948
class WinDeclSpecs;
 
32949
class WinMemberExplSpec;
 
32950
class WinTypeKeywords;
 
32951
class WinFriend;
 
32952
class ExtAC;
 
32953
class ExtACBuilderCoupling;
 
32954
class ExtACSyntaxCoupling;
 
32955
class ExtACTree;
 
32956
class ExtACKeywords;
 
32957
class ExtGnu;
 
32958
class PragmaOnceUnitState;
 
32959
class PragmaOnce;
 
32960
class CMatchSyntax;
 
32961
namespace Puma {
 
32962
 
 
32963
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32964
class CT_MembPtrDeclarator : public CT_Declarator {
 
32965
#line 32966 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
32966
  friend class ::CCExprResolve;
 
32967
  friend class ::CExprResolve;
 
32968
  friend class ::WinIfExists;
 
32969
  friend class ::WinImportHandler;
 
32970
  friend class ::WinMacros;
 
32971
  friend class ::WinAsm;
 
32972
  friend class ::WinDeclSpecs;
 
32973
  friend class ::WinMemberExplSpec;
 
32974
  friend class ::WinTypeKeywords;
 
32975
  friend class ::WinFriend;
 
32976
  friend class ::ExtAC;
 
32977
  friend class ::ExtACBuilderCoupling;
 
32978
  friend class ::ExtACSyntaxCoupling;
 
32979
  friend class ::ExtACTree;
 
32980
  friend class ::ExtACKeywords;
 
32981
  friend class ::ExtGnu;
 
32982
  friend class ::PragmaOnceUnitState;
 
32983
  friend class ::PragmaOnce;
 
32984
  friend class ::CMatchSyntax;
 
32985
 
 
32986
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
32987
 
 
32988
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
 
32989
 
 
32990
public:
 
32991
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
 
32992
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
32993
    AddSon (sons[3], q); AddSon (sons[4], d); 
 
32994
  }
 
32995
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
32996
  static const char *NodeId ();
 
32997
  /** Get the name of the node. Can be compared with NodeId(). */
 
32998
  const char *NodeName () const { return NodeId (); }
 
32999
  /** Get the number of sons. */
 
33000
  int Sons () const { return CTree::Sons (sons, 5); }
 
33001
  /** Get the n-th son.
 
33002
   *  \param n The index of the son.
 
33003
   *  \return The n-th son or NULL. */
 
33004
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
33005
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
33006
  CTree *Declarator () const { return sons[4]; }
 
33007
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
33008
  /** Replace a son.
 
33009
   *  \param old_son The son to replace.
 
33010
   *  \param new_son The new son. */
 
33011
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33012
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
33013
  }
 
33014
};
 
33015
 
 
33016
 
 
33017
#line 33018 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33018
} // closed Puma
 
33019
class CCExprResolve;
 
33020
class CExprResolve;
 
33021
class WinIfExists;
 
33022
class WinImportHandler;
 
33023
class WinMacros;
 
33024
class WinAsm;
 
33025
class WinDeclSpecs;
 
33026
class WinMemberExplSpec;
 
33027
class WinTypeKeywords;
 
33028
class WinFriend;
 
33029
class ExtAC;
 
33030
class ExtACBuilderCoupling;
 
33031
class ExtACSyntaxCoupling;
 
33032
class ExtACTree;
 
33033
class ExtACKeywords;
 
33034
class ExtGnu;
 
33035
class PragmaOnceUnitState;
 
33036
class PragmaOnce;
 
33037
class CMatchSyntax;
 
33038
namespace Puma {
 
33039
 
 
33040
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33041
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
 
33042
#line 33043 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33043
  friend class ::CCExprResolve;
 
33044
  friend class ::CExprResolve;
 
33045
  friend class ::WinIfExists;
 
33046
  friend class ::WinImportHandler;
 
33047
  friend class ::WinMacros;
 
33048
  friend class ::WinAsm;
 
33049
  friend class ::WinDeclSpecs;
 
33050
  friend class ::WinMemberExplSpec;
 
33051
  friend class ::WinTypeKeywords;
 
33052
  friend class ::WinFriend;
 
33053
  friend class ::ExtAC;
 
33054
  friend class ::ExtACBuilderCoupling;
 
33055
  friend class ::ExtACSyntaxCoupling;
 
33056
  friend class ::ExtACTree;
 
33057
  friend class ::ExtACKeywords;
 
33058
  friend class ::ExtGnu;
 
33059
  friend class ::PragmaOnceUnitState;
 
33060
  friend class ::PragmaOnce;
 
33061
  friend class ::CMatchSyntax;
 
33062
 
 
33063
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33064
 
 
33065
  CTree *sons[3]; // declarator, colon, expr
 
33066
 
 
33067
public:
 
33068
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
 
33069
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
 
33070
  }
 
33071
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33072
  static const char *NodeId ();
 
33073
  /** Get the name of the node. Can be compared with NodeId(). */
 
33074
  const char *NodeName () const { return NodeId (); }
 
33075
  /** Get the number of sons. */
 
33076
  int Sons () const { return CTree::Sons (sons, 3); }
 
33077
  /** Get the n-th son.
 
33078
   *  \param n The index of the son.
 
33079
   *  \return The n-th son or NULL. */
 
33080
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
33081
  CTree *Declarator () const { return sons[0]; }
 
33082
  CTree *Expr () const { return sons[2]; }
 
33083
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
 
33084
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
33085
  /** Replace a son.
 
33086
   *  \param old_son The son to replace.
 
33087
   *  \param new_son The new son. */
 
33088
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33089
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
33090
  }
 
33091
};
 
33092
 
 
33093
/*****************************************************************************/
 
33094
/*                                                                           */
 
33095
/*                              Statements                                   */
 
33096
/*                                                                           */
 
33097
/*****************************************************************************/
 
33098
 
 
33099
 
 
33100
#line 33101 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33101
} // closed Puma
 
33102
class CCExprResolve;
 
33103
class CExprResolve;
 
33104
class WinIfExists;
 
33105
class WinImportHandler;
 
33106
class WinMacros;
 
33107
class WinAsm;
 
33108
class WinDeclSpecs;
 
33109
class WinMemberExplSpec;
 
33110
class WinTypeKeywords;
 
33111
class WinFriend;
 
33112
class ExtAC;
 
33113
class ExtACBuilderCoupling;
 
33114
class ExtACSyntaxCoupling;
 
33115
class ExtACTree;
 
33116
class ExtACKeywords;
 
33117
class ExtGnu;
 
33118
class PragmaOnceUnitState;
 
33119
class PragmaOnce;
 
33120
class CMatchSyntax;
 
33121
namespace Puma {
 
33122
 
 
33123
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33124
class CT_Statement : public CTree {
 
33125
#line 33126 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33126
  friend class ::CCExprResolve;
 
33127
  friend class ::CExprResolve;
 
33128
  friend class ::WinIfExists;
 
33129
  friend class ::WinImportHandler;
 
33130
  friend class ::WinMacros;
 
33131
  friend class ::WinAsm;
 
33132
  friend class ::WinDeclSpecs;
 
33133
  friend class ::WinMemberExplSpec;
 
33134
  friend class ::WinTypeKeywords;
 
33135
  friend class ::WinFriend;
 
33136
  friend class ::ExtAC;
 
33137
  friend class ::ExtACBuilderCoupling;
 
33138
  friend class ::ExtACSyntaxCoupling;
 
33139
  friend class ::ExtACTree;
 
33140
  friend class ::ExtACKeywords;
 
33141
  friend class ::ExtGnu;
 
33142
  friend class ::PragmaOnceUnitState;
 
33143
  friend class ::PragmaOnce;
 
33144
  friend class ::CMatchSyntax;
 
33145
 
 
33146
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33147
 
 
33148
protected:
 
33149
  CT_Statement () {}
 
33150
  virtual CT_Statement *IsStatement () { return this; }
 
33151
};
 
33152
 
 
33153
 
 
33154
#line 33155 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33155
} // closed Puma
 
33156
class CCExprResolve;
 
33157
class CExprResolve;
 
33158
class WinIfExists;
 
33159
class WinImportHandler;
 
33160
class WinMacros;
 
33161
class WinAsm;
 
33162
class WinDeclSpecs;
 
33163
class WinMemberExplSpec;
 
33164
class WinTypeKeywords;
 
33165
class WinFriend;
 
33166
class ExtAC;
 
33167
class ExtACBuilderCoupling;
 
33168
class ExtACSyntaxCoupling;
 
33169
class ExtACTree;
 
33170
class ExtACKeywords;
 
33171
class ExtGnu;
 
33172
class PragmaOnceUnitState;
 
33173
class PragmaOnce;
 
33174
class CMatchSyntax;
 
33175
namespace Puma {
 
33176
 
 
33177
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33178
class CT_LabelStmt : public CT_Statement {
 
33179
#line 33180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33180
  friend class ::CCExprResolve;
 
33181
  friend class ::CExprResolve;
 
33182
  friend class ::WinIfExists;
 
33183
  friend class ::WinImportHandler;
 
33184
  friend class ::WinMacros;
 
33185
  friend class ::WinAsm;
 
33186
  friend class ::WinDeclSpecs;
 
33187
  friend class ::WinMemberExplSpec;
 
33188
  friend class ::WinTypeKeywords;
 
33189
  friend class ::WinFriend;
 
33190
  friend class ::ExtAC;
 
33191
  friend class ::ExtACBuilderCoupling;
 
33192
  friend class ::ExtACSyntaxCoupling;
 
33193
  friend class ::ExtACTree;
 
33194
  friend class ::ExtACKeywords;
 
33195
  friend class ::ExtGnu;
 
33196
  friend class ::PragmaOnceUnitState;
 
33197
  friend class ::PragmaOnce;
 
33198
  friend class ::CMatchSyntax;
 
33199
 
 
33200
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33201
 
 
33202
  CTree *sons[3]; // id, colon, stmt
 
33203
 
 
33204
public:
 
33205
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
 
33206
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
33207
  }
 
33208
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33209
  static const char *NodeId ();
 
33210
  /** Get the name of the node. Can be compared with NodeId(). */
 
33211
  const char *NodeName () const { return NodeId (); }
 
33212
  /** Get the number of sons. */
 
33213
  int Sons () const { return 3; }
 
33214
  /** Get the n-th son.
 
33215
   *  \param n The index of the son.
 
33216
   *  \return The n-th son or NULL. */
 
33217
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
33218
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
33219
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
33220
  /** Replace a son.
 
33221
   *  \param old_son The son to replace.
 
33222
   *  \param new_son The new son. */
 
33223
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33224
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
33225
  }
 
33226
};
 
33227
 
 
33228
 
 
33229
#line 33230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33230
} // closed Puma
 
33231
class CCExprResolve;
 
33232
class CExprResolve;
 
33233
class WinIfExists;
 
33234
class WinImportHandler;
 
33235
class WinMacros;
 
33236
class WinAsm;
 
33237
class WinDeclSpecs;
 
33238
class WinMemberExplSpec;
 
33239
class WinTypeKeywords;
 
33240
class WinFriend;
 
33241
class ExtAC;
 
33242
class ExtACBuilderCoupling;
 
33243
class ExtACSyntaxCoupling;
 
33244
class ExtACTree;
 
33245
class ExtACKeywords;
 
33246
class ExtGnu;
 
33247
class PragmaOnceUnitState;
 
33248
class PragmaOnce;
 
33249
class CMatchSyntax;
 
33250
namespace Puma {
 
33251
 
 
33252
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33253
class CT_DefaultStmt : public CT_Statement {
 
33254
#line 33255 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33255
  friend class ::CCExprResolve;
 
33256
  friend class ::CExprResolve;
 
33257
  friend class ::WinIfExists;
 
33258
  friend class ::WinImportHandler;
 
33259
  friend class ::WinMacros;
 
33260
  friend class ::WinAsm;
 
33261
  friend class ::WinDeclSpecs;
 
33262
  friend class ::WinMemberExplSpec;
 
33263
  friend class ::WinTypeKeywords;
 
33264
  friend class ::WinFriend;
 
33265
  friend class ::ExtAC;
 
33266
  friend class ::ExtACBuilderCoupling;
 
33267
  friend class ::ExtACSyntaxCoupling;
 
33268
  friend class ::ExtACTree;
 
33269
  friend class ::ExtACKeywords;
 
33270
  friend class ::ExtGnu;
 
33271
  friend class ::PragmaOnceUnitState;
 
33272
  friend class ::PragmaOnce;
 
33273
  friend class ::CMatchSyntax;
 
33274
 
 
33275
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33276
 
 
33277
  CTree *sons[3]; // keyword, colon, stmt
 
33278
 
 
33279
public:
 
33280
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
 
33281
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
 
33282
  }
 
33283
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33284
  static const char *NodeId ();
 
33285
  /** Get the name of the node. Can be compared with NodeId(). */
 
33286
  const char *NodeName () const { return NodeId (); }
 
33287
  /** Get the number of sons. */
 
33288
  int Sons () const { return 3; }
 
33289
  /** Get the n-th son.
 
33290
   *  \param n The index of the son.
 
33291
   *  \return The n-th son or NULL. */
 
33292
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
33293
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
33294
  /** Replace a son.
 
33295
   *  \param old_son The son to replace.
 
33296
   *  \param new_son The new son. */
 
33297
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33298
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
33299
  }
 
33300
};
 
33301
 
 
33302
 
 
33303
#line 33304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33304
} // closed Puma
 
33305
class CCExprResolve;
 
33306
class CExprResolve;
 
33307
class WinIfExists;
 
33308
class WinImportHandler;
 
33309
class WinMacros;
 
33310
class WinAsm;
 
33311
class WinDeclSpecs;
 
33312
class WinMemberExplSpec;
 
33313
class WinTypeKeywords;
 
33314
class WinFriend;
 
33315
class ExtAC;
 
33316
class ExtACBuilderCoupling;
 
33317
class ExtACSyntaxCoupling;
 
33318
class ExtACTree;
 
33319
class ExtACKeywords;
 
33320
class ExtGnu;
 
33321
class PragmaOnceUnitState;
 
33322
class PragmaOnce;
 
33323
class CMatchSyntax;
 
33324
namespace Puma {
 
33325
 
 
33326
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33327
class CT_TryStmt : public CT_Statement {
 
33328
#line 33329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33329
  friend class ::CCExprResolve;
 
33330
  friend class ::CExprResolve;
 
33331
  friend class ::WinIfExists;
 
33332
  friend class ::WinImportHandler;
 
33333
  friend class ::WinMacros;
 
33334
  friend class ::WinAsm;
 
33335
  friend class ::WinDeclSpecs;
 
33336
  friend class ::WinMemberExplSpec;
 
33337
  friend class ::WinTypeKeywords;
 
33338
  friend class ::WinFriend;
 
33339
  friend class ::ExtAC;
 
33340
  friend class ::ExtACBuilderCoupling;
 
33341
  friend class ::ExtACSyntaxCoupling;
 
33342
  friend class ::ExtACTree;
 
33343
  friend class ::ExtACKeywords;
 
33344
  friend class ::ExtGnu;
 
33345
  friend class ::PragmaOnceUnitState;
 
33346
  friend class ::PragmaOnce;
 
33347
  friend class ::CMatchSyntax;
 
33348
 
 
33349
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33350
 
 
33351
  CTree *sons[3]; // try, stmt, handlers
 
33352
 
 
33353
public:
 
33354
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
 
33355
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
 
33356
  }
 
33357
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33358
  static const char *NodeId ();
 
33359
  /** Get the name of the node. Can be compared with NodeId(). */
 
33360
  const char *NodeName () const { return NodeId (); }
 
33361
  /** Get the number of sons. */
 
33362
  int Sons () const { return 3; }
 
33363
  /** Get the n-th son.
 
33364
   *  \param n The index of the son.
 
33365
   *  \return The n-th son or NULL. */
 
33366
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
33367
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
33368
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
33369
  /** Replace a son.
 
33370
   *  \param old_son The son to replace.
 
33371
   *  \param new_son The new son. */
 
33372
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33373
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
33374
  }
 
33375
};
 
33376
 
 
33377
 
 
33378
#line 33379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33379
} // closed Puma
 
33380
class CCExprResolve;
 
33381
class CExprResolve;
 
33382
class WinIfExists;
 
33383
class WinImportHandler;
 
33384
class WinMacros;
 
33385
class WinAsm;
 
33386
class WinDeclSpecs;
 
33387
class WinMemberExplSpec;
 
33388
class WinTypeKeywords;
 
33389
class WinFriend;
 
33390
class ExtAC;
 
33391
class ExtACBuilderCoupling;
 
33392
class ExtACSyntaxCoupling;
 
33393
class ExtACTree;
 
33394
class ExtACKeywords;
 
33395
class ExtGnu;
 
33396
class PragmaOnceUnitState;
 
33397
class PragmaOnce;
 
33398
class CMatchSyntax;
 
33399
namespace Puma {
 
33400
 
 
33401
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33402
class CT_CaseStmt : public CT_Statement {
 
33403
#line 33404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33404
  friend class ::CCExprResolve;
 
33405
  friend class ::CExprResolve;
 
33406
  friend class ::WinIfExists;
 
33407
  friend class ::WinImportHandler;
 
33408
  friend class ::WinMacros;
 
33409
  friend class ::WinAsm;
 
33410
  friend class ::WinDeclSpecs;
 
33411
  friend class ::WinMemberExplSpec;
 
33412
  friend class ::WinTypeKeywords;
 
33413
  friend class ::WinFriend;
 
33414
  friend class ::ExtAC;
 
33415
  friend class ::ExtACBuilderCoupling;
 
33416
  friend class ::ExtACSyntaxCoupling;
 
33417
  friend class ::ExtACTree;
 
33418
  friend class ::ExtACKeywords;
 
33419
  friend class ::ExtGnu;
 
33420
  friend class ::PragmaOnceUnitState;
 
33421
  friend class ::PragmaOnce;
 
33422
  friend class ::CMatchSyntax;
 
33423
 
 
33424
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33425
 
 
33426
  CTree *sons[4]; // keyword, expr, colon, stmt
 
33427
 
 
33428
public:
 
33429
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
 
33430
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
33431
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
 
33432
  }
 
33433
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33434
  static const char *NodeId ();
 
33435
  /** Get the name of the node. Can be compared with NodeId(). */
 
33436
  const char *NodeName () const { return NodeId (); }
 
33437
  /** Get the number of sons. */
 
33438
  int Sons () const { return 4; }
 
33439
  /** Get the n-th son.
 
33440
   *  \param n The index of the son.
 
33441
   *  \return The n-th son or NULL. */
 
33442
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
33443
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
 
33444
  CTree *Expr () const { return sons[1]; }
 
33445
  /** Replace a son.
 
33446
   *  \param old_son The son to replace.
 
33447
   *  \param new_son The new son. */
 
33448
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33449
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
33450
  }
 
33451
};
 
33452
 
 
33453
 
 
33454
#line 33455 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33455
} // closed Puma
 
33456
class CCExprResolve;
 
33457
class CExprResolve;
 
33458
class WinIfExists;
 
33459
class WinImportHandler;
 
33460
class WinMacros;
 
33461
class WinAsm;
 
33462
class WinDeclSpecs;
 
33463
class WinMemberExplSpec;
 
33464
class WinTypeKeywords;
 
33465
class WinFriend;
 
33466
class ExtAC;
 
33467
class ExtACBuilderCoupling;
 
33468
class ExtACSyntaxCoupling;
 
33469
class ExtACTree;
 
33470
class ExtACKeywords;
 
33471
class ExtGnu;
 
33472
class PragmaOnceUnitState;
 
33473
class PragmaOnce;
 
33474
class CMatchSyntax;
 
33475
namespace Puma {
 
33476
 
 
33477
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33478
class CT_ExprStmt : public CT_Statement {
 
33479
#line 33480 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33480
  friend class ::CCExprResolve;
 
33481
  friend class ::CExprResolve;
 
33482
  friend class ::WinIfExists;
 
33483
  friend class ::WinImportHandler;
 
33484
  friend class ::WinMacros;
 
33485
  friend class ::WinAsm;
 
33486
  friend class ::WinDeclSpecs;
 
33487
  friend class ::WinMemberExplSpec;
 
33488
  friend class ::WinTypeKeywords;
 
33489
  friend class ::WinFriend;
 
33490
  friend class ::ExtAC;
 
33491
  friend class ::ExtACBuilderCoupling;
 
33492
  friend class ::ExtACSyntaxCoupling;
 
33493
  friend class ::ExtACTree;
 
33494
  friend class ::ExtACKeywords;
 
33495
  friend class ::ExtGnu;
 
33496
  friend class ::PragmaOnceUnitState;
 
33497
  friend class ::PragmaOnce;
 
33498
  friend class ::CMatchSyntax;
 
33499
 
 
33500
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33501
 
 
33502
  CTree *sons[2]; // expr, semi_colon
 
33503
 
 
33504
public:
 
33505
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
33506
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33507
  static const char *NodeId ();
 
33508
  /** Get the name of the node. Can be compared with NodeId(). */
 
33509
  const char *NodeName () const { return NodeId (); }
 
33510
  /** Get the number of sons. */
 
33511
  int Sons () const { return CTree::Sons (sons, 2); }
 
33512
  /** Get the n-th son.
 
33513
   *  \param n The index of the son.
 
33514
   *  \return The n-th son or NULL. */
 
33515
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
33516
  CTree *Expr () const { return sons[0]; }
 
33517
  /** Replace a son.
 
33518
   *  \param old_son The son to replace.
 
33519
   *  \param new_son The new son. */
 
33520
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33521
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
33522
  }
 
33523
};
 
33524
 
 
33525
 
 
33526
#line 33527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33527
} // closed Puma
 
33528
class CCExprResolve;
 
33529
class CExprResolve;
 
33530
class WinIfExists;
 
33531
class WinImportHandler;
 
33532
class WinMacros;
 
33533
class WinAsm;
 
33534
class WinDeclSpecs;
 
33535
class WinMemberExplSpec;
 
33536
class WinTypeKeywords;
 
33537
class WinFriend;
 
33538
class ExtAC;
 
33539
class ExtACBuilderCoupling;
 
33540
class ExtACSyntaxCoupling;
 
33541
class ExtACTree;
 
33542
class ExtACKeywords;
 
33543
class ExtGnu;
 
33544
class PragmaOnceUnitState;
 
33545
class PragmaOnce;
 
33546
class CMatchSyntax;
 
33547
namespace Puma {
 
33548
 
 
33549
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33550
class CT_DeclStmt : public CT_Statement {
 
33551
#line 33552 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33552
  friend class ::CCExprResolve;
 
33553
  friend class ::CExprResolve;
 
33554
  friend class ::WinIfExists;
 
33555
  friend class ::WinImportHandler;
 
33556
  friend class ::WinMacros;
 
33557
  friend class ::WinAsm;
 
33558
  friend class ::WinDeclSpecs;
 
33559
  friend class ::WinMemberExplSpec;
 
33560
  friend class ::WinTypeKeywords;
 
33561
  friend class ::WinFriend;
 
33562
  friend class ::ExtAC;
 
33563
  friend class ::ExtACBuilderCoupling;
 
33564
  friend class ::ExtACSyntaxCoupling;
 
33565
  friend class ::ExtACTree;
 
33566
  friend class ::ExtACKeywords;
 
33567
  friend class ::ExtGnu;
 
33568
  friend class ::PragmaOnceUnitState;
 
33569
  friend class ::PragmaOnce;
 
33570
  friend class ::CMatchSyntax;
 
33571
 
 
33572
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33573
 
 
33574
  CTree *_decl;
 
33575
 
 
33576
public:
 
33577
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
33578
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33579
  static const char *NodeId ();
 
33580
  /** Get the name of the node. Can be compared with NodeId(). */
 
33581
  const char *NodeName () const { return NodeId (); }
 
33582
  /** Get the number of sons. */
 
33583
  int Sons () const { return 1; }
 
33584
  /** Get the n-th son.
 
33585
   *  \param n The index of the son.
 
33586
   *  \return The n-th son or NULL. */
 
33587
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
33588
  /** Replace a son.
 
33589
   *  \param old_son The son to replace.
 
33590
   *  \param new_son The new son. */
 
33591
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
33592
   { CTree::ReplaceSon (_decl, old_son, new_son); }
 
33593
};
 
33594
 
 
33595
 
 
33596
#line 33597 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33597
} // closed Puma
 
33598
class CCExprResolve;
 
33599
class CExprResolve;
 
33600
class WinIfExists;
 
33601
class WinImportHandler;
 
33602
class WinMacros;
 
33603
class WinAsm;
 
33604
class WinDeclSpecs;
 
33605
class WinMemberExplSpec;
 
33606
class WinTypeKeywords;
 
33607
class WinFriend;
 
33608
class ExtAC;
 
33609
class ExtACBuilderCoupling;
 
33610
class ExtACSyntaxCoupling;
 
33611
class ExtACTree;
 
33612
class ExtACKeywords;
 
33613
class ExtGnu;
 
33614
class PragmaOnceUnitState;
 
33615
class PragmaOnce;
 
33616
class CMatchSyntax;
 
33617
namespace Puma {
 
33618
 
 
33619
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33620
class CT_SwitchStmt : public CT_Statement, public CSemScope {
 
33621
#line 33622 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33622
  friend class ::CCExprResolve;
 
33623
  friend class ::CExprResolve;
 
33624
  friend class ::WinIfExists;
 
33625
  friend class ::WinImportHandler;
 
33626
  friend class ::WinMacros;
 
33627
  friend class ::WinAsm;
 
33628
  friend class ::WinDeclSpecs;
 
33629
  friend class ::WinMemberExplSpec;
 
33630
  friend class ::WinTypeKeywords;
 
33631
  friend class ::WinFriend;
 
33632
  friend class ::ExtAC;
 
33633
  friend class ::ExtACBuilderCoupling;
 
33634
  friend class ::ExtACSyntaxCoupling;
 
33635
  friend class ::ExtACTree;
 
33636
  friend class ::ExtACKeywords;
 
33637
  friend class ::ExtGnu;
 
33638
  friend class ::PragmaOnceUnitState;
 
33639
  friend class ::PragmaOnce;
 
33640
  friend class ::CMatchSyntax;
 
33641
 
 
33642
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33643
 
 
33644
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
33645
 
 
33646
public:
 
33647
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
33648
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
33649
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
33650
  }
 
33651
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33652
  static const char *NodeId ();
 
33653
  /** Get the name of the node. Can be compared with NodeId(). */
 
33654
  const char *NodeName () const { return NodeId (); }
 
33655
  /** Get the number of sons. */
 
33656
  int Sons () const { return 5; }
 
33657
  /** Get the n-th son.
 
33658
   *  \param n The index of the son.
 
33659
   *  \return The n-th son or NULL. */
 
33660
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
33661
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
33662
  CTree *Condition () const { return sons[2]; }
 
33663
  /** Replace a son.
 
33664
   *  \param old_son The son to replace.
 
33665
   *  \param new_son The new son. */
 
33666
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33667
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
33668
  }
 
33669
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
33670
};
 
33671
 
 
33672
 
 
33673
#line 33674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33674
} // closed Puma
 
33675
class CCExprResolve;
 
33676
class CExprResolve;
 
33677
class WinIfExists;
 
33678
class WinImportHandler;
 
33679
class WinMacros;
 
33680
class WinAsm;
 
33681
class WinDeclSpecs;
 
33682
class WinMemberExplSpec;
 
33683
class WinTypeKeywords;
 
33684
class WinFriend;
 
33685
class ExtAC;
 
33686
class ExtACBuilderCoupling;
 
33687
class ExtACSyntaxCoupling;
 
33688
class ExtACTree;
 
33689
class ExtACKeywords;
 
33690
class ExtGnu;
 
33691
class PragmaOnceUnitState;
 
33692
class PragmaOnce;
 
33693
class CMatchSyntax;
 
33694
namespace Puma {
 
33695
 
 
33696
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33697
class CT_IfStmt : public CT_Statement, public CSemScope {
 
33698
#line 33699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33699
  friend class ::CCExprResolve;
 
33700
  friend class ::CExprResolve;
 
33701
  friend class ::WinIfExists;
 
33702
  friend class ::WinImportHandler;
 
33703
  friend class ::WinMacros;
 
33704
  friend class ::WinAsm;
 
33705
  friend class ::WinDeclSpecs;
 
33706
  friend class ::WinMemberExplSpec;
 
33707
  friend class ::WinTypeKeywords;
 
33708
  friend class ::WinFriend;
 
33709
  friend class ::ExtAC;
 
33710
  friend class ::ExtACBuilderCoupling;
 
33711
  friend class ::ExtACSyntaxCoupling;
 
33712
  friend class ::ExtACTree;
 
33713
  friend class ::ExtACKeywords;
 
33714
  friend class ::ExtGnu;
 
33715
  friend class ::PragmaOnceUnitState;
 
33716
  friend class ::PragmaOnce;
 
33717
  friend class ::CMatchSyntax;
 
33718
 
 
33719
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33720
 
 
33721
  CTree *sons[5]; // keyword, open, cond, close, stmt
 
33722
 
 
33723
public:
 
33724
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
33725
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
33726
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
33727
  }
 
33728
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33729
  static const char *NodeId ();
 
33730
  /** Get the name of the node. Can be compared with NodeId(). */
 
33731
  const char *NodeName () const { return NodeId (); }
 
33732
  /** Get the number of sons. */
 
33733
  int Sons () const { return 5; }
 
33734
  /** Get the n-th son.
 
33735
   *  \param n The index of the son.
 
33736
   *  \return The n-th son or NULL. */
 
33737
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
33738
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
33739
  CTree *Condition () const { return sons[2]; }
 
33740
  /** Replace a son.
 
33741
   *  \param old_son The son to replace.
 
33742
   *  \param new_son The new son. */
 
33743
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33744
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
33745
  }
 
33746
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
33747
};
 
33748
 
 
33749
 
 
33750
#line 33751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33751
} // closed Puma
 
33752
class CCExprResolve;
 
33753
class CExprResolve;
 
33754
class WinIfExists;
 
33755
class WinImportHandler;
 
33756
class WinMacros;
 
33757
class WinAsm;
 
33758
class WinDeclSpecs;
 
33759
class WinMemberExplSpec;
 
33760
class WinTypeKeywords;
 
33761
class WinFriend;
 
33762
class ExtAC;
 
33763
class ExtACBuilderCoupling;
 
33764
class ExtACSyntaxCoupling;
 
33765
class ExtACTree;
 
33766
class ExtACKeywords;
 
33767
class ExtGnu;
 
33768
class PragmaOnceUnitState;
 
33769
class PragmaOnce;
 
33770
class CMatchSyntax;
 
33771
namespace Puma {
 
33772
 
 
33773
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33774
class CT_IfElseStmt : public CT_Statement, public CSemScope {
 
33775
#line 33776 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33776
  friend class ::CCExprResolve;
 
33777
  friend class ::CExprResolve;
 
33778
  friend class ::WinIfExists;
 
33779
  friend class ::WinImportHandler;
 
33780
  friend class ::WinMacros;
 
33781
  friend class ::WinAsm;
 
33782
  friend class ::WinDeclSpecs;
 
33783
  friend class ::WinMemberExplSpec;
 
33784
  friend class ::WinTypeKeywords;
 
33785
  friend class ::WinFriend;
 
33786
  friend class ::ExtAC;
 
33787
  friend class ::ExtACBuilderCoupling;
 
33788
  friend class ::ExtACSyntaxCoupling;
 
33789
  friend class ::ExtACTree;
 
33790
  friend class ::ExtACKeywords;
 
33791
  friend class ::ExtGnu;
 
33792
  friend class ::PragmaOnceUnitState;
 
33793
  friend class ::PragmaOnce;
 
33794
  friend class ::CMatchSyntax;
 
33795
 
 
33796
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33797
 
 
33798
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
 
33799
 
 
33800
public:
 
33801
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
 
33802
                 CTree *is, CTree *e, CTree *es) {
 
33803
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
33804
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
33805
    AddSon (sons[6], es); 
 
33806
  }
 
33807
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33808
  static const char *NodeId ();
 
33809
  /** Get the name of the node. Can be compared with NodeId(). */
 
33810
  const char *NodeName () const { return NodeId (); }
 
33811
  /** Get the number of sons. */
 
33812
  int Sons () const { return 7; }
 
33813
  /** Get the n-th son.
 
33814
   *  \param n The index of the son.
 
33815
   *  \return The n-th son or NULL. */
 
33816
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
33817
  CTree *Condition () const { return sons[2]; }
 
33818
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
 
33819
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
33820
  /** Replace a son.
 
33821
   *  \param old_son The son to replace.
 
33822
   *  \param new_son The new son. */
 
33823
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33824
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
33825
  }
 
33826
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
33827
};
 
33828
 
 
33829
 
 
33830
#line 33831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33831
} // closed Puma
 
33832
class CCExprResolve;
 
33833
class CExprResolve;
 
33834
class WinIfExists;
 
33835
class WinImportHandler;
 
33836
class WinMacros;
 
33837
class WinAsm;
 
33838
class WinDeclSpecs;
 
33839
class WinMemberExplSpec;
 
33840
class WinTypeKeywords;
 
33841
class WinFriend;
 
33842
class ExtAC;
 
33843
class ExtACBuilderCoupling;
 
33844
class ExtACSyntaxCoupling;
 
33845
class ExtACTree;
 
33846
class ExtACKeywords;
 
33847
class ExtGnu;
 
33848
class PragmaOnceUnitState;
 
33849
class PragmaOnce;
 
33850
class CMatchSyntax;
 
33851
namespace Puma {
 
33852
 
 
33853
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33854
class CT_BreakStmt : public CT_Statement {
 
33855
#line 33856 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33856
  friend class ::CCExprResolve;
 
33857
  friend class ::CExprResolve;
 
33858
  friend class ::WinIfExists;
 
33859
  friend class ::WinImportHandler;
 
33860
  friend class ::WinMacros;
 
33861
  friend class ::WinAsm;
 
33862
  friend class ::WinDeclSpecs;
 
33863
  friend class ::WinMemberExplSpec;
 
33864
  friend class ::WinTypeKeywords;
 
33865
  friend class ::WinFriend;
 
33866
  friend class ::ExtAC;
 
33867
  friend class ::ExtACBuilderCoupling;
 
33868
  friend class ::ExtACSyntaxCoupling;
 
33869
  friend class ::ExtACTree;
 
33870
  friend class ::ExtACKeywords;
 
33871
  friend class ::ExtGnu;
 
33872
  friend class ::PragmaOnceUnitState;
 
33873
  friend class ::PragmaOnce;
 
33874
  friend class ::CMatchSyntax;
 
33875
 
 
33876
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33877
 
 
33878
  CTree *sons[2]; // key, semi_colon
 
33879
 
 
33880
public:
 
33881
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
33882
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33883
  static const char *NodeId ();
 
33884
  /** Get the name of the node. Can be compared with NodeId(). */
 
33885
  const char *NodeName () const { return NodeId (); }
 
33886
  /** Get the number of sons. */
 
33887
  int Sons () const { return 2; }
 
33888
  /** Get the n-th son.
 
33889
   *  \param n The index of the son.
 
33890
   *  \return The n-th son or NULL. */
 
33891
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
33892
  /** Replace a son.
 
33893
   *  \param old_son The son to replace.
 
33894
   *  \param new_son The new son. */
 
33895
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33896
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
33897
  }
 
33898
};
 
33899
 
 
33900
 
 
33901
#line 33902 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33902
} // closed Puma
 
33903
class CCExprResolve;
 
33904
class CExprResolve;
 
33905
class WinIfExists;
 
33906
class WinImportHandler;
 
33907
class WinMacros;
 
33908
class WinAsm;
 
33909
class WinDeclSpecs;
 
33910
class WinMemberExplSpec;
 
33911
class WinTypeKeywords;
 
33912
class WinFriend;
 
33913
class ExtAC;
 
33914
class ExtACBuilderCoupling;
 
33915
class ExtACSyntaxCoupling;
 
33916
class ExtACTree;
 
33917
class ExtACKeywords;
 
33918
class ExtGnu;
 
33919
class PragmaOnceUnitState;
 
33920
class PragmaOnce;
 
33921
class CMatchSyntax;
 
33922
namespace Puma {
 
33923
 
 
33924
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33925
class CT_ContinueStmt : public CT_Statement {
 
33926
#line 33927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33927
  friend class ::CCExprResolve;
 
33928
  friend class ::CExprResolve;
 
33929
  friend class ::WinIfExists;
 
33930
  friend class ::WinImportHandler;
 
33931
  friend class ::WinMacros;
 
33932
  friend class ::WinAsm;
 
33933
  friend class ::WinDeclSpecs;
 
33934
  friend class ::WinMemberExplSpec;
 
33935
  friend class ::WinTypeKeywords;
 
33936
  friend class ::WinFriend;
 
33937
  friend class ::ExtAC;
 
33938
  friend class ::ExtACBuilderCoupling;
 
33939
  friend class ::ExtACSyntaxCoupling;
 
33940
  friend class ::ExtACTree;
 
33941
  friend class ::ExtACKeywords;
 
33942
  friend class ::ExtGnu;
 
33943
  friend class ::PragmaOnceUnitState;
 
33944
  friend class ::PragmaOnce;
 
33945
  friend class ::CMatchSyntax;
 
33946
 
 
33947
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33948
 
 
33949
  CTree *sons[2]; // key, semi_colon
 
33950
 
 
33951
public:
 
33952
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
33953
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
33954
  static const char *NodeId ();
 
33955
  /** Get the name of the node. Can be compared with NodeId(). */
 
33956
  const char *NodeName () const { return NodeId (); }
 
33957
  /** Get the number of sons. */
 
33958
  int Sons () const { return 2; }
 
33959
  /** Get the n-th son.
 
33960
   *  \param n The index of the son.
 
33961
   *  \return The n-th son or NULL. */
 
33962
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
33963
  /** Replace a son.
 
33964
   *  \param old_son The son to replace.
 
33965
   *  \param new_son The new son. */
 
33966
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
33967
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
33968
  }
 
33969
};
 
33970
 
 
33971
 
 
33972
#line 33973 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33973
} // closed Puma
 
33974
class CCExprResolve;
 
33975
class CExprResolve;
 
33976
class WinIfExists;
 
33977
class WinImportHandler;
 
33978
class WinMacros;
 
33979
class WinAsm;
 
33980
class WinDeclSpecs;
 
33981
class WinMemberExplSpec;
 
33982
class WinTypeKeywords;
 
33983
class WinFriend;
 
33984
class ExtAC;
 
33985
class ExtACBuilderCoupling;
 
33986
class ExtACSyntaxCoupling;
 
33987
class ExtACTree;
 
33988
class ExtACKeywords;
 
33989
class ExtGnu;
 
33990
class PragmaOnceUnitState;
 
33991
class PragmaOnce;
 
33992
class CMatchSyntax;
 
33993
namespace Puma {
 
33994
 
 
33995
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
33996
class CT_GotoStmt : public CT_Statement {
 
33997
#line 33998 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
33998
  friend class ::CCExprResolve;
 
33999
  friend class ::CExprResolve;
 
34000
  friend class ::WinIfExists;
 
34001
  friend class ::WinImportHandler;
 
34002
  friend class ::WinMacros;
 
34003
  friend class ::WinAsm;
 
34004
  friend class ::WinDeclSpecs;
 
34005
  friend class ::WinMemberExplSpec;
 
34006
  friend class ::WinTypeKeywords;
 
34007
  friend class ::WinFriend;
 
34008
  friend class ::ExtAC;
 
34009
  friend class ::ExtACBuilderCoupling;
 
34010
  friend class ::ExtACSyntaxCoupling;
 
34011
  friend class ::ExtACTree;
 
34012
  friend class ::ExtACKeywords;
 
34013
  friend class ::ExtGnu;
 
34014
  friend class ::PragmaOnceUnitState;
 
34015
  friend class ::PragmaOnce;
 
34016
  friend class ::CMatchSyntax;
 
34017
 
 
34018
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34019
 
 
34020
  CTree *sons[3]; // key, label, semi_colon
 
34021
 
 
34022
public:
 
34023
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
 
34024
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
 
34025
  }
 
34026
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34027
  static const char *NodeId ();
 
34028
  /** Get the name of the node. Can be compared with NodeId(). */
 
34029
  const char *NodeName () const { return NodeId (); }
 
34030
  /** Get the number of sons. */
 
34031
  int Sons () const { return 3; }
 
34032
  /** Get the n-th son.
 
34033
   *  \param n The index of the son.
 
34034
   *  \return The n-th son or NULL. */
 
34035
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
34036
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
34037
  /** Replace a son.
 
34038
   *  \param old_son The son to replace.
 
34039
   *  \param new_son The new son. */
 
34040
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
34041
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
34042
  }
 
34043
};
 
34044
 
 
34045
 
 
34046
#line 34047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34047
} // closed Puma
 
34048
class CCExprResolve;
 
34049
class CExprResolve;
 
34050
class WinIfExists;
 
34051
class WinImportHandler;
 
34052
class WinMacros;
 
34053
class WinAsm;
 
34054
class WinDeclSpecs;
 
34055
class WinMemberExplSpec;
 
34056
class WinTypeKeywords;
 
34057
class WinFriend;
 
34058
class ExtAC;
 
34059
class ExtACBuilderCoupling;
 
34060
class ExtACSyntaxCoupling;
 
34061
class ExtACTree;
 
34062
class ExtACKeywords;
 
34063
class ExtGnu;
 
34064
class PragmaOnceUnitState;
 
34065
class PragmaOnce;
 
34066
class CMatchSyntax;
 
34067
namespace Puma {
 
34068
 
 
34069
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34070
class CT_ReturnStmt : public CT_Statement {
 
34071
#line 34072 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34072
  friend class ::CCExprResolve;
 
34073
  friend class ::CExprResolve;
 
34074
  friend class ::WinIfExists;
 
34075
  friend class ::WinImportHandler;
 
34076
  friend class ::WinMacros;
 
34077
  friend class ::WinAsm;
 
34078
  friend class ::WinDeclSpecs;
 
34079
  friend class ::WinMemberExplSpec;
 
34080
  friend class ::WinTypeKeywords;
 
34081
  friend class ::WinFriend;
 
34082
  friend class ::ExtAC;
 
34083
  friend class ::ExtACBuilderCoupling;
 
34084
  friend class ::ExtACSyntaxCoupling;
 
34085
  friend class ::ExtACTree;
 
34086
  friend class ::ExtACKeywords;
 
34087
  friend class ::ExtGnu;
 
34088
  friend class ::PragmaOnceUnitState;
 
34089
  friend class ::PragmaOnce;
 
34090
  friend class ::CMatchSyntax;
 
34091
 
 
34092
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34093
 
 
34094
  CTree *sons[3]; // key, expr, semi_colon
 
34095
 
 
34096
public:
 
34097
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
 
34098
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
 
34099
  }
 
34100
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34101
  static const char *NodeId ();
 
34102
  /** Get the name of the node. Can be compared with NodeId(). */
 
34103
  const char *NodeName () const { return NodeId (); }
 
34104
  /** Get the number of sons. */
 
34105
  int Sons () const { return CTree::Sons (sons, 3); }
 
34106
  /** Get the n-th son.
 
34107
   *  \param n The index of the son.
 
34108
   *  \return The n-th son or NULL. */
 
34109
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
34110
  CTree *Expr () const { return sons[1]; }
 
34111
  /** Replace a son.
 
34112
   *  \param old_son The son to replace.
 
34113
   *  \param new_son The new son. */
 
34114
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
34115
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
34116
  }
 
34117
};
 
34118
 
 
34119
 
 
34120
#line 34121 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34121
} // closed Puma
 
34122
class CCExprResolve;
 
34123
class CExprResolve;
 
34124
class WinIfExists;
 
34125
class WinImportHandler;
 
34126
class WinMacros;
 
34127
class WinAsm;
 
34128
class WinDeclSpecs;
 
34129
class WinMemberExplSpec;
 
34130
class WinTypeKeywords;
 
34131
class WinFriend;
 
34132
class ExtAC;
 
34133
class ExtACBuilderCoupling;
 
34134
class ExtACSyntaxCoupling;
 
34135
class ExtACTree;
 
34136
class ExtACKeywords;
 
34137
class ExtGnu;
 
34138
class PragmaOnceUnitState;
 
34139
class PragmaOnce;
 
34140
class CMatchSyntax;
 
34141
namespace Puma {
 
34142
 
 
34143
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34144
class CT_WhileStmt : public CT_Statement, public CSemScope {
 
34145
#line 34146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34146
  friend class ::CCExprResolve;
 
34147
  friend class ::CExprResolve;
 
34148
  friend class ::WinIfExists;
 
34149
  friend class ::WinImportHandler;
 
34150
  friend class ::WinMacros;
 
34151
  friend class ::WinAsm;
 
34152
  friend class ::WinDeclSpecs;
 
34153
  friend class ::WinMemberExplSpec;
 
34154
  friend class ::WinTypeKeywords;
 
34155
  friend class ::WinFriend;
 
34156
  friend class ::ExtAC;
 
34157
  friend class ::ExtACBuilderCoupling;
 
34158
  friend class ::ExtACSyntaxCoupling;
 
34159
  friend class ::ExtACTree;
 
34160
  friend class ::ExtACKeywords;
 
34161
  friend class ::ExtGnu;
 
34162
  friend class ::PragmaOnceUnitState;
 
34163
  friend class ::PragmaOnce;
 
34164
  friend class ::CMatchSyntax;
 
34165
 
 
34166
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34167
 
 
34168
  CTree *sons[5]; // key, open, cond, close, stmt
 
34169
 
 
34170
public:
 
34171
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
 
34172
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
34173
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
 
34174
  }
 
34175
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34176
  static const char *NodeId ();
 
34177
  /** Get the name of the node. Can be compared with NodeId(). */
 
34178
  const char *NodeName () const { return NodeId (); }
 
34179
  /** Get the number of sons. */
 
34180
  int Sons () const { return 5; }
 
34181
  /** Get the n-th son.
 
34182
   *  \param n The index of the son.
 
34183
   *  \return The n-th son or NULL. */
 
34184
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
34185
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
 
34186
  CTree *Condition () const { return sons[2]; }
 
34187
  /** Replace a son.
 
34188
   *  \param old_son The son to replace.
 
34189
   *  \param new_son The new son. */
 
34190
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
34191
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
34192
  }
 
34193
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
34194
};
 
34195
 
 
34196
 
 
34197
#line 34198 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34198
} // closed Puma
 
34199
class CCExprResolve;
 
34200
class CExprResolve;
 
34201
class WinIfExists;
 
34202
class WinImportHandler;
 
34203
class WinMacros;
 
34204
class WinAsm;
 
34205
class WinDeclSpecs;
 
34206
class WinMemberExplSpec;
 
34207
class WinTypeKeywords;
 
34208
class WinFriend;
 
34209
class ExtAC;
 
34210
class ExtACBuilderCoupling;
 
34211
class ExtACSyntaxCoupling;
 
34212
class ExtACTree;
 
34213
class ExtACKeywords;
 
34214
class ExtGnu;
 
34215
class PragmaOnceUnitState;
 
34216
class PragmaOnce;
 
34217
class CMatchSyntax;
 
34218
namespace Puma {
 
34219
 
 
34220
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34221
class CT_DoStmt : public CT_Statement {
 
34222
#line 34223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34223
  friend class ::CCExprResolve;
 
34224
  friend class ::CExprResolve;
 
34225
  friend class ::WinIfExists;
 
34226
  friend class ::WinImportHandler;
 
34227
  friend class ::WinMacros;
 
34228
  friend class ::WinAsm;
 
34229
  friend class ::WinDeclSpecs;
 
34230
  friend class ::WinMemberExplSpec;
 
34231
  friend class ::WinTypeKeywords;
 
34232
  friend class ::WinFriend;
 
34233
  friend class ::ExtAC;
 
34234
  friend class ::ExtACBuilderCoupling;
 
34235
  friend class ::ExtACSyntaxCoupling;
 
34236
  friend class ::ExtACTree;
 
34237
  friend class ::ExtACKeywords;
 
34238
  friend class ::ExtGnu;
 
34239
  friend class ::PragmaOnceUnitState;
 
34240
  friend class ::PragmaOnce;
 
34241
  friend class ::CMatchSyntax;
 
34242
 
 
34243
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34244
 
 
34245
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
 
34246
 
 
34247
public:
 
34248
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
 
34249
             CTree *c, CTree *sc) {
 
34250
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
34251
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
34252
    AddSon (sons[6], sc); 
 
34253
  }
 
34254
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34255
  static const char *NodeId ();
 
34256
  /** Get the name of the node. Can be compared with NodeId(). */
 
34257
  const char *NodeName () const { return NodeId (); }
 
34258
  /** Get the number of sons. */
 
34259
  int Sons () const { return 7; }
 
34260
  /** Get the n-th son.
 
34261
   *  \param n The index of the son.
 
34262
   *  \return The n-th son or NULL. */
 
34263
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
 
34264
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
 
34265
  CTree *Expr () const { return sons[4]; }
 
34266
  /** Replace a son.
 
34267
   *  \param old_son The son to replace.
 
34268
   *  \param new_son The new son. */
 
34269
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
34270
    CTree::ReplaceSon (sons, 7, old_son, new_son);
 
34271
  }
 
34272
};
 
34273
 
 
34274
 
 
34275
#line 34276 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34276
} // closed Puma
 
34277
class CCExprResolve;
 
34278
class CExprResolve;
 
34279
class WinIfExists;
 
34280
class WinImportHandler;
 
34281
class WinMacros;
 
34282
class WinAsm;
 
34283
class WinDeclSpecs;
 
34284
class WinMemberExplSpec;
 
34285
class WinTypeKeywords;
 
34286
class WinFriend;
 
34287
class ExtAC;
 
34288
class ExtACBuilderCoupling;
 
34289
class ExtACSyntaxCoupling;
 
34290
class ExtACTree;
 
34291
class ExtACKeywords;
 
34292
class ExtGnu;
 
34293
class PragmaOnceUnitState;
 
34294
class PragmaOnce;
 
34295
class CMatchSyntax;
 
34296
namespace Puma {
 
34297
 
 
34298
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34299
class CT_ForStmt : public CT_Statement, public CSemScope {
 
34300
#line 34301 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34301
  friend class ::CCExprResolve;
 
34302
  friend class ::CExprResolve;
 
34303
  friend class ::WinIfExists;
 
34304
  friend class ::WinImportHandler;
 
34305
  friend class ::WinMacros;
 
34306
  friend class ::WinAsm;
 
34307
  friend class ::WinDeclSpecs;
 
34308
  friend class ::WinMemberExplSpec;
 
34309
  friend class ::WinTypeKeywords;
 
34310
  friend class ::WinFriend;
 
34311
  friend class ::ExtAC;
 
34312
  friend class ::ExtACBuilderCoupling;
 
34313
  friend class ::ExtACSyntaxCoupling;
 
34314
  friend class ::ExtACTree;
 
34315
  friend class ::ExtACKeywords;
 
34316
  friend class ::ExtGnu;
 
34317
  friend class ::PragmaOnceUnitState;
 
34318
  friend class ::PragmaOnce;
 
34319
  friend class ::CMatchSyntax;
 
34320
 
 
34321
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34322
 
 
34323
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
 
34324
 
 
34325
public:
 
34326
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
 
34327
              CTree *e, CTree *c, CTree *stmt) {
 
34328
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
34329
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
34330
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
 
34331
  }
 
34332
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34333
  static const char *NodeId ();
 
34334
  /** Get the name of the node. Can be compared with NodeId(). */
 
34335
  const char *NodeName () const { return NodeId (); }
 
34336
  /** Get the number of sons. */
 
34337
  int Sons () const { return CTree::Sons (sons, 8); }
 
34338
  /** Get the n-th son.
 
34339
   *  \param n The index of the son.
 
34340
   *  \return The n-th son or NULL. */
 
34341
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
 
34342
  CTree *InitStmt () const { return sons[2]; }
 
34343
  CTree *Condition () const { return sons[3]; }
 
34344
  CTree *Expr () const { return sons[5]; }
 
34345
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
34346
  /** Replace a son.
 
34347
   *  \param old_son The son to replace.
 
34348
   *  \param new_son The new son. */
 
34349
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
34350
    CTree::ReplaceSon (sons, 8, old_son, new_son);
 
34351
  }
 
34352
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
34353
};
 
34354
 
 
34355
 
 
34356
#line 34357 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34357
} // closed Puma
 
34358
class CCExprResolve;
 
34359
class CExprResolve;
 
34360
class WinIfExists;
 
34361
class WinImportHandler;
 
34362
class WinMacros;
 
34363
class WinAsm;
 
34364
class WinDeclSpecs;
 
34365
class WinMemberExplSpec;
 
34366
class WinTypeKeywords;
 
34367
class WinFriend;
 
34368
class ExtAC;
 
34369
class ExtACBuilderCoupling;
 
34370
class ExtACSyntaxCoupling;
 
34371
class ExtACTree;
 
34372
class ExtACKeywords;
 
34373
class ExtGnu;
 
34374
class PragmaOnceUnitState;
 
34375
class PragmaOnce;
 
34376
class CMatchSyntax;
 
34377
namespace Puma {
 
34378
 
 
34379
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34380
class CT_Condition : public CT_Decl, public CSemObject {
 
34381
#line 34382 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34382
  friend class ::CCExprResolve;
 
34383
  friend class ::CExprResolve;
 
34384
  friend class ::WinIfExists;
 
34385
  friend class ::WinImportHandler;
 
34386
  friend class ::WinMacros;
 
34387
  friend class ::WinAsm;
 
34388
  friend class ::WinDeclSpecs;
 
34389
  friend class ::WinMemberExplSpec;
 
34390
  friend class ::WinTypeKeywords;
 
34391
  friend class ::WinFriend;
 
34392
  friend class ::ExtAC;
 
34393
  friend class ::ExtACBuilderCoupling;
 
34394
  friend class ::ExtACSyntaxCoupling;
 
34395
  friend class ::ExtACTree;
 
34396
  friend class ::ExtACKeywords;
 
34397
  friend class ::ExtGnu;
 
34398
  friend class ::PragmaOnceUnitState;
 
34399
  friend class ::PragmaOnce;
 
34400
  friend class ::CMatchSyntax;
 
34401
 
 
34402
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34403
 
 
34404
  CTree *sons[3]; // declspecs, declarator, init
 
34405
 
 
34406
public:
 
34407
  CT_Condition (CTree *dsl, CTree *d) {
 
34408
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
 
34409
  }
 
34410
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34411
  static const char *NodeId ();
 
34412
  /** Get the name of the node. Can be compared with NodeId(). */
 
34413
  const char *NodeName () const { return NodeId (); }
 
34414
  /** Get the number of sons. */
 
34415
  int Sons () const { return CTree::Sons (sons, 3); }
 
34416
  /** Get the n-th son.
 
34417
   *  \param n The index of the son.
 
34418
   *  \return The n-th son or NULL. */
 
34419
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
34420
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
34421
  CTree *Declarator () const { return sons[1]; }
 
34422
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
 
34423
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
34424
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
34425
  /** Replace a son.
 
34426
   *  \param old_son The son to replace.
 
34427
   *  \param new_son The new son. */
 
34428
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
34429
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
34430
  }
 
34431
};
 
34432
 
 
34433
/*****************************************************************************/
 
34434
/*                                                                           */
 
34435
/*                              Classes                                      */
 
34436
/*                                                                           */
 
34437
/*****************************************************************************/
 
34438
 
 
34439
 
 
34440
#line 34441 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34441
} // closed Puma
 
34442
class CCExprResolve;
 
34443
class CExprResolve;
 
34444
class WinIfExists;
 
34445
class WinImportHandler;
 
34446
class WinMacros;
 
34447
class WinAsm;
 
34448
class WinDeclSpecs;
 
34449
class WinMemberExplSpec;
 
34450
class WinTypeKeywords;
 
34451
class WinFriend;
 
34452
class ExtAC;
 
34453
class ExtACBuilderCoupling;
 
34454
class ExtACSyntaxCoupling;
 
34455
class ExtACTree;
 
34456
class ExtACKeywords;
 
34457
class ExtGnu;
 
34458
class PragmaOnceUnitState;
 
34459
class PragmaOnce;
 
34460
class CMatchSyntax;
 
34461
namespace Puma {
 
34462
 
 
34463
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34464
 
 
34465
#line 34466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34466
} // closed Puma
 
34467
 
 
34468
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
34469
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
34470
#include "ExtACTree.ah"
 
34471
#endif
 
34472
namespace Puma {
 
34473
 
 
34474
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34475
class CT_ClassDef : public CT_Decl, public CSemObject {
 
34476
#line 34477 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34477
  friend class ::CCExprResolve;
 
34478
  friend class ::CExprResolve;
 
34479
  friend class ::WinIfExists;
 
34480
  friend class ::WinImportHandler;
 
34481
  friend class ::WinMacros;
 
34482
  friend class ::WinAsm;
 
34483
  friend class ::WinDeclSpecs;
 
34484
  friend class ::WinMemberExplSpec;
 
34485
  friend class ::WinTypeKeywords;
 
34486
  friend class ::WinFriend;
 
34487
  friend class ::ExtAC;
 
34488
  friend class ::ExtACBuilderCoupling;
 
34489
  friend class ::ExtACSyntaxCoupling;
 
34490
  friend class ::ExtACTree;
 
34491
  friend class ::ExtACKeywords;
 
34492
  friend class ::ExtGnu;
 
34493
  friend class ::PragmaOnceUnitState;
 
34494
  friend class ::PragmaOnce;
 
34495
  friend class ::CMatchSyntax;
 
34496
 
 
34497
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34498
 
 
34499
   
 
34500
#line 34501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34501
 
 
34502
  struct __ac_wrapper_sons {
 
34503
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
 
34504
    operator A& () { return _data; }
 
34505
    operator A& () const { return (A&)*(::Puma::CTree * *)_data; }
 
34506
    operator const A& () { return _data; }
 
34507
    operator const A& () const { return _data; }
 
34508
    operator void* () { return _data; }
 
34509
    operator void* () const { return (void*)_data; }
 
34510
    operator const void* () { return _data; }
 
34511
    operator const void* () const { return _data; }
 
34512
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
 
34513
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
 
34514
  } sons
 
34515
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34516
 
 
34517
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34518
; // key, name, bases, members
 
34519
  CTree *obj_decl;
 
34520
 
 
34521
public:
 
34522
  
 
34523
#line 34524 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34524
 
 
34525
 
 
34526
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
34527
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
34528
  typedef TResult Result;
 
34529
  typedef TThat   That;
 
34530
  typedef TTarget Target;
 
34531
  enum { ARGS = TArgs::ARGS };
 
34532
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
34533
  static const int JPID = 55;
 
34534
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
34535
  struct Res {
 
34536
    typedef void Type;
 
34537
    typedef void ReferredType;
 
34538
  };
 
34539
 
 
34540
  That *_that;
 
34541
 
 
34542
  inline That *that() {return (That*)_that;}
 
34543
 
 
34544
};
 
34545
 
 
34546
 
 
34547
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34548
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
 
34549
#line 34550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34550
{
 
34551
  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;
 
34552
    __TJP tjp;
 
34553
  tjp._that =  (__TJP::That*)this;
 
34554
    this->__exec_old_C1(arg0, arg1, arg2);
 
34555
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
34556
  
 
34557
}
 
34558
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
34559
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34560
{
 
34561
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
34562
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
 
34563
  }
 
34564
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34565
  static const char *NodeId ();
 
34566
  /** Get the name of the node. Can be compared with NodeId(). */
 
34567
  const char *NodeName () const { return NodeId (); }
 
34568
  /** Get the number of sons. */
 
34569
  int Sons () const { return CTree::Sons (sons, 4); }
 
34570
  /** Get the n-th son.
 
34571
   *  \param n The index of the son.
 
34572
   *  \return The n-th son or NULL. */
 
34573
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
34574
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
34575
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
 
34576
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
 
34577
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
 
34578
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
34579
  void Members (CTree *m) { AddSon (sons[3], m); }
 
34580
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
34581
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
34582
  /** Replace a son.
 
34583
   *  \param old_son The son to replace.
 
34584
   *  \param new_son The new son. */
 
34585
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
34586
    CTree::ReplaceSon (sons, 4, old_son, new_son);
 
34587
  }
 
34588
   private:
 
34589
 
 
34590
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
34591
 Puma :: CTree * _intro_members ;
 
34592
Puma :: CTree * _base_intros ;
 
34593
public :
 
34594
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
34595
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
34596
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
34597
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
34598
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34599
 
 
34600
#line 34601 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34601
 
 
34602
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
34603
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
34604
  typedef TResult Result;
 
34605
  typedef TThat   That;
 
34606
  typedef TTarget Target;
 
34607
  enum { ARGS = TArgs::ARGS };
 
34608
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
34609
  static const int JPID = 6550;
 
34610
  static const AC::JPType JPTYPE = (AC::JPType)16;
 
34611
  struct Res {
 
34612
    typedef void Type;
 
34613
    typedef void ReferredType;
 
34614
  };
 
34615
 
 
34616
  That *_that;
 
34617
 
 
34618
  inline That *that() {return (That*)_that;}
 
34619
 
 
34620
};
 
34621
 
 
34622
 
 
34623
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34624
 
 
34625
#line 34626 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34626
 
 
34627
public:
 
34628
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) {
 
34629
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
34630
  __TJP tjp;
 
34631
  tjp._that =  (__TJP::That*)this;
 
34632
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
34633
 
 
34634
}
 
34635
 
 
34636
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34637
 
 
34638
#line 34639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34639
 
 
34640
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
34641
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
34642
  typedef TResult Result;
 
34643
  typedef TThat   That;
 
34644
  typedef TTarget Target;
 
34645
  enum { ARGS = TArgs::ARGS };
 
34646
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
34647
  static const int JPID = 6548;
 
34648
  static const AC::JPType JPTYPE = (AC::JPType)32;
 
34649
  struct Res {
 
34650
    typedef void Type;
 
34651
    typedef void ReferredType;
 
34652
  };
 
34653
 
 
34654
  That *_that;
 
34655
 
 
34656
  inline That *that() {return (That*)_that;}
 
34657
 
 
34658
};
 
34659
 
 
34660
 
 
34661
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34662
 
 
34663
#line 34664 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34664
 
 
34665
public:
 
34666
inline ~CT_ClassDef () {
 
34667
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
34668
  __TJP tjp;
 
34669
  tjp._that =  (__TJP::That*)this;
 
34670
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
 
34671
 
 
34672
}
 
34673
 
 
34674
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34675
};
 
34676
      
 
34677
 
 
34678
#line 34679 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34679
} // closed Puma
 
34680
class CCExprResolve;
 
34681
class CExprResolve;
 
34682
class WinIfExists;
 
34683
class WinImportHandler;
 
34684
class WinMacros;
 
34685
class WinAsm;
 
34686
class WinDeclSpecs;
 
34687
class WinMemberExplSpec;
 
34688
class WinTypeKeywords;
 
34689
class WinFriend;
 
34690
class ExtAC;
 
34691
class ExtACBuilderCoupling;
 
34692
class ExtACSyntaxCoupling;
 
34693
class ExtACTree;
 
34694
class ExtACKeywords;
 
34695
class ExtGnu;
 
34696
class PragmaOnceUnitState;
 
34697
class PragmaOnce;
 
34698
class CMatchSyntax;
 
34699
namespace Puma {
 
34700
 
 
34701
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34702
class CT_UnionDef : public CT_ClassDef {
 
34703
#line 34704 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34704
  friend class ::CCExprResolve;
 
34705
  friend class ::CExprResolve;
 
34706
  friend class ::WinIfExists;
 
34707
  friend class ::WinImportHandler;
 
34708
  friend class ::WinMacros;
 
34709
  friend class ::WinAsm;
 
34710
  friend class ::WinDeclSpecs;
 
34711
  friend class ::WinMemberExplSpec;
 
34712
  friend class ::WinTypeKeywords;
 
34713
  friend class ::WinFriend;
 
34714
  friend class ::ExtAC;
 
34715
  friend class ::ExtACBuilderCoupling;
 
34716
  friend class ::ExtACSyntaxCoupling;
 
34717
  friend class ::ExtACTree;
 
34718
  friend class ::ExtACKeywords;
 
34719
  friend class ::ExtGnu;
 
34720
  friend class ::PragmaOnceUnitState;
 
34721
  friend class ::PragmaOnce;
 
34722
  friend class ::CMatchSyntax;
 
34723
 
 
34724
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34725
 
 
34726
public:
 
34727
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
 
34728
  static const char *NodeId ();
 
34729
  /** Get the name of the node. Can be compared with NodeId(). */
 
34730
  const char *NodeName () const { return NodeId (); }
 
34731
};
 
34732
      
 
34733
 
 
34734
#line 34735 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34735
} // closed Puma
 
34736
class CCExprResolve;
 
34737
class CExprResolve;
 
34738
class WinIfExists;
 
34739
class WinImportHandler;
 
34740
class WinMacros;
 
34741
class WinAsm;
 
34742
class WinDeclSpecs;
 
34743
class WinMemberExplSpec;
 
34744
class WinTypeKeywords;
 
34745
class WinFriend;
 
34746
class ExtAC;
 
34747
class ExtACBuilderCoupling;
 
34748
class ExtACSyntaxCoupling;
 
34749
class ExtACTree;
 
34750
class ExtACKeywords;
 
34751
class ExtGnu;
 
34752
class PragmaOnceUnitState;
 
34753
class PragmaOnce;
 
34754
class CMatchSyntax;
 
34755
namespace Puma {
 
34756
 
 
34757
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34758
class CT_MembList : public CT_DeclList, public CSemScope {
 
34759
#line 34760 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34760
  friend class ::CCExprResolve;
 
34761
  friend class ::CExprResolve;
 
34762
  friend class ::WinIfExists;
 
34763
  friend class ::WinImportHandler;
 
34764
  friend class ::WinMacros;
 
34765
  friend class ::WinAsm;
 
34766
  friend class ::WinDeclSpecs;
 
34767
  friend class ::WinMemberExplSpec;
 
34768
  friend class ::WinTypeKeywords;
 
34769
  friend class ::WinFriend;
 
34770
  friend class ::ExtAC;
 
34771
  friend class ::ExtACBuilderCoupling;
 
34772
  friend class ::ExtACSyntaxCoupling;
 
34773
  friend class ::ExtACTree;
 
34774
  friend class ::ExtACKeywords;
 
34775
  friend class ::ExtGnu;
 
34776
  friend class ::PragmaOnceUnitState;
 
34777
  friend class ::PragmaOnce;
 
34778
  friend class ::CMatchSyntax;
 
34779
 
 
34780
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34781
 
 
34782
public:
 
34783
  CT_MembList (int size = 10, int incr = 10) : 
 
34784
    CT_DeclList (size, incr) {}
 
34785
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34786
  static const char *NodeId ();
 
34787
  /** Get the name of the node. Can be compared with NodeId(). */
 
34788
  const char *NodeName () const { return NodeId (); }
 
34789
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
34790
};
 
34791
 
 
34792
 
 
34793
#line 34794 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34794
} // closed Puma
 
34795
class CCExprResolve;
 
34796
class CExprResolve;
 
34797
class WinIfExists;
 
34798
class WinImportHandler;
 
34799
class WinMacros;
 
34800
class WinAsm;
 
34801
class WinDeclSpecs;
 
34802
class WinMemberExplSpec;
 
34803
class WinTypeKeywords;
 
34804
class WinFriend;
 
34805
class ExtAC;
 
34806
class ExtACBuilderCoupling;
 
34807
class ExtACSyntaxCoupling;
 
34808
class ExtACTree;
 
34809
class ExtACKeywords;
 
34810
class ExtGnu;
 
34811
class PragmaOnceUnitState;
 
34812
class PragmaOnce;
 
34813
class CMatchSyntax;
 
34814
namespace Puma {
 
34815
 
 
34816
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34817
class CT_MembInitList : public CT_List, public CSemScope {
 
34818
#line 34819 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34819
  friend class ::CCExprResolve;
 
34820
  friend class ::CExprResolve;
 
34821
  friend class ::WinIfExists;
 
34822
  friend class ::WinImportHandler;
 
34823
  friend class ::WinMacros;
 
34824
  friend class ::WinAsm;
 
34825
  friend class ::WinDeclSpecs;
 
34826
  friend class ::WinMemberExplSpec;
 
34827
  friend class ::WinTypeKeywords;
 
34828
  friend class ::WinFriend;
 
34829
  friend class ::ExtAC;
 
34830
  friend class ::ExtACBuilderCoupling;
 
34831
  friend class ::ExtACSyntaxCoupling;
 
34832
  friend class ::ExtACTree;
 
34833
  friend class ::ExtACKeywords;
 
34834
  friend class ::ExtGnu;
 
34835
  friend class ::PragmaOnceUnitState;
 
34836
  friend class ::PragmaOnce;
 
34837
  friend class ::CMatchSyntax;
 
34838
 
 
34839
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34840
 
 
34841
public:
 
34842
  CT_MembInitList (int size = 2) : 
 
34843
    CT_List (size, 2, CT_List::OPEN) {}
 
34844
  static const char *NodeId ();
 
34845
  /** Get the name of the node. Can be compared with NodeId(). */
 
34846
  const char *NodeName () const { return NodeId (); }
 
34847
  CSemScope *SemScope () const { return (CSemScope*)this; }
 
34848
};
 
34849
 
 
34850
 
 
34851
#line 34852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34852
} // closed Puma
 
34853
class CCExprResolve;
 
34854
class CExprResolve;
 
34855
class WinIfExists;
 
34856
class WinImportHandler;
 
34857
class WinMacros;
 
34858
class WinAsm;
 
34859
class WinDeclSpecs;
 
34860
class WinMemberExplSpec;
 
34861
class WinTypeKeywords;
 
34862
class WinFriend;
 
34863
class ExtAC;
 
34864
class ExtACBuilderCoupling;
 
34865
class ExtACSyntaxCoupling;
 
34866
class ExtACTree;
 
34867
class ExtACKeywords;
 
34868
class ExtGnu;
 
34869
class PragmaOnceUnitState;
 
34870
class PragmaOnce;
 
34871
class CMatchSyntax;
 
34872
namespace Puma {
 
34873
 
 
34874
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34875
 
 
34876
#line 34877 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34877
} // closed Puma
 
34878
 
 
34879
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34880
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
34881
#include "CCExprResolveH.ah"
 
34882
#endif
 
34883
namespace Puma {
 
34884
 
 
34885
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34886
 
 
34887
#line 34888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34888
} // closed Puma
 
34889
 
 
34890
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34891
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
34892
#include "CExprResolveH.ah"
 
34893
#endif
 
34894
namespace Puma {
 
34895
 
 
34896
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34897
class CT_MembInit : public CT_Expression, public CSemObject {
 
34898
#line 34899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34899
  friend class ::CCExprResolve;
 
34900
  friend class ::CExprResolve;
 
34901
  friend class ::WinIfExists;
 
34902
  friend class ::WinImportHandler;
 
34903
  friend class ::WinMacros;
 
34904
  friend class ::WinAsm;
 
34905
  friend class ::WinDeclSpecs;
 
34906
  friend class ::WinMemberExplSpec;
 
34907
  friend class ::WinTypeKeywords;
 
34908
  friend class ::WinFriend;
 
34909
  friend class ::ExtAC;
 
34910
  friend class ::ExtACBuilderCoupling;
 
34911
  friend class ::ExtACSyntaxCoupling;
 
34912
  friend class ::ExtACTree;
 
34913
  friend class ::ExtACKeywords;
 
34914
  friend class ::ExtGnu;
 
34915
  friend class ::PragmaOnceUnitState;
 
34916
  friend class ::PragmaOnce;
 
34917
  friend class ::CMatchSyntax;
 
34918
 
 
34919
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34920
 
 
34921
  CTree *sons[2]; // name, init
 
34922
 
 
34923
public:
 
34924
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
34925
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
34926
  static const char *NodeId ();
 
34927
  /** Get the name of the node. Can be compared with NodeId(). */
 
34928
  const char *NodeName () const { return NodeId (); }
 
34929
  /** Get the number of sons. */
 
34930
  int Sons () const { return 2; }
 
34931
  /** Get the n-th son.
 
34932
   *  \param n The index of the son.
 
34933
   *  \return The n-th son or NULL. */
 
34934
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
34935
  /** Replace a son.
 
34936
   *  \param old_son The son to replace.
 
34937
   *  \param new_son The new son. */
 
34938
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
34939
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
34940
  }
 
34941
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
 
34942
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
34943
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
34944
   private:
 
34945
  typedef CT_MembInit CCExprResolveExpr;
 
34946
 
 
34947
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
34948
 public :
 
34949
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
34950
  typedef CT_MembInit CExprResolveExpr;
 
34951
 
 
34952
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
34953
 public :
 
34954
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
34955
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34956
};
 
34957
 
 
34958
 
 
34959
#line 34960 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34960
} // closed Puma
 
34961
class CCExprResolve;
 
34962
class CExprResolve;
 
34963
class WinIfExists;
 
34964
class WinImportHandler;
 
34965
class WinMacros;
 
34966
class WinAsm;
 
34967
class WinDeclSpecs;
 
34968
class WinMemberExplSpec;
 
34969
class WinTypeKeywords;
 
34970
class WinFriend;
 
34971
class ExtAC;
 
34972
class ExtACBuilderCoupling;
 
34973
class ExtACSyntaxCoupling;
 
34974
class ExtACTree;
 
34975
class ExtACKeywords;
 
34976
class ExtGnu;
 
34977
class PragmaOnceUnitState;
 
34978
class PragmaOnce;
 
34979
class CMatchSyntax;
 
34980
namespace Puma {
 
34981
 
 
34982
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
34983
class CT_BaseSpecList : public CT_List {
 
34984
#line 34985 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
34985
  friend class ::CCExprResolve;
 
34986
  friend class ::CExprResolve;
 
34987
  friend class ::WinIfExists;
 
34988
  friend class ::WinImportHandler;
 
34989
  friend class ::WinMacros;
 
34990
  friend class ::WinAsm;
 
34991
  friend class ::WinDeclSpecs;
 
34992
  friend class ::WinMemberExplSpec;
 
34993
  friend class ::WinTypeKeywords;
 
34994
  friend class ::WinFriend;
 
34995
  friend class ::ExtAC;
 
34996
  friend class ::ExtACBuilderCoupling;
 
34997
  friend class ::ExtACSyntaxCoupling;
 
34998
  friend class ::ExtACTree;
 
34999
  friend class ::ExtACKeywords;
 
35000
  friend class ::ExtGnu;
 
35001
  friend class ::PragmaOnceUnitState;
 
35002
  friend class ::PragmaOnce;
 
35003
  friend class ::CMatchSyntax;
 
35004
 
 
35005
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35006
 
 
35007
public:
 
35008
  CT_BaseSpecList (int size = 2) : 
 
35009
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
35010
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35011
  static const char *NodeId ();
 
35012
  /** Get the name of the node. Can be compared with NodeId(). */
 
35013
  const char *NodeName () const { return NodeId (); }
 
35014
};
 
35015
 
 
35016
 
 
35017
#line 35018 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35018
} // closed Puma
 
35019
class CCExprResolve;
 
35020
class CExprResolve;
 
35021
class WinIfExists;
 
35022
class WinImportHandler;
 
35023
class WinMacros;
 
35024
class WinAsm;
 
35025
class WinDeclSpecs;
 
35026
class WinMemberExplSpec;
 
35027
class WinTypeKeywords;
 
35028
class WinFriend;
 
35029
class ExtAC;
 
35030
class ExtACBuilderCoupling;
 
35031
class ExtACSyntaxCoupling;
 
35032
class ExtACTree;
 
35033
class ExtACKeywords;
 
35034
class ExtGnu;
 
35035
class PragmaOnceUnitState;
 
35036
class PragmaOnce;
 
35037
class CMatchSyntax;
 
35038
namespace Puma {
 
35039
 
 
35040
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35041
class CT_AccessSpec : public CTree {
 
35042
#line 35043 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35043
  friend class ::CCExprResolve;
 
35044
  friend class ::CExprResolve;
 
35045
  friend class ::WinIfExists;
 
35046
  friend class ::WinImportHandler;
 
35047
  friend class ::WinMacros;
 
35048
  friend class ::WinAsm;
 
35049
  friend class ::WinDeclSpecs;
 
35050
  friend class ::WinMemberExplSpec;
 
35051
  friend class ::WinTypeKeywords;
 
35052
  friend class ::WinFriend;
 
35053
  friend class ::ExtAC;
 
35054
  friend class ::ExtACBuilderCoupling;
 
35055
  friend class ::ExtACSyntaxCoupling;
 
35056
  friend class ::ExtACTree;
 
35057
  friend class ::ExtACKeywords;
 
35058
  friend class ::ExtGnu;
 
35059
  friend class ::PragmaOnceUnitState;
 
35060
  friend class ::PragmaOnce;
 
35061
  friend class ::CMatchSyntax;
 
35062
 
 
35063
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35064
 
 
35065
  CTree *sons[2]; // access, colon
 
35066
 
 
35067
public:
 
35068
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
35069
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35070
  static const char *NodeId ();
 
35071
  /** Get the name of the node. Can be compared with NodeId(). */
 
35072
  const char *NodeName () const { return NodeId (); }
 
35073
  /** Get the number of sons. */
 
35074
  int Sons () const { return 2; }
 
35075
  /** Get the n-th son.
 
35076
   *  \param n The index of the son.
 
35077
   *  \return The n-th son or NULL. */
 
35078
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
35079
  int Access () const { return sons[0]->token ()->type (); }
 
35080
  /** Replace a son.
 
35081
   *  \param old_son The son to replace.
 
35082
   *  \param new_son The new son. */
 
35083
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35084
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
35085
  }
 
35086
};
 
35087
 
 
35088
 
 
35089
#line 35090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35090
} // closed Puma
 
35091
class CCExprResolve;
 
35092
class CExprResolve;
 
35093
class WinIfExists;
 
35094
class WinImportHandler;
 
35095
class WinMacros;
 
35096
class WinAsm;
 
35097
class WinDeclSpecs;
 
35098
class WinMemberExplSpec;
 
35099
class WinTypeKeywords;
 
35100
class WinFriend;
 
35101
class ExtAC;
 
35102
class ExtACBuilderCoupling;
 
35103
class ExtACSyntaxCoupling;
 
35104
class ExtACTree;
 
35105
class ExtACKeywords;
 
35106
class ExtGnu;
 
35107
class PragmaOnceUnitState;
 
35108
class PragmaOnce;
 
35109
class CMatchSyntax;
 
35110
namespace Puma {
 
35111
 
 
35112
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35113
class CT_BaseSpec : public CTree {
 
35114
#line 35115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35115
  friend class ::CCExprResolve;
 
35116
  friend class ::CExprResolve;
 
35117
  friend class ::WinIfExists;
 
35118
  friend class ::WinImportHandler;
 
35119
  friend class ::WinMacros;
 
35120
  friend class ::WinAsm;
 
35121
  friend class ::WinDeclSpecs;
 
35122
  friend class ::WinMemberExplSpec;
 
35123
  friend class ::WinTypeKeywords;
 
35124
  friend class ::WinFriend;
 
35125
  friend class ::ExtAC;
 
35126
  friend class ::ExtACBuilderCoupling;
 
35127
  friend class ::ExtACSyntaxCoupling;
 
35128
  friend class ::ExtACTree;
 
35129
  friend class ::ExtACKeywords;
 
35130
  friend class ::ExtGnu;
 
35131
  friend class ::PragmaOnceUnitState;
 
35132
  friend class ::PragmaOnce;
 
35133
  friend class ::CMatchSyntax;
 
35134
 
 
35135
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35136
 
 
35137
  CTree *sons[3]; // virtual, access, name
 
35138
 
 
35139
public:
 
35140
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
 
35141
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
 
35142
  }
 
35143
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35144
  static const char *NodeId ();
 
35145
  /** Get the name of the node. Can be compared with NodeId(). */
 
35146
  const char *NodeName () const { return NodeId (); }
 
35147
  /** Get the number of sons. */
 
35148
  int Sons () const { return CTree::Sons (sons, 3); }
 
35149
  /** Get the n-th son.
 
35150
   *  \param n The index of the son.
 
35151
   *  \return The n-th son or NULL. */
 
35152
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
35153
  int Access () const { return sons[1]->token ()->type (); }
 
35154
  CTree *AccessSpec () const { return sons[1]; }
 
35155
  CTree *Virtual () const { return sons[0]; }
 
35156
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
35157
  /** Replace a son.
 
35158
   *  \param old_son The son to replace.
 
35159
   *  \param new_son The new son. */
 
35160
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35161
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
35162
  }
 
35163
};
 
35164
 
 
35165
 
 
35166
#line 35167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35167
} // closed Puma
 
35168
class CCExprResolve;
 
35169
class CExprResolve;
 
35170
class WinIfExists;
 
35171
class WinImportHandler;
 
35172
class WinMacros;
 
35173
class WinAsm;
 
35174
class WinDeclSpecs;
 
35175
class WinMemberExplSpec;
 
35176
class WinTypeKeywords;
 
35177
class WinFriend;
 
35178
class ExtAC;
 
35179
class ExtACBuilderCoupling;
 
35180
class ExtACSyntaxCoupling;
 
35181
class ExtACTree;
 
35182
class ExtACKeywords;
 
35183
class ExtGnu;
 
35184
class PragmaOnceUnitState;
 
35185
class PragmaOnce;
 
35186
class CMatchSyntax;
 
35187
namespace Puma {
 
35188
 
 
35189
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35190
class CT_AccessDecl : public CT_Decl {
 
35191
#line 35192 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35192
  friend class ::CCExprResolve;
 
35193
  friend class ::CExprResolve;
 
35194
  friend class ::WinIfExists;
 
35195
  friend class ::WinImportHandler;
 
35196
  friend class ::WinMacros;
 
35197
  friend class ::WinAsm;
 
35198
  friend class ::WinDeclSpecs;
 
35199
  friend class ::WinMemberExplSpec;
 
35200
  friend class ::WinTypeKeywords;
 
35201
  friend class ::WinFriend;
 
35202
  friend class ::ExtAC;
 
35203
  friend class ::ExtACBuilderCoupling;
 
35204
  friend class ::ExtACSyntaxCoupling;
 
35205
  friend class ::ExtACTree;
 
35206
  friend class ::ExtACKeywords;
 
35207
  friend class ::ExtGnu;
 
35208
  friend class ::PragmaOnceUnitState;
 
35209
  friend class ::PragmaOnce;
 
35210
  friend class ::CMatchSyntax;
 
35211
 
 
35212
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35213
 
 
35214
  CTree *sons[2]; // name, semi_colon
 
35215
 
 
35216
public:
 
35217
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
35218
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35219
  static const char *NodeId ();
 
35220
  /** Get the name of the node. Can be compared with NodeId(). */
 
35221
  const char *NodeName () const { return NodeId (); }
 
35222
  /** Get the number of sons. */
 
35223
  int Sons () const { return 2; }
 
35224
  /** Get the n-th son.
 
35225
   *  \param n The index of the son.
 
35226
   *  \return The n-th son or NULL. */
 
35227
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
35228
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
35229
  /** Replace a son.
 
35230
   *  \param old_son The son to replace.
 
35231
   *  \param new_son The new son. */
 
35232
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35233
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
35234
  }
 
35235
};
 
35236
 
 
35237
 
 
35238
#line 35239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35239
} // closed Puma
 
35240
class CCExprResolve;
 
35241
class CExprResolve;
 
35242
class WinIfExists;
 
35243
class WinImportHandler;
 
35244
class WinMacros;
 
35245
class WinAsm;
 
35246
class WinDeclSpecs;
 
35247
class WinMemberExplSpec;
 
35248
class WinTypeKeywords;
 
35249
class WinFriend;
 
35250
class ExtAC;
 
35251
class ExtACBuilderCoupling;
 
35252
class ExtACSyntaxCoupling;
 
35253
class ExtACTree;
 
35254
class ExtACKeywords;
 
35255
class ExtGnu;
 
35256
class PragmaOnceUnitState;
 
35257
class PragmaOnce;
 
35258
class CMatchSyntax;
 
35259
namespace Puma {
 
35260
 
 
35261
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35262
class CT_UsingDecl : public CT_AccessDecl {
 
35263
#line 35264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35264
  friend class ::CCExprResolve;
 
35265
  friend class ::CExprResolve;
 
35266
  friend class ::WinIfExists;
 
35267
  friend class ::WinImportHandler;
 
35268
  friend class ::WinMacros;
 
35269
  friend class ::WinAsm;
 
35270
  friend class ::WinDeclSpecs;
 
35271
  friend class ::WinMemberExplSpec;
 
35272
  friend class ::WinTypeKeywords;
 
35273
  friend class ::WinFriend;
 
35274
  friend class ::ExtAC;
 
35275
  friend class ::ExtACBuilderCoupling;
 
35276
  friend class ::ExtACSyntaxCoupling;
 
35277
  friend class ::ExtACTree;
 
35278
  friend class ::ExtACKeywords;
 
35279
  friend class ::ExtGnu;
 
35280
  friend class ::PragmaOnceUnitState;
 
35281
  friend class ::PragmaOnce;
 
35282
  friend class ::CMatchSyntax;
 
35283
 
 
35284
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35285
 
 
35286
  CTree *sons[2]; // using, typename
 
35287
 
 
35288
public:
 
35289
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
35290
    AddSon (sons[0], u); AddSon (sons[1], 0); 
 
35291
  }
 
35292
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
 
35293
    AddSon (sons[0], u); AddSon (sons[1], t); 
 
35294
  }
 
35295
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35296
  static const char *NodeId ();
 
35297
  /** Get the name of the node. Can be compared with NodeId(). */
 
35298
  const char *NodeName () const { return NodeId (); }
 
35299
  /** Get the number of sons. */
 
35300
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
35301
  /** Get the n-th son.
 
35302
   *  \param n The index of the son.
 
35303
   *  \return The n-th son or NULL. */
 
35304
  CTree *Son (int n) const {
 
35305
    int num = CTree::Sons (sons, 2);
 
35306
    CTree *result = CTree::Son (sons, 2, n);
 
35307
    return result ? result : CT_AccessDecl::Son (n-num);
 
35308
  }
 
35309
  CTree *Typename () const { return sons[1]; }
 
35310
  /** Replace a son.
 
35311
   *  \param old_son The son to replace.
 
35312
   *  \param new_son The new son. */
 
35313
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35314
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
35315
    CT_AccessDecl::ReplaceSon (old_son, new_son);
 
35316
  }
 
35317
};
 
35318
 
 
35319
/*****************************************************************************/
 
35320
/*                                                                           */
 
35321
/*                              Wildcards                                    */
 
35322
/*                                                                           */
 
35323
/*****************************************************************************/
 
35324
 
 
35325
 
 
35326
#line 35327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35327
} // closed Puma
 
35328
class CCExprResolve;
 
35329
class CExprResolve;
 
35330
class WinIfExists;
 
35331
class WinImportHandler;
 
35332
class WinMacros;
 
35333
class WinAsm;
 
35334
class WinDeclSpecs;
 
35335
class WinMemberExplSpec;
 
35336
class WinTypeKeywords;
 
35337
class WinFriend;
 
35338
class ExtAC;
 
35339
class ExtACBuilderCoupling;
 
35340
class ExtACSyntaxCoupling;
 
35341
class ExtACTree;
 
35342
class ExtACKeywords;
 
35343
class ExtGnu;
 
35344
class PragmaOnceUnitState;
 
35345
class PragmaOnce;
 
35346
class CMatchSyntax;
 
35347
namespace Puma {
 
35348
 
 
35349
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35350
class CT_Any : public CTree {
 
35351
#line 35352 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35352
  friend class ::CCExprResolve;
 
35353
  friend class ::CExprResolve;
 
35354
  friend class ::WinIfExists;
 
35355
  friend class ::WinImportHandler;
 
35356
  friend class ::WinMacros;
 
35357
  friend class ::WinAsm;
 
35358
  friend class ::WinDeclSpecs;
 
35359
  friend class ::WinMemberExplSpec;
 
35360
  friend class ::WinTypeKeywords;
 
35361
  friend class ::WinFriend;
 
35362
  friend class ::ExtAC;
 
35363
  friend class ::ExtACBuilderCoupling;
 
35364
  friend class ::ExtACSyntaxCoupling;
 
35365
  friend class ::ExtACTree;
 
35366
  friend class ::ExtACKeywords;
 
35367
  friend class ::ExtGnu;
 
35368
  friend class ::PragmaOnceUnitState;
 
35369
  friend class ::PragmaOnce;
 
35370
  friend class ::CMatchSyntax;
 
35371
 
 
35372
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35373
 
 
35374
  CTree *sons[2]; // keyword, extension
 
35375
 
 
35376
public:
 
35377
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
35378
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35379
  static const char *NodeId ();
 
35380
  /** Get the name of the node. Can be compared with NodeId(). */
 
35381
  const char *NodeName () const { return NodeId (); }
 
35382
  /** Get the number of sons. */
 
35383
  int Sons () const { return CTree::Sons (sons, 2); }
 
35384
  /** Get the n-th son.
 
35385
   *  \param n The index of the son.
 
35386
   *  \return The n-th son or NULL. */
 
35387
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
35388
  /** Replace a son.
 
35389
   *  \param old_son The son to replace.
 
35390
   *  \param new_son The new son. */
 
35391
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35392
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
35393
  }
 
35394
  int AnyType () const { return sons[0]->token ()->type (); }
 
35395
  CT_AnyExtension *Extension () const { return (CT_AnyExtension*)sons[1]; }
 
35396
};
 
35397
 
 
35398
 
 
35399
#line 35400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35400
} // closed Puma
 
35401
class CCExprResolve;
 
35402
class CExprResolve;
 
35403
class WinIfExists;
 
35404
class WinImportHandler;
 
35405
class WinMacros;
 
35406
class WinAsm;
 
35407
class WinDeclSpecs;
 
35408
class WinMemberExplSpec;
 
35409
class WinTypeKeywords;
 
35410
class WinFriend;
 
35411
class ExtAC;
 
35412
class ExtACBuilderCoupling;
 
35413
class ExtACSyntaxCoupling;
 
35414
class ExtACTree;
 
35415
class ExtACKeywords;
 
35416
class ExtGnu;
 
35417
class PragmaOnceUnitState;
 
35418
class PragmaOnce;
 
35419
class CMatchSyntax;
 
35420
namespace Puma {
 
35421
 
 
35422
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35423
class CT_AnyList : public CT_Any {
 
35424
#line 35425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35425
  friend class ::CCExprResolve;
 
35426
  friend class ::CExprResolve;
 
35427
  friend class ::WinIfExists;
 
35428
  friend class ::WinImportHandler;
 
35429
  friend class ::WinMacros;
 
35430
  friend class ::WinAsm;
 
35431
  friend class ::WinDeclSpecs;
 
35432
  friend class ::WinMemberExplSpec;
 
35433
  friend class ::WinTypeKeywords;
 
35434
  friend class ::WinFriend;
 
35435
  friend class ::ExtAC;
 
35436
  friend class ::ExtACBuilderCoupling;
 
35437
  friend class ::ExtACSyntaxCoupling;
 
35438
  friend class ::ExtACTree;
 
35439
  friend class ::ExtACKeywords;
 
35440
  friend class ::ExtGnu;
 
35441
  friend class ::PragmaOnceUnitState;
 
35442
  friend class ::PragmaOnce;
 
35443
  friend class ::CMatchSyntax;
 
35444
 
 
35445
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35446
 
 
35447
public:
 
35448
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
35449
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35450
  static const char *NodeId ();
 
35451
  /** Get the name of the node. Can be compared with NodeId(). */
 
35452
  const char *NodeName () const { return NodeId (); }
 
35453
};
 
35454
 
 
35455
 
 
35456
#line 35457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35457
} // closed Puma
 
35458
class CCExprResolve;
 
35459
class CExprResolve;
 
35460
class WinIfExists;
 
35461
class WinImportHandler;
 
35462
class WinMacros;
 
35463
class WinAsm;
 
35464
class WinDeclSpecs;
 
35465
class WinMemberExplSpec;
 
35466
class WinTypeKeywords;
 
35467
class WinFriend;
 
35468
class ExtAC;
 
35469
class ExtACBuilderCoupling;
 
35470
class ExtACSyntaxCoupling;
 
35471
class ExtACTree;
 
35472
class ExtACKeywords;
 
35473
class ExtGnu;
 
35474
class PragmaOnceUnitState;
 
35475
class PragmaOnce;
 
35476
class CMatchSyntax;
 
35477
namespace Puma {
 
35478
 
 
35479
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35480
class CT_AnyExtension : public CTree, public CSemValue {
 
35481
#line 35482 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35482
  friend class ::CCExprResolve;
 
35483
  friend class ::CExprResolve;
 
35484
  friend class ::WinIfExists;
 
35485
  friend class ::WinImportHandler;
 
35486
  friend class ::WinMacros;
 
35487
  friend class ::WinAsm;
 
35488
  friend class ::WinDeclSpecs;
 
35489
  friend class ::WinMemberExplSpec;
 
35490
  friend class ::WinTypeKeywords;
 
35491
  friend class ::WinFriend;
 
35492
  friend class ::ExtAC;
 
35493
  friend class ::ExtACBuilderCoupling;
 
35494
  friend class ::ExtACSyntaxCoupling;
 
35495
  friend class ::ExtACTree;
 
35496
  friend class ::ExtACKeywords;
 
35497
  friend class ::ExtGnu;
 
35498
  friend class ::PragmaOnceUnitState;
 
35499
  friend class ::PragmaOnce;
 
35500
  friend class ::CMatchSyntax;
 
35501
 
 
35502
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35503
 
 
35504
  CTree *sons[5]; // open, string, comma, cond, close
 
35505
 
 
35506
public:
 
35507
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
 
35508
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
35509
    AddSon (sons[3], c); AddSon (sons[4], cr); 
 
35510
  }
 
35511
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35512
  static const char *NodeId ();
 
35513
  /** Get the name of the node. Can be compared with NodeId(). */
 
35514
  const char *NodeName () const { return NodeId (); }
 
35515
  /** Get the number of sons. */
 
35516
  int Sons () const { return CTree::Sons (sons, 5); }
 
35517
  /** Get the n-th son.
 
35518
   *  \param n The index of the son.
 
35519
   *  \return The n-th son or NULL. */
 
35520
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
35521
  /** Replace a son.
 
35522
   *  \param old_son The son to replace.
 
35523
   *  \param new_son The new son. */
 
35524
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35525
    CTree::ReplaceSon (sons, 5, old_son, new_son);
 
35526
  }
 
35527
  CTree *Condition () const { return sons[3]; }
 
35528
  CT_Token *String () const { return (CT_Token*)sons[1]; }
 
35529
  const char *Name () const { 
 
35530
    return value ? value->StrLiteral ()->String () : (const char*)0; }
 
35531
 
 
35532
  CExprValue *Value () const { return value; }
 
35533
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
35534
};
 
35535
 
 
35536
 
 
35537
#line 35538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35538
} // closed Puma
 
35539
class CCExprResolve;
 
35540
class CExprResolve;
 
35541
class WinIfExists;
 
35542
class WinImportHandler;
 
35543
class WinMacros;
 
35544
class WinAsm;
 
35545
class WinDeclSpecs;
 
35546
class WinMemberExplSpec;
 
35547
class WinTypeKeywords;
 
35548
class WinFriend;
 
35549
class ExtAC;
 
35550
class ExtACBuilderCoupling;
 
35551
class ExtACSyntaxCoupling;
 
35552
class ExtACTree;
 
35553
class ExtACKeywords;
 
35554
class ExtGnu;
 
35555
class PragmaOnceUnitState;
 
35556
class PragmaOnce;
 
35557
class CMatchSyntax;
 
35558
namespace Puma {
 
35559
 
 
35560
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35561
class CT_AnyCondition : public CTree {
 
35562
#line 35563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35563
  friend class ::CCExprResolve;
 
35564
  friend class ::CExprResolve;
 
35565
  friend class ::WinIfExists;
 
35566
  friend class ::WinImportHandler;
 
35567
  friend class ::WinMacros;
 
35568
  friend class ::WinAsm;
 
35569
  friend class ::WinDeclSpecs;
 
35570
  friend class ::WinMemberExplSpec;
 
35571
  friend class ::WinTypeKeywords;
 
35572
  friend class ::WinFriend;
 
35573
  friend class ::ExtAC;
 
35574
  friend class ::ExtACBuilderCoupling;
 
35575
  friend class ::ExtACSyntaxCoupling;
 
35576
  friend class ::ExtACTree;
 
35577
  friend class ::ExtACKeywords;
 
35578
  friend class ::ExtGnu;
 
35579
  friend class ::PragmaOnceUnitState;
 
35580
  friend class ::PragmaOnce;
 
35581
  friend class ::CMatchSyntax;
 
35582
 
 
35583
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
35584
 
 
35585
  CTree *sons[3]; // arg1, arg2, arg3
 
35586
 
 
35587
public:
 
35588
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
 
35589
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
 
35590
  }
 
35591
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
35592
  static const char *NodeId ();
 
35593
  /** Get the name of the node. Can be compared with NodeId(). */
 
35594
  const char *NodeName () const { return NodeId (); }
 
35595
  /** Get the number of sons. */
 
35596
  int Sons () const { return CTree::Sons (sons, 3); }
 
35597
  /** Get the n-th son.
 
35598
   *  \param n The index of the son.
 
35599
   *  \return The n-th son or NULL. */
 
35600
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
35601
  /** Replace a son.
 
35602
   *  \param old_son The son to replace.
 
35603
   *  \param new_son The new son. */
 
35604
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35605
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
35606
  }
 
35607
};
 
35608
 
 
35609
 
 
35610
} // namespace Puma
 
35611
 
 
35612
#endif /* __CTree_h__ */
 
35613
 
 
35614
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
35615
namespace Puma {
 
35616
 
 
35617
 
 
35618
 
 
35619
#line 35620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35620
} // closed Puma
 
35621
class CCExprResolve;
 
35622
class CExprResolve;
 
35623
class WinIfExists;
 
35624
class WinImportHandler;
 
35625
class WinMacros;
 
35626
class WinAsm;
 
35627
class WinDeclSpecs;
 
35628
class WinMemberExplSpec;
 
35629
class WinTypeKeywords;
 
35630
class WinFriend;
 
35631
class ExtAC;
 
35632
class ExtACBuilderCoupling;
 
35633
class ExtACSyntaxCoupling;
 
35634
class ExtACTree;
 
35635
class ExtACKeywords;
 
35636
class ExtGnu;
 
35637
class PragmaOnceUnitState;
 
35638
class PragmaOnce;
 
35639
class CMatchSyntax;
 
35640
namespace Puma {
 
35641
 
 
35642
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
35643
class CT_AdviceDecl : public CT_Decl {
 
35644
#line 35645 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35645
  friend class ::CCExprResolve;
 
35646
  friend class ::CExprResolve;
 
35647
  friend class ::WinIfExists;
 
35648
  friend class ::WinImportHandler;
 
35649
  friend class ::WinMacros;
 
35650
  friend class ::WinAsm;
 
35651
  friend class ::WinDeclSpecs;
 
35652
  friend class ::WinMemberExplSpec;
 
35653
  friend class ::WinTypeKeywords;
 
35654
  friend class ::WinFriend;
 
35655
  friend class ::ExtAC;
 
35656
  friend class ::ExtACBuilderCoupling;
 
35657
  friend class ::ExtACSyntaxCoupling;
 
35658
  friend class ::ExtACTree;
 
35659
  friend class ::ExtACKeywords;
 
35660
  friend class ::ExtGnu;
 
35661
  friend class ::PragmaOnceUnitState;
 
35662
  friend class ::PragmaOnce;
 
35663
  friend class ::CMatchSyntax;
 
35664
 
 
35665
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
35666
 
 
35667
  CTree *_advice;    // CT_Token
 
35668
  CTree *_pointcut;
 
35669
  CTree *_colon;     // CT_Token
 
35670
  CTree *_decl;
 
35671
 
 
35672
public:
 
35673
  CT_AdviceDecl (CTree *a, CTree *p, CTree *c, CTree *d) : 
 
35674
    _advice (a), _pointcut (p), _colon (c), _decl (d) {}
 
35675
  static const char *NodeId ();
 
35676
  const char *NodeName () const { return NodeId (); }
 
35677
  int Sons () const { return 4; }
 
35678
  CTree *Son (int n) const { 
 
35679
    switch (n) { 
 
35680
      case 0: return _advice;
 
35681
      case 1: return _pointcut;
 
35682
      case 2: return _colon;
 
35683
      case 3: return _decl;
 
35684
      default: return (CTree*)0;
 
35685
    }
 
35686
  }
 
35687
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35688
    if (old_son == _decl) _decl = new_son; 
 
35689
    else if (old_son == _pointcut) _pointcut = new_son; 
 
35690
    else if (old_son == _advice) _advice = new_son; 
 
35691
    else if (old_son == _colon) _colon = new_son; 
 
35692
  }
 
35693
  CTree *Pointcut () const { return _pointcut; }
 
35694
  CTree *Decl () const { return _decl; }
 
35695
};
 
35696
 
 
35697
 
 
35698
#line 35699 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35699
} // closed Puma
 
35700
class CCExprResolve;
 
35701
class CExprResolve;
 
35702
class WinIfExists;
 
35703
class WinImportHandler;
 
35704
class WinMacros;
 
35705
class WinAsm;
 
35706
class WinDeclSpecs;
 
35707
class WinMemberExplSpec;
 
35708
class WinTypeKeywords;
 
35709
class WinFriend;
 
35710
class ExtAC;
 
35711
class ExtACBuilderCoupling;
 
35712
class ExtACSyntaxCoupling;
 
35713
class ExtACTree;
 
35714
class ExtACKeywords;
 
35715
class ExtGnu;
 
35716
class PragmaOnceUnitState;
 
35717
class PragmaOnce;
 
35718
class CMatchSyntax;
 
35719
namespace Puma {
 
35720
 
 
35721
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
35722
class CT_OrderList : public CT_List {
 
35723
#line 35724 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35724
  friend class ::CCExprResolve;
 
35725
  friend class ::CExprResolve;
 
35726
  friend class ::WinIfExists;
 
35727
  friend class ::WinImportHandler;
 
35728
  friend class ::WinMacros;
 
35729
  friend class ::WinAsm;
 
35730
  friend class ::WinDeclSpecs;
 
35731
  friend class ::WinMemberExplSpec;
 
35732
  friend class ::WinTypeKeywords;
 
35733
  friend class ::WinFriend;
 
35734
  friend class ::ExtAC;
 
35735
  friend class ::ExtACBuilderCoupling;
 
35736
  friend class ::ExtACSyntaxCoupling;
 
35737
  friend class ::ExtACTree;
 
35738
  friend class ::ExtACKeywords;
 
35739
  friend class ::ExtGnu;
 
35740
  friend class ::PragmaOnceUnitState;
 
35741
  friend class ::PragmaOnce;
 
35742
  friend class ::CMatchSyntax;
 
35743
 
 
35744
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
35745
 
 
35746
public:
 
35747
  CT_OrderList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
35748
  static const char *NodeId ();
 
35749
  const char *NodeName () const { return NodeId (); }
 
35750
};
 
35751
 
 
35752
 
 
35753
#line 35754 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35754
} // closed Puma
 
35755
class CCExprResolve;
 
35756
class CExprResolve;
 
35757
class WinIfExists;
 
35758
class WinImportHandler;
 
35759
class WinMacros;
 
35760
class WinAsm;
 
35761
class WinDeclSpecs;
 
35762
class WinMemberExplSpec;
 
35763
class WinTypeKeywords;
 
35764
class WinFriend;
 
35765
class ExtAC;
 
35766
class ExtACBuilderCoupling;
 
35767
class ExtACSyntaxCoupling;
 
35768
class ExtACTree;
 
35769
class ExtACKeywords;
 
35770
class ExtGnu;
 
35771
class PragmaOnceUnitState;
 
35772
class PragmaOnce;
 
35773
class CMatchSyntax;
 
35774
namespace Puma {
 
35775
 
 
35776
#line 65 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
35777
class CT_OrderDecl : public CTree {
 
35778
#line 35779 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35779
  friend class ::CCExprResolve;
 
35780
  friend class ::CExprResolve;
 
35781
  friend class ::WinIfExists;
 
35782
  friend class ::WinImportHandler;
 
35783
  friend class ::WinMacros;
 
35784
  friend class ::WinAsm;
 
35785
  friend class ::WinDeclSpecs;
 
35786
  friend class ::WinMemberExplSpec;
 
35787
  friend class ::WinTypeKeywords;
 
35788
  friend class ::WinFriend;
 
35789
  friend class ::ExtAC;
 
35790
  friend class ::ExtACBuilderCoupling;
 
35791
  friend class ::ExtACSyntaxCoupling;
 
35792
  friend class ::ExtACTree;
 
35793
  friend class ::ExtACKeywords;
 
35794
  friend class ::ExtGnu;
 
35795
  friend class ::PragmaOnceUnitState;
 
35796
  friend class ::PragmaOnce;
 
35797
  friend class ::CMatchSyntax;
 
35798
 
 
35799
#line 65 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
35800
 
 
35801
  CTree *_order;
 
35802
  CTree *_order_list;
 
35803
  CTree *_semi_colon;
 
35804
public:
 
35805
  CT_OrderDecl (CTree *o, CTree *ol, CTree *s) :
 
35806
    _order (o), _order_list (ol), _semi_colon (s) {}
 
35807
  static const char *NodeId ();
 
35808
  const char *NodeName () const { return NodeId (); }
 
35809
  int Sons () const { return 3; }
 
35810
  CTree *Son (int n) const { 
 
35811
    switch (n) { 
 
35812
      case 0: return _order;
 
35813
      case 1: return _order_list;
 
35814
      case 2: return _semi_colon;
 
35815
      default: return (CTree*)0;
 
35816
    }
 
35817
  }
 
35818
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35819
    if (old_son == _order) _order = new_son; 
 
35820
    else if (old_son == _order_list) _order_list = new_son; 
 
35821
    else if (old_son == _semi_colon) _semi_colon = new_son; 
 
35822
  }
 
35823
  CT_OrderList *OrderList () const { return (CT_OrderList*)_order_list; }
 
35824
};
 
35825
 
 
35826
 
 
35827
#line 35828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35828
} // closed Puma
 
35829
class CCExprResolve;
 
35830
class CExprResolve;
 
35831
class WinIfExists;
 
35832
class WinImportHandler;
 
35833
class WinMacros;
 
35834
class WinAsm;
 
35835
class WinDeclSpecs;
 
35836
class WinMemberExplSpec;
 
35837
class WinTypeKeywords;
 
35838
class WinFriend;
 
35839
class ExtAC;
 
35840
class ExtACBuilderCoupling;
 
35841
class ExtACSyntaxCoupling;
 
35842
class ExtACTree;
 
35843
class ExtACKeywords;
 
35844
class ExtGnu;
 
35845
class PragmaOnceUnitState;
 
35846
class PragmaOnce;
 
35847
class CMatchSyntax;
 
35848
namespace Puma {
 
35849
 
 
35850
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
35851
class CT_PointcutDecl : public CT_Decl {
 
35852
#line 35853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35853
  friend class ::CCExprResolve;
 
35854
  friend class ::CExprResolve;
 
35855
  friend class ::WinIfExists;
 
35856
  friend class ::WinImportHandler;
 
35857
  friend class ::WinMacros;
 
35858
  friend class ::WinAsm;
 
35859
  friend class ::WinDeclSpecs;
 
35860
  friend class ::WinMemberExplSpec;
 
35861
  friend class ::WinTypeKeywords;
 
35862
  friend class ::WinFriend;
 
35863
  friend class ::ExtAC;
 
35864
  friend class ::ExtACBuilderCoupling;
 
35865
  friend class ::ExtACSyntaxCoupling;
 
35866
  friend class ::ExtACTree;
 
35867
  friend class ::ExtACKeywords;
 
35868
  friend class ::ExtGnu;
 
35869
  friend class ::PragmaOnceUnitState;
 
35870
  friend class ::PragmaOnce;
 
35871
  friend class ::CMatchSyntax;
 
35872
 
 
35873
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
35874
 
 
35875
  CTree *_pointcut;    // CT_Token
 
35876
  CTree *_decl;
 
35877
 
 
35878
public:
 
35879
  CT_PointcutDecl (CTree *p, CTree *d) : _pointcut (p), _decl (d) {}
 
35880
  static const char *NodeId ();
 
35881
  const char *NodeName () const { return NodeId (); }
 
35882
  int Sons () const { return 2; }
 
35883
  CTree *Son (int n) const { 
 
35884
    switch (n) { 
 
35885
      case 0: return _pointcut;
 
35886
      case 1: return _decl;
 
35887
      default: return (CTree*)0;
 
35888
    }
 
35889
  }
 
35890
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
35891
    if (old_son == _decl) _decl = new_son; 
 
35892
    else if (old_son == _pointcut) _pointcut = new_son; 
 
35893
  }
 
35894
  CTree *Decl () const { return _decl; }
 
35895
};
 
35896
 
 
35897
 
 
35898
#line 35899 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35899
} // closed Puma
 
35900
class CCExprResolve;
 
35901
class CExprResolve;
 
35902
class WinIfExists;
 
35903
class WinImportHandler;
 
35904
class WinMacros;
 
35905
class WinAsm;
 
35906
class WinDeclSpecs;
 
35907
class WinMemberExplSpec;
 
35908
class WinTypeKeywords;
 
35909
class WinFriend;
 
35910
class ExtAC;
 
35911
class ExtACBuilderCoupling;
 
35912
class ExtACSyntaxCoupling;
 
35913
class ExtACTree;
 
35914
class ExtACKeywords;
 
35915
class ExtGnu;
 
35916
class PragmaOnceUnitState;
 
35917
class PragmaOnce;
 
35918
class CMatchSyntax;
 
35919
namespace Puma {
 
35920
 
 
35921
#line 114 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
35922
class CT_Intro : public CT_List, public CSemScope {
 
35923
#line 35924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35924
  friend class ::CCExprResolve;
 
35925
  friend class ::CExprResolve;
 
35926
  friend class ::WinIfExists;
 
35927
  friend class ::WinImportHandler;
 
35928
  friend class ::WinMacros;
 
35929
  friend class ::WinAsm;
 
35930
  friend class ::WinDeclSpecs;
 
35931
  friend class ::WinMemberExplSpec;
 
35932
  friend class ::WinTypeKeywords;
 
35933
  friend class ::WinFriend;
 
35934
  friend class ::ExtAC;
 
35935
  friend class ::ExtACBuilderCoupling;
 
35936
  friend class ::ExtACSyntaxCoupling;
 
35937
  friend class ::ExtACTree;
 
35938
  friend class ::ExtACKeywords;
 
35939
  friend class ::ExtGnu;
 
35940
  friend class ::PragmaOnceUnitState;
 
35941
  friend class ::PragmaOnce;
 
35942
  friend class ::CMatchSyntax;
 
35943
 
 
35944
#line 114 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
35945
 
 
35946
  // indices of aspect or slice names in introduction
 
35947
  Array<int> _name_indices;    // start index
 
35948
  Array<int> _name_to_indices; // end index
 
35949
  Array<bool> _name_qual;      // true if the token should be replaced by a
 
35950
                               // qualified name
 
35951
public:
 
35952
  static const char *NodeId ();
 
35953
  const char *NodeName () const { return NodeId (); }
 
35954
  void AddNameIndex (int index) {
 
35955
    _name_indices.append (index);
 
35956
    _name_to_indices.append (index);
 
35957
    _name_qual.append (false);
 
35958
  }
 
35959
  void AddNameIndex (int index_from, int index_to) {
 
35960
    _name_indices.append (index_from);
 
35961
    _name_to_indices.append (index_to);
 
35962
    _name_qual.append (true);
 
35963
  }
 
35964
  void RollbackNameIndex (int pos) {
 
35965
    for (int i = NameIndices () - 1; i >= 0; i--) {
 
35966
      if (NameIndex (i) >= pos) {
 
35967
        _name_indices.remove (i);
 
35968
        _name_to_indices.remove (i);
 
35969
        _name_qual.remove (i);
 
35970
      }
 
35971
      else
 
35972
        break;
 
35973
    }
 
35974
  }
 
35975
  int NameIndices () const { return _name_indices.length (); }
 
35976
  int NameIndex (int i) const { return _name_indices.lookup (i); }
 
35977
  int NameToIndex (int i) const { return _name_to_indices.lookup (i); }
 
35978
  bool NameQual (int i) const { return _name_qual.lookup (i); }
 
35979
};
 
35980
 
 
35981
 
 
35982
#line 35983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
35983
} // closed Puma
 
35984
class CCExprResolve;
 
35985
class CExprResolve;
 
35986
class WinIfExists;
 
35987
class WinImportHandler;
 
35988
class WinMacros;
 
35989
class WinAsm;
 
35990
class WinDeclSpecs;
 
35991
class WinMemberExplSpec;
 
35992
class WinTypeKeywords;
 
35993
class WinFriend;
 
35994
class ExtAC;
 
35995
class ExtACBuilderCoupling;
 
35996
class ExtACSyntaxCoupling;
 
35997
class ExtACTree;
 
35998
class ExtACKeywords;
 
35999
class ExtGnu;
 
36000
class PragmaOnceUnitState;
 
36001
class PragmaOnce;
 
36002
class CMatchSyntax;
 
36003
namespace Puma {
 
36004
 
 
36005
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
36006
class CT_ClassSliceDecl : public CTree, public CSemObject {
 
36007
#line 36008 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
36008
  friend class ::CCExprResolve;
 
36009
  friend class ::CExprResolve;
 
36010
  friend class ::WinIfExists;
 
36011
  friend class ::WinImportHandler;
 
36012
  friend class ::WinMacros;
 
36013
  friend class ::WinAsm;
 
36014
  friend class ::WinDeclSpecs;
 
36015
  friend class ::WinMemberExplSpec;
 
36016
  friend class ::WinTypeKeywords;
 
36017
  friend class ::WinFriend;
 
36018
  friend class ::ExtAC;
 
36019
  friend class ::ExtACBuilderCoupling;
 
36020
  friend class ::ExtACSyntaxCoupling;
 
36021
  friend class ::ExtACTree;
 
36022
  friend class ::ExtACKeywords;
 
36023
  friend class ::ExtGnu;
 
36024
  friend class ::PragmaOnceUnitState;
 
36025
  friend class ::PragmaOnce;
 
36026
  friend class ::CMatchSyntax;
 
36027
 
 
36028
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
36029
 
 
36030
  CTree *sons[6]; // SLICE? <key>? <name>? <baseclasses>? <members> ;
 
36031
public:
 
36032
  CT_ClassSliceDecl (CTree *sl, CTree *k, CTree *n, CTree *b, CTree *m, CTree *se) {
 
36033
    sons[0] = sl; sons[1] = k; sons[2] = n; sons[3] = b; sons[4] = m; sons[5] = se;
 
36034
  }
 
36035
  static const char *NodeId ();
 
36036
  const char *NodeName () const { return NodeId (); }
 
36037
  int Sons () const { return CTree::Sons (sons, 6); }
 
36038
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
36039
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36040
    CTree::ReplaceSon (sons, 6, old_son, new_son);
 
36041
  }
 
36042
  CT_Token *key () const { return (CT_Token*)sons[1]; }
 
36043
  CT_SimpleName *name () const { return (CT_SimpleName*)sons[2]; }
 
36044
  CT_Intro *base_clause () const { return (CT_Intro*)sons[3]; }
 
36045
  CT_Intro *members () const { return (CT_Intro*)sons[4]; }
 
36046
};
 
36047
 
 
36048
 
 
36049
#line 36050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
36050
} // closed Puma
 
36051
class CCExprResolve;
 
36052
class CExprResolve;
 
36053
class WinIfExists;
 
36054
class WinImportHandler;
 
36055
class WinMacros;
 
36056
class WinAsm;
 
36057
class WinDeclSpecs;
 
36058
class WinMemberExplSpec;
 
36059
class WinTypeKeywords;
 
36060
class WinFriend;
 
36061
class ExtAC;
 
36062
class ExtACBuilderCoupling;
 
36063
class ExtACSyntaxCoupling;
 
36064
class ExtACTree;
 
36065
class ExtACKeywords;
 
36066
class ExtGnu;
 
36067
class PragmaOnceUnitState;
 
36068
class PragmaOnce;
 
36069
class CMatchSyntax;
 
36070
namespace Puma {
 
36071
 
 
36072
#line 169 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
36073
class CT_SliceRef : public CTree {
 
36074
#line 36075 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
36075
  friend class ::CCExprResolve;
 
36076
  friend class ::CExprResolve;
 
36077
  friend class ::WinIfExists;
 
36078
  friend class ::WinImportHandler;
 
36079
  friend class ::WinMacros;
 
36080
  friend class ::WinAsm;
 
36081
  friend class ::WinDeclSpecs;
 
36082
  friend class ::WinMemberExplSpec;
 
36083
  friend class ::WinTypeKeywords;
 
36084
  friend class ::WinFriend;
 
36085
  friend class ::ExtAC;
 
36086
  friend class ::ExtACBuilderCoupling;
 
36087
  friend class ::ExtACSyntaxCoupling;
 
36088
  friend class ::ExtACTree;
 
36089
  friend class ::ExtACKeywords;
 
36090
  friend class ::ExtGnu;
 
36091
  friend class ::PragmaOnceUnitState;
 
36092
  friend class ::PragmaOnce;
 
36093
  friend class ::CMatchSyntax;
 
36094
 
 
36095
#line 169 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACTree.h"
 
36096
 
 
36097
  CTree *sons[3];
 
36098
public:
 
36099
  CT_SliceRef (CTree *sl, CTree *n, CTree *se) {
 
36100
    sons[0] = sl; sons[1] = n; sons[2] = se;
 
36101
  }
 
36102
  static const char *NodeId ();
 
36103
  const char *NodeName () const { return NodeId (); }
 
36104
  int Sons () const { return 3; }
 
36105
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
36106
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
36107
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
36108
  }
 
36109
  CT_SimpleName *name () const { return (CT_SimpleName*)sons[1]; }
 
36110
};
 
36111
 
 
36112
 
 
36113
} // namespace Puma
 
36114
 
 
36115
#endif /* __ACTree_h__ */
 
36116
 
 
36117
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
 
36118
// This file is part of PUMA.
 
36119
// Copyright (C) 1999-2003  The PUMA developer team.
 
36120
//                                                                
 
36121
// This program is free software;  you can redistribute it and/or 
 
36122
// modify it under the terms of the GNU General Public License as 
 
36123
// published by the Free Software Foundation; either version 2 of 
 
36124
// the License, or (at your option) any later version.            
 
36125
//                                                                
 
36126
// This program is distributed in the hope that it will be useful,
 
36127
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
36128
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
36129
// GNU General Public License for more details.                   
 
36130
//                                                                
 
36131
// You should have received a copy of the GNU General Public      
 
36132
// License along with this program; if not, write to the Free     
 
36133
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
36134
// MA  02111-1307  USA                                            
 
36135
 
 
36136
#ifndef __ACClassDatabase_h__
 
36137
#define __ACClassDatabase_h__
 
36138
 
 
36139
// #include "Puma/CClassDatabase.h"
 
36140
 
 
36141
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
 
36142
using std::ostream;
 
36143
using std::endl;
 
36144
 
 
36145
namespace Puma {
 
36146
 
 
36147
 
 
36148
class ACAspectInfo;
 
36149
class ACPointcutInfo;
 
36150
class ACSliceInfo;
 
36151
class CObjectInfo;
 
36152
class CFunctionInfo;
 
36153
class CClassInfo;
 
36154
 
 
36155
/** \file 
 
36156
 *  AspectC++ specific class database. This is a database of all
 
36157
 *  aspect and pointcut info objects.
 
36158
 *  \see Puma::ACClassDatabase */
 
36159
 
 
36160
/** \class ACClassDatabase ACClassDatabase.h Puma/infos/acinfos/ACClassDatabase.h
 
36161
 *  An ACClassDatabase object is an AspectC++ specific database of all  
 
36162
 *  aspect, slice, and pointcut info objects. */
 
36163
 
 
36164
#line 36165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
36165
} // closed Puma
 
36166
class CCExprResolve;
 
36167
class CExprResolve;
 
36168
class WinIfExists;
 
36169
class WinImportHandler;
 
36170
class WinMacros;
 
36171
class WinAsm;
 
36172
class WinDeclSpecs;
 
36173
class WinMemberExplSpec;
 
36174
class WinTypeKeywords;
 
36175
class WinFriend;
 
36176
class ExtAC;
 
36177
class ExtACBuilderCoupling;
 
36178
class ExtACSyntaxCoupling;
 
36179
class ExtACTree;
 
36180
class ExtACKeywords;
 
36181
class ExtGnu;
 
36182
class PragmaOnceUnitState;
 
36183
class PragmaOnce;
 
36184
class CMatchSyntax;
 
36185
namespace Puma {
 
36186
 
 
36187
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
 
36188
class ACClassDatabase {
 
36189
#line 36190 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
36190
  friend class ::CCExprResolve;
 
36191
  friend class ::CExprResolve;
 
36192
  friend class ::WinIfExists;
 
36193
  friend class ::WinImportHandler;
 
36194
  friend class ::WinMacros;
 
36195
  friend class ::WinAsm;
 
36196
  friend class ::WinDeclSpecs;
 
36197
  friend class ::WinMemberExplSpec;
 
36198
  friend class ::WinTypeKeywords;
 
36199
  friend class ::WinFriend;
 
36200
  friend class ::ExtAC;
 
36201
  friend class ::ExtACBuilderCoupling;
 
36202
  friend class ::ExtACSyntaxCoupling;
 
36203
  friend class ::ExtACTree;
 
36204
  friend class ::ExtACKeywords;
 
36205
  friend class ::ExtGnu;
 
36206
  friend class ::PragmaOnceUnitState;
 
36207
  friend class ::PragmaOnce;
 
36208
  friend class ::CMatchSyntax;
 
36209
 
 
36210
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACClassDatabase.h"
 
36211
 
 
36212
  Array<ACAspectInfo*>   _aspect;   // index of aspects
 
36213
  Array<ACPointcutInfo*> _pointcut; // index of pointcuts
 
36214
  Array<ACSliceInfo*>    _slice;    // index of slices
 
36215
 
 
36216
  void clear (); // release all allocated heap objects
 
36217
  
 
36218
public:
 
36219
  /** Destruct the database. Destroys all aspect and pointcut infos
 
36220
   *  in the database. */
 
36221
  virtual ~ACClassDatabase ();
 
36222
 
 
36223
  // access to the database entries /////////////////////////////
 
36224
  
 
36225
  /** Get the number of aspect infos in the database. */
 
36226
  int AspectInfos () const { return _aspect.length (); }
 
36227
  /** Get the n-th aspect info. 
 
36228
   *  \param n The number of the aspect info.
 
36229
   *  \return The aspect info or \c NULL if \e n is invalid. */
 
36230
  ACAspectInfo *AspectInfo (int n) const { return _aspect.lookup (n); }
 
36231
  /** Get the info of the aspect with the given name.
 
36232
   *  \param n The name of the aspect. 
 
36233
   *  \return The aspect info or \c NULL if there is no aspect with that name. */
 
36234
  ACAspectInfo *AspectInfo (const char *n) const;
 
36235
  /** Get the aspect info according to the given class info. 
 
36236
   *  \param ci The class info of the aspect. 
 
36237
   *  \return The aspect info or \c NULL if no matching aspect was found. */
 
36238
  ACAspectInfo *AspectInfo (CClassInfo *ci) const;
 
36239
  /** Get the number of pointcut infos in the database. */
 
36240
  int PointcutInfos () const { return _pointcut.length (); }
 
36241
  /** Get the n-th pointcut info. 
 
36242
   *  \param n The number of the pointcut info.
 
36243
   *  \return The pointcut info or \c NULL if \e n is invalid. */
 
36244
  ACPointcutInfo *PointcutInfo (int n) const { return _pointcut.lookup (n); }
 
36245
  /** Get the pointcut info according to the given function info. 
 
36246
   *  \param fi The function info of the pointcut. 
 
36247
   *  \return The pointcut info or \c NULL if no matching pointcut was found. */
 
36248
  ACPointcutInfo *PointcutInfo (CFunctionInfo* fi) const;
 
36249
  /** Get the number of slice infos in the database. */
 
36250
  int SliceInfos () const { return _slice.length (); }
 
36251
  /** Get the n-th slice info. 
 
36252
   *  \param n The number of the slice info.
 
36253
   *  \return The slice info or \c NULL if \e n is invalid. */
 
36254
  ACSliceInfo *SliceInfo (int n) const { return _slice.lookup (n); }
 
36255
  /** Get the slice info that is represented by the given object info.
 
36256
   *  \param oi The object info of the slice. 
 
36257
   *  \return The slice info or \c NULL if no matching slice was found. */
 
36258
  ACSliceInfo *SliceInfo (CObjectInfo* oi) const;
 
36259
  
 
36260
public:
 
36261
  // Administration /////////////////////////////////////////////
 
36262
 
 
36263
  /** Create a new aspect info from the given class info.
 
36264
   *  The info is added to the database.
 
36265
   *  \param ci The class info. */
 
36266
  ACAspectInfo *new_aspect (CClassInfo *ci);
 
36267
  /** Create a new pointcut info from the given function info.
 
36268
   *  The info is added to the database.
 
36269
   *  \param ci The function info. */
 
36270
  ACPointcutInfo *new_pointcut (CFunctionInfo *fi);
 
36271
  /** Create a new slice info from the given object info.
 
36272
   *  The info is added to the database.
 
36273
   *  \param oi The object info. */
 
36274
  ACSliceInfo *new_slice (CObjectInfo *oi);
 
36275
 
 
36276
  /** Dump the contents of the database. 
 
36277
   *  \param out The output stream to dump to. 
 
36278
   *  \param level The output level (not yet used). */
 
36279
  void Dump (ostream &out, int level = 0) const;
 
36280
};
 
36281
 
 
36282
inline ACClassDatabase::~ACClassDatabase () {
 
36283
  clear ();
 
36284
}
 
36285
 
 
36286
} // namespace Puma
 
36287
 
 
36288
#endif /* __ACClassDatabase_h__ */
 
36289
 
 
36290
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
 
36291
// This file is part of PUMA.
 
36292
// Copyright (C) 1999-2003  The PUMA developer team.
 
36293
//                                                                
 
36294
// This program is free software;  you can redistribute it and/or 
 
36295
// modify it under the terms of the GNU General Public License as 
 
36296
// published by the Free Software Foundation; either version 2 of 
 
36297
// the License, or (at your option) any later version.            
 
36298
//                                                                
 
36299
// This program is distributed in the hope that it will be useful,
 
36300
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
36301
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
36302
// GNU General Public License for more details.                   
 
36303
//                                                                
 
36304
// You should have received a copy of the GNU General Public      
 
36305
// License along with this program; if not, write to the Free     
 
36306
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
36307
// MA  02111-1307  USA                                            
 
36308
 
 
36309
#ifndef __ACAspectInfo_h__
 
36310
#define __ACAspectInfo_h__
 
36311
 
 
36312
#include <set>
 
36313
using std::set;
 
36314
 
 
36315
 
 
36316
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
 
36317
// This file is part of PUMA.
 
36318
// Copyright (C) 1999-2003  The PUMA developer team.
 
36319
//                                                                
 
36320
// This program is free software;  you can redistribute it and/or 
 
36321
// modify it under the terms of the GNU General Public License as 
 
36322
// published by the Free Software Foundation; either version 2 of 
 
36323
// the License, or (at your option) any later version.            
 
36324
//                                                                
 
36325
// This program is distributed in the hope that it will be useful,
 
36326
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
36327
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
36328
// GNU General Public License for more details.                   
 
36329
//                                                                
 
36330
// You should have received a copy of the GNU General Public      
 
36331
// License along with this program; if not, write to the Free     
 
36332
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
36333
// MA  02111-1307  USA                                            
 
36334
 
 
36335
#ifndef __CClassInfo_h__
 
36336
#define __CClassInfo_h__
 
36337
 
 
36338
// class/struct info 
 
36339
// knows its base and derived classes
 
36340
 
 
36341
 
 
36342
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
36343
// This file is part of PUMA.
 
36344
// Copyright (C) 1999-2003  The PUMA developer team.
 
36345
//                                                                
 
36346
// This program is free software;  you can redistribute it and/or 
 
36347
// modify it under the terms of the GNU General Public License as 
 
36348
// published by the Free Software Foundation; either version 2 of 
 
36349
// the License, or (at your option) any later version.            
 
36350
//                                                                
 
36351
// This program is distributed in the hope that it will be useful,
 
36352
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
36353
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
36354
// GNU General Public License for more details.                   
 
36355
//                                                                
 
36356
// You should have received a copy of the GNU General Public      
 
36357
// License along with this program; if not, write to the Free     
 
36358
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
36359
// MA  02111-1307  USA                                            
 
36360
 
 
36361
#ifndef __CRecord_h__
 
36362
#define __CRecord_h__
 
36363
 
 
36364
// base class of class and union infos
 
36365
 
 
36366
 
 
36367
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
36368
// This file is part of PUMA.
 
36369
// Copyright (C) 1999-2003  The PUMA developer team.
 
36370
//                                                                
 
36371
// This program is free software;  you can redistribute it and/or 
 
36372
// modify it under the terms of the GNU General Public License as 
 
36373
// published by the Free Software Foundation; either version 2 of 
 
36374
// the License, or (at your option) any later version.            
 
36375
//                                                                
 
36376
// This program is distributed in the hope that it will be useful,
 
36377
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
36378
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
36379
// GNU General Public License for more details.                   
 
36380
//                                                                
 
36381
// You should have received a copy of the GNU General Public      
 
36382
// License along with this program; if not, write to the Free     
 
36383
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
36384
// MA  02111-1307  USA                                            
 
36385
 
 
36386
#ifndef __CStructure_h__
 
36387
#define __CStructure_h__
 
36388
 
 
36389
// base class of everything that also is a scope
 
36390
// (function, class, union, namespace...)
 
36391
// stores semantic info objects for variables, 
 
36392
// enumerators, function and template parameters,
 
36393
// typedefs, classes, unions, enumerations, 
 
36394
// namespaces, using-directives, friend function 
 
36395
// declarations, functions, class methods, class 
 
36396
// data members, function and class templates,
 
36397
// function and class template instances, member 
 
36398
// aliases
 
36399
 
 
36400
 
 
36401
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
27651
36402
#ifndef __puma
27652
36403
 
27653
36404
#include <map>
27674
36425
class CMemberAliasInfo;
27675
36426
 
27676
36427
 
27677
 
#line 27678 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
36428
#line 36429 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
27678
36429
} // closed Puma
 
36430
class CCExprResolve;
 
36431
class CExprResolve;
27679
36432
class WinIfExists;
27680
36433
class WinImportHandler;
27681
36434
class WinMacros;
27682
 
class CMatchSyntax;
27683
 
class ExtGnu;
 
36435
class WinAsm;
 
36436
class WinDeclSpecs;
 
36437
class WinMemberExplSpec;
 
36438
class WinTypeKeywords;
 
36439
class WinFriend;
27684
36440
class ExtAC;
27685
36441
class ExtACBuilderCoupling;
27686
36442
class ExtACSyntaxCoupling;
27687
36443
class ExtACTree;
27688
36444
class ExtACKeywords;
27689
 
class WinAsm;
27690
 
class WinDeclSpecs;
27691
 
class WinMemberExplSpec;
27692
 
class WinTypeKeywords;
 
36445
class ExtGnu;
27693
36446
class PragmaOnceUnitState;
27694
36447
class PragmaOnce;
27695
 
class CCExprResolve;
27696
 
class CExprResolve;
 
36448
class CMatchSyntax;
27697
36449
namespace Puma {
27698
36450
 
27699
 
#line 61 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
36451
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
27700
36452
class CStructure : public CScopeInfo {
27701
 
#line 27702 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
36453
#line 36454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
36454
  friend class ::CCExprResolve;
 
36455
  friend class ::CExprResolve;
27702
36456
  friend class ::WinIfExists;
27703
36457
  friend class ::WinImportHandler;
27704
36458
  friend class ::WinMacros;
27705
 
  friend class ::CMatchSyntax;
27706
 
  friend class ::ExtGnu;
 
36459
  friend class ::WinAsm;
 
36460
  friend class ::WinDeclSpecs;
 
36461
  friend class ::WinMemberExplSpec;
 
36462
  friend class ::WinTypeKeywords;
 
36463
  friend class ::WinFriend;
27707
36464
  friend class ::ExtAC;
27708
36465
  friend class ::ExtACBuilderCoupling;
27709
36466
  friend class ::ExtACSyntaxCoupling;
27710
36467
  friend class ::ExtACTree;
27711
36468
  friend class ::ExtACKeywords;
27712
 
  friend class ::WinAsm;
27713
 
  friend class ::WinDeclSpecs;
27714
 
  friend class ::WinMemberExplSpec;
27715
 
  friend class ::WinTypeKeywords;
 
36469
  friend class ::ExtGnu;
27716
36470
  friend class ::PragmaOnceUnitState;
27717
36471
  friend class ::PragmaOnce;
27718
 
  friend class ::CCExprResolve;
27719
 
  friend class ::CExprResolve;
 
36472
  friend class ::CMatchSyntax;
27720
36473
 
27721
 
#line 61 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CStructure.h"
 
36474
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CStructure.h"
27722
36475
 
27723
36476
public:
27724
36477
#ifndef __puma
27887
36640
 
27888
36641
#endif /* __CStructure_h__ */
27889
36642
 
27890
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
36643
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
27891
36644
namespace Puma {
27892
36645
 
27893
36646
 
27894
36647
class CTemplateInfo;
27895
36648
 
27896
36649
 
27897
 
#line 27898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
36650
#line 36651 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
27898
36651
} // closed Puma
 
36652
class CCExprResolve;
 
36653
class CExprResolve;
27899
36654
class WinIfExists;
27900
36655
class WinImportHandler;
27901
36656
class WinMacros;
27902
 
class CMatchSyntax;
27903
 
class ExtGnu;
 
36657
class WinAsm;
 
36658
class WinDeclSpecs;
 
36659
class WinMemberExplSpec;
 
36660
class WinTypeKeywords;
 
36661
class WinFriend;
27904
36662
class ExtAC;
27905
36663
class ExtACBuilderCoupling;
27906
36664
class ExtACSyntaxCoupling;
27907
36665
class ExtACTree;
27908
36666
class ExtACKeywords;
27909
 
class WinAsm;
27910
 
class WinDeclSpecs;
27911
 
class WinMemberExplSpec;
27912
 
class WinTypeKeywords;
 
36667
class ExtGnu;
27913
36668
class PragmaOnceUnitState;
27914
36669
class PragmaOnce;
27915
 
class CCExprResolve;
27916
 
class CExprResolve;
 
36670
class CMatchSyntax;
27917
36671
namespace Puma {
27918
36672
 
27919
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
36673
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
27920
36674
class CRecord : public CStructure {
27921
 
#line 27922 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
36675
#line 36676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
36676
  friend class ::CCExprResolve;
 
36677
  friend class ::CExprResolve;
27922
36678
  friend class ::WinIfExists;
27923
36679
  friend class ::WinImportHandler;
27924
36680
  friend class ::WinMacros;
27925
 
  friend class ::CMatchSyntax;
27926
 
  friend class ::ExtGnu;
 
36681
  friend class ::WinAsm;
 
36682
  friend class ::WinDeclSpecs;
 
36683
  friend class ::WinMemberExplSpec;
 
36684
  friend class ::WinTypeKeywords;
 
36685
  friend class ::WinFriend;
27927
36686
  friend class ::ExtAC;
27928
36687
  friend class ::ExtACBuilderCoupling;
27929
36688
  friend class ::ExtACSyntaxCoupling;
27930
36689
  friend class ::ExtACTree;
27931
36690
  friend class ::ExtACKeywords;
27932
 
  friend class ::WinAsm;
27933
 
  friend class ::WinDeclSpecs;
27934
 
  friend class ::WinMemberExplSpec;
27935
 
  friend class ::WinTypeKeywords;
 
36691
  friend class ::ExtGnu;
27936
36692
  friend class ::PragmaOnceUnitState;
27937
36693
  friend class ::PragmaOnce;
27938
 
  friend class ::CCExprResolve;
27939
 
  friend class ::CExprResolve;
 
36694
  friend class ::CMatchSyntax;
27940
36695
 
27941
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecord.h"
 
36696
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CRecord.h"
27942
36697
 
27943
36698
//  // classes/unions using this as/in an attribute.
27944
36699
//  Array<CObjectInfo*> _Referer;     
28051
36806
 
28052
36807
#endif /* __CRecord_h__ */
28053
36808
 
28054
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
 
36809
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
28055
36810
// This file is part of PUMA.
28056
36811
// Copyright (C) 1999-2003  The PUMA developer team.
28057
36812
//                                                                
28076
36831
// base class info (used by CClassInfo)
28077
36832
 
28078
36833
 
28079
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
36834
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
28080
36835
// This file is part of PUMA.
28081
36836
// Copyright (C) 1999-2003  The PUMA developer team.
28082
36837
//                                                                
28102
36857
// an entity was declared (if it's not a scope itself)
28103
36858
 
28104
36859
 
28105
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
36860
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
28106
36861
namespace Puma {
28107
36862
 
28108
36863
 
28109
36864
class CScopeInfo;
28110
36865
 
28111
36866
 
28112
 
#line 28113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
36867
#line 36868 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
28113
36868
} // closed Puma
 
36869
class CCExprResolve;
 
36870
class CExprResolve;
28114
36871
class WinIfExists;
28115
36872
class WinImportHandler;
28116
36873
class WinMacros;
28117
 
class CMatchSyntax;
28118
 
class ExtGnu;
 
36874
class WinAsm;
 
36875
class WinDeclSpecs;
 
36876
class WinMemberExplSpec;
 
36877
class WinTypeKeywords;
 
36878
class WinFriend;
28119
36879
class ExtAC;
28120
36880
class ExtACBuilderCoupling;
28121
36881
class ExtACSyntaxCoupling;
28122
36882
class ExtACTree;
28123
36883
class ExtACKeywords;
28124
 
class WinAsm;
28125
 
class WinDeclSpecs;
28126
 
class WinMemberExplSpec;
28127
 
class WinTypeKeywords;
 
36884
class ExtGnu;
28128
36885
class PragmaOnceUnitState;
28129
36886
class PragmaOnce;
28130
 
class CCExprResolve;
28131
 
class CExprResolve;
 
36887
class CMatchSyntax;
28132
36888
namespace Puma {
28133
36889
 
28134
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
36890
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
28135
36891
class CScopeRequest : public CObjectInfo {
28136
 
#line 28137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
36892
#line 36893 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
36893
  friend class ::CCExprResolve;
 
36894
  friend class ::CExprResolve;
28137
36895
  friend class ::WinIfExists;
28138
36896
  friend class ::WinImportHandler;
28139
36897
  friend class ::WinMacros;
28140
 
  friend class ::CMatchSyntax;
28141
 
  friend class ::ExtGnu;
 
36898
  friend class ::WinAsm;
 
36899
  friend class ::WinDeclSpecs;
 
36900
  friend class ::WinMemberExplSpec;
 
36901
  friend class ::WinTypeKeywords;
 
36902
  friend class ::WinFriend;
28142
36903
  friend class ::ExtAC;
28143
36904
  friend class ::ExtACBuilderCoupling;
28144
36905
  friend class ::ExtACSyntaxCoupling;
28145
36906
  friend class ::ExtACTree;
28146
36907
  friend class ::ExtACKeywords;
28147
 
  friend class ::WinAsm;
28148
 
  friend class ::WinDeclSpecs;
28149
 
  friend class ::WinMemberExplSpec;
28150
 
  friend class ::WinTypeKeywords;
 
36908
  friend class ::ExtGnu;
28151
36909
  friend class ::PragmaOnceUnitState;
28152
36910
  friend class ::PragmaOnce;
28153
 
  friend class ::CCExprResolve;
28154
 
  friend class ::CExprResolve;
 
36911
  friend class ::CMatchSyntax;
28155
36912
 
28156
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
 
36913
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScopeRequest.h"
28157
36914
 
28158
36915
  CScopeInfo *_Scope;
28159
36916
 
28184
36941
 
28185
36942
#endif /* __CScopeRequest_h__ */
28186
36943
 
28187
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
 
36944
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
28188
36945
namespace Puma {
28189
36946
 
28190
36947
class CClassInfo;
28197
36954
/** \class CBaseClassInfo CBaseClassInfo.h Puma/infos/CBaseClassInfo.h
28198
36955
 *  A CBaseClassInfo object represents a base class of a class. */
28199
36956
 
28200
 
#line 28201 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
36957
#line 36958 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
28201
36958
} // closed Puma
 
36959
class CCExprResolve;
 
36960
class CExprResolve;
28202
36961
class WinIfExists;
28203
36962
class WinImportHandler;
28204
36963
class WinMacros;
28205
 
class CMatchSyntax;
28206
 
class ExtGnu;
 
36964
class WinAsm;
 
36965
class WinDeclSpecs;
 
36966
class WinMemberExplSpec;
 
36967
class WinTypeKeywords;
 
36968
class WinFriend;
28207
36969
class ExtAC;
28208
36970
class ExtACBuilderCoupling;
28209
36971
class ExtACSyntaxCoupling;
28210
36972
class ExtACTree;
28211
36973
class ExtACKeywords;
28212
 
class WinAsm;
28213
 
class WinDeclSpecs;
28214
 
class WinMemberExplSpec;
28215
 
class WinTypeKeywords;
 
36974
class ExtGnu;
28216
36975
class PragmaOnceUnitState;
28217
36976
class PragmaOnce;
28218
 
class CCExprResolve;
28219
 
class CExprResolve;
 
36977
class CMatchSyntax;
28220
36978
namespace Puma {
28221
36979
 
28222
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
 
36980
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
28223
36981
class CBaseClassInfo : public CScopeRequest {
28224
 
#line 28225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
36982
#line 36983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
36983
  friend class ::CCExprResolve;
 
36984
  friend class ::CExprResolve;
28225
36985
  friend class ::WinIfExists;
28226
36986
  friend class ::WinImportHandler;
28227
36987
  friend class ::WinMacros;
28228
 
  friend class ::CMatchSyntax;
28229
 
  friend class ::ExtGnu;
 
36988
  friend class ::WinAsm;
 
36989
  friend class ::WinDeclSpecs;
 
36990
  friend class ::WinMemberExplSpec;
 
36991
  friend class ::WinTypeKeywords;
 
36992
  friend class ::WinFriend;
28230
36993
  friend class ::ExtAC;
28231
36994
  friend class ::ExtACBuilderCoupling;
28232
36995
  friend class ::ExtACSyntaxCoupling;
28233
36996
  friend class ::ExtACTree;
28234
36997
  friend class ::ExtACKeywords;
28235
 
  friend class ::WinAsm;
28236
 
  friend class ::WinDeclSpecs;
28237
 
  friend class ::WinMemberExplSpec;
28238
 
  friend class ::WinTypeKeywords;
 
36998
  friend class ::ExtGnu;
28239
36999
  friend class ::PragmaOnceUnitState;
28240
37000
  friend class ::PragmaOnce;
28241
 
  friend class ::CCExprResolve;
28242
 
  friend class ::CExprResolve;
 
37001
  friend class ::CMatchSyntax;
28243
37002
 
28244
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
 
37003
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CBaseClassInfo.h"
28245
37004
 
28246
37005
  /** the info object of the base class */
28247
37006
  CClassInfo        *_Class;
28284
37043
 
28285
37044
#endif /* __CBaseClassInfo_h__ */
28286
37045
 
28287
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
 
37046
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
28288
37047
namespace Puma {
28289
37048
 
28290
37049
/** \file 
28298
37057
 *  classes. Note that a 'union', although syntactically very similar,
28299
37058
 *  is not represented by a CClassInfo object. */
28300
37059
 
28301
 
#line 28302 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
37060
#line 37061 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
28302
37061
} // closed Puma
 
37062
class CCExprResolve;
 
37063
class CExprResolve;
28303
37064
class WinIfExists;
28304
37065
class WinImportHandler;
28305
37066
class WinMacros;
28306
 
class CMatchSyntax;
28307
 
class ExtGnu;
 
37067
class WinAsm;
 
37068
class WinDeclSpecs;
 
37069
class WinMemberExplSpec;
 
37070
class WinTypeKeywords;
 
37071
class WinFriend;
28308
37072
class ExtAC;
28309
37073
class ExtACBuilderCoupling;
28310
37074
class ExtACSyntaxCoupling;
28311
37075
class ExtACTree;
28312
37076
class ExtACKeywords;
28313
 
class WinAsm;
28314
 
class WinDeclSpecs;
28315
 
class WinMemberExplSpec;
28316
 
class WinTypeKeywords;
 
37077
class ExtGnu;
28317
37078
class PragmaOnceUnitState;
28318
37079
class PragmaOnce;
28319
 
class CCExprResolve;
28320
 
class CExprResolve;
 
37080
class CMatchSyntax;
28321
37081
namespace Puma {
28322
37082
 
28323
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
 
37083
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
28324
37084
class CClassInfo : public CRecord {
28325
 
#line 28326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
37085
#line 37086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
37086
  friend class ::CCExprResolve;
 
37087
  friend class ::CExprResolve;
28326
37088
  friend class ::WinIfExists;
28327
37089
  friend class ::WinImportHandler;
28328
37090
  friend class ::WinMacros;
28329
 
  friend class ::CMatchSyntax;
28330
 
  friend class ::ExtGnu;
 
37091
  friend class ::WinAsm;
 
37092
  friend class ::WinDeclSpecs;
 
37093
  friend class ::WinMemberExplSpec;
 
37094
  friend class ::WinTypeKeywords;
 
37095
  friend class ::WinFriend;
28331
37096
  friend class ::ExtAC;
28332
37097
  friend class ::ExtACBuilderCoupling;
28333
37098
  friend class ::ExtACSyntaxCoupling;
28334
37099
  friend class ::ExtACTree;
28335
37100
  friend class ::ExtACKeywords;
28336
 
  friend class ::WinAsm;
28337
 
  friend class ::WinDeclSpecs;
28338
 
  friend class ::WinMemberExplSpec;
28339
 
  friend class ::WinTypeKeywords;
 
37101
  friend class ::ExtGnu;
28340
37102
  friend class ::PragmaOnceUnitState;
28341
37103
  friend class ::PragmaOnce;
28342
 
  friend class ::CCExprResolve;
28343
 
  friend class ::CExprResolve;
 
37104
  friend class ::CMatchSyntax;
28344
37105
 
28345
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
 
37106
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassInfo.h"
28346
37107
 
28347
37108
  Array<CBaseClassInfo*> _BaseClasses;
28348
37109
  Array<CClassInfo*> _Derived;
28452
37213
  /** Returns true if the argument function overrides any virtual function
28453
37214
   *  defined in this class or any of its base classes.
28454
37215
   *  \param fi function info object of the checked function. */
28455
 
   bool overridesVirtual (const CFunctionInfo *fi) const;
 
37216
  bool overridesVirtual (const CFunctionInfo *fi) const;
28456
37217
   
28457
37218
  /** Returns true if this class is an aggregate according to 8.5.1-1. */
28458
 
   bool isAggregate () const;
28459
 
 
 
37219
  bool isAggregate () const;
28460
37220
};
28461
37221
 
28462
37222
inline CClassInfo::CClassInfo (ObjectId id) :
28492
37252
 
28493
37253
#endif /* __CClassInfo_h__ */
28494
37254
 
28495
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
 
37255
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
28496
37256
// This file is part of PUMA.
28497
37257
// Copyright (C) 1999-2003  The PUMA developer team.
28498
37258
//                                                                
28515
37275
#define __ACIntroductionInfo_h__
28516
37276
 
28517
37277
 
28518
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
 
37278
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
28519
37279
namespace Puma {
28520
37280
 
28521
37281
 
28530
37290
 *  An ACIntroductionInfo object represents an AspectC++ introduction 
28531
37291
 *  'advice' declaration. */
28532
37292
 
28533
 
#line 28534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
37293
#line 37294 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
28534
37294
} // closed Puma
 
37295
class CCExprResolve;
 
37296
class CExprResolve;
28535
37297
class WinIfExists;
28536
37298
class WinImportHandler;
28537
37299
class WinMacros;
28538
 
class CMatchSyntax;
28539
 
class ExtGnu;
 
37300
class WinAsm;
 
37301
class WinDeclSpecs;
 
37302
class WinMemberExplSpec;
 
37303
class WinTypeKeywords;
 
37304
class WinFriend;
28540
37305
class ExtAC;
28541
37306
class ExtACBuilderCoupling;
28542
37307
class ExtACSyntaxCoupling;
28543
37308
class ExtACTree;
28544
37309
class ExtACKeywords;
28545
 
class WinAsm;
28546
 
class WinDeclSpecs;
28547
 
class WinMemberExplSpec;
28548
 
class WinTypeKeywords;
 
37310
class ExtGnu;
28549
37311
class PragmaOnceUnitState;
28550
37312
class PragmaOnce;
28551
 
class CCExprResolve;
28552
 
class CExprResolve;
 
37313
class CMatchSyntax;
28553
37314
namespace Puma {
28554
37315
 
28555
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
 
37316
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
28556
37317
class ACIntroductionInfo {
28557
 
#line 28558 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
37318
#line 37319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
37319
  friend class ::CCExprResolve;
 
37320
  friend class ::CExprResolve;
28558
37321
  friend class ::WinIfExists;
28559
37322
  friend class ::WinImportHandler;
28560
37323
  friend class ::WinMacros;
28561
 
  friend class ::CMatchSyntax;
28562
 
  friend class ::ExtGnu;
 
37324
  friend class ::WinAsm;
 
37325
  friend class ::WinDeclSpecs;
 
37326
  friend class ::WinMemberExplSpec;
 
37327
  friend class ::WinTypeKeywords;
 
37328
  friend class ::WinFriend;
28563
37329
  friend class ::ExtAC;
28564
37330
  friend class ::ExtACBuilderCoupling;
28565
37331
  friend class ::ExtACSyntaxCoupling;
28566
37332
  friend class ::ExtACTree;
28567
37333
  friend class ::ExtACKeywords;
28568
 
  friend class ::WinAsm;
28569
 
  friend class ::WinDeclSpecs;
28570
 
  friend class ::WinMemberExplSpec;
28571
 
  friend class ::WinTypeKeywords;
 
37334
  friend class ::ExtGnu;
28572
37335
  friend class ::PragmaOnceUnitState;
28573
37336
  friend class ::PragmaOnce;
28574
 
  friend class ::CCExprResolve;
28575
 
  friend class ::CExprResolve;
 
37337
  friend class ::CMatchSyntax;
28576
37338
 
28577
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
 
37339
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroductionInfo.h"
28578
37340
 
28579
37341
  CT_AdviceDecl *_def_node;
28580
37342
  CProtection::Type _prot;
28607
37369
 
28608
37370
#endif /* __ACIntroductionInfo_h__ */
28609
37371
 
28610
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
 
37372
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
28611
37373
namespace Puma {
28612
37374
 
28613
37375
 
28625
37387
 *  declaration and also parsed like a C++ class. Additionally it
28626
37388
 *  contains pointcut and advice declarations. */
28627
37389
 
28628
 
#line 28629 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
37390
#line 37391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
28629
37391
} // closed Puma
 
37392
class CCExprResolve;
 
37393
class CExprResolve;
28630
37394
class WinIfExists;
28631
37395
class WinImportHandler;
28632
37396
class WinMacros;
28633
 
class CMatchSyntax;
28634
 
class ExtGnu;
 
37397
class WinAsm;
 
37398
class WinDeclSpecs;
 
37399
class WinMemberExplSpec;
 
37400
class WinTypeKeywords;
 
37401
class WinFriend;
28635
37402
class ExtAC;
28636
37403
class ExtACBuilderCoupling;
28637
37404
class ExtACSyntaxCoupling;
28638
37405
class ExtACTree;
28639
37406
class ExtACKeywords;
28640
 
class WinAsm;
28641
 
class WinDeclSpecs;
28642
 
class WinMemberExplSpec;
28643
 
class WinTypeKeywords;
 
37407
class ExtGnu;
28644
37408
class PragmaOnceUnitState;
28645
37409
class PragmaOnce;
28646
 
class CCExprResolve;
28647
 
class CExprResolve;
 
37410
class CMatchSyntax;
28648
37411
namespace Puma {
28649
37412
 
28650
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
 
37413
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
28651
37414
class ACAspectInfo {
28652
 
#line 28653 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
37415
#line 37416 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
37416
  friend class ::CCExprResolve;
 
37417
  friend class ::CExprResolve;
28653
37418
  friend class ::WinIfExists;
28654
37419
  friend class ::WinImportHandler;
28655
37420
  friend class ::WinMacros;
28656
 
  friend class ::CMatchSyntax;
28657
 
  friend class ::ExtGnu;
 
37421
  friend class ::WinAsm;
 
37422
  friend class ::WinDeclSpecs;
 
37423
  friend class ::WinMemberExplSpec;
 
37424
  friend class ::WinTypeKeywords;
 
37425
  friend class ::WinFriend;
28658
37426
  friend class ::ExtAC;
28659
37427
  friend class ::ExtACBuilderCoupling;
28660
37428
  friend class ::ExtACSyntaxCoupling;
28661
37429
  friend class ::ExtACTree;
28662
37430
  friend class ::ExtACKeywords;
28663
 
  friend class ::WinAsm;
28664
 
  friend class ::WinDeclSpecs;
28665
 
  friend class ::WinMemberExplSpec;
28666
 
  friend class ::WinTypeKeywords;
 
37431
  friend class ::ExtGnu;
28667
37432
  friend class ::PragmaOnceUnitState;
28668
37433
  friend class ::PragmaOnce;
28669
 
  friend class ::CCExprResolve;
28670
 
  friend class ::CExprResolve;
 
37434
  friend class ::CMatchSyntax;
28671
37435
 
28672
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
 
37436
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAspectInfo.h"
28673
37437
 
28674
37438
  CClassInfo *_class;
28675
37439
  Array<ACPointcutInfo*> _pointcuts;
28780
37544
 
28781
37545
#endif /* __ACAspectInfo_h__ */
28782
37546
 
28783
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
 
37547
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
28784
37548
// This file is part of PUMA.
28785
37549
// Copyright (C) 1999-2003  The PUMA developer team.
28786
37550
//                                                                
28803
37567
#define __ACAdviceInfo_h__
28804
37568
 
28805
37569
 
28806
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
 
37570
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
28807
37571
// This file is part of PUMA.
28808
37572
// Copyright (C) 1999-2003  The PUMA developer team.
28809
37573
//                                                                
28828
37592
// function info (standard functions and methods)
28829
37593
 
28830
37594
 
28831
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
 
37595
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
28832
37596
namespace Puma {
28833
37597
 
28834
37598
 
28845
37609
/** \class CFunctionInfo CFunctionInfo.h Puma/infos/CFunctionInfo.h
28846
37610
 *  A CFunctionInfo object represents a function declaration. */
28847
37611
 
28848
 
#line 28849 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
37612
#line 37613 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
28849
37613
} // closed Puma
 
37614
class CCExprResolve;
 
37615
class CExprResolve;
28850
37616
class WinIfExists;
28851
37617
class WinImportHandler;
28852
37618
class WinMacros;
28853
 
class CMatchSyntax;
28854
 
class ExtGnu;
 
37619
class WinAsm;
 
37620
class WinDeclSpecs;
 
37621
class WinMemberExplSpec;
 
37622
class WinTypeKeywords;
 
37623
class WinFriend;
28855
37624
class ExtAC;
28856
37625
class ExtACBuilderCoupling;
28857
37626
class ExtACSyntaxCoupling;
28858
37627
class ExtACTree;
28859
37628
class ExtACKeywords;
28860
 
class WinAsm;
28861
 
class WinDeclSpecs;
28862
 
class WinMemberExplSpec;
28863
 
class WinTypeKeywords;
 
37629
class ExtGnu;
28864
37630
class PragmaOnceUnitState;
28865
37631
class PragmaOnce;
28866
 
class CCExprResolve;
28867
 
class CExprResolve;
 
37632
class CMatchSyntax;
28868
37633
namespace Puma {
28869
37634
 
28870
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
 
37635
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
28871
37636
class CFunctionInfo : public CStructure {
28872
 
#line 28873 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
37637
#line 37638 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
37638
  friend class ::CCExprResolve;
 
37639
  friend class ::CExprResolve;
28873
37640
  friend class ::WinIfExists;
28874
37641
  friend class ::WinImportHandler;
28875
37642
  friend class ::WinMacros;
28876
 
  friend class ::CMatchSyntax;
28877
 
  friend class ::ExtGnu;
 
37643
  friend class ::WinAsm;
 
37644
  friend class ::WinDeclSpecs;
 
37645
  friend class ::WinMemberExplSpec;
 
37646
  friend class ::WinTypeKeywords;
 
37647
  friend class ::WinFriend;
28878
37648
  friend class ::ExtAC;
28879
37649
  friend class ::ExtACBuilderCoupling;
28880
37650
  friend class ::ExtACSyntaxCoupling;
28881
37651
  friend class ::ExtACTree;
28882
37652
  friend class ::ExtACKeywords;
28883
 
  friend class ::WinAsm;
28884
 
  friend class ::WinDeclSpecs;
28885
 
  friend class ::WinMemberExplSpec;
28886
 
  friend class ::WinTypeKeywords;
 
37653
  friend class ::ExtGnu;
28887
37654
  friend class ::PragmaOnceUnitState;
28888
37655
  friend class ::PragmaOnce;
28889
 
  friend class ::CCExprResolve;
28890
 
  friend class ::CExprResolve;
 
37656
  friend class ::CMatchSyntax;
28891
37657
 
28892
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
 
37658
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CFunctionInfo.h"
28893
37659
 
28894
37660
  Array<CArgumentInfo*> _Arguments;
28895
37661
  Array<CLabelInfo*> _Labels;
29155
37921
 
29156
37922
#endif /* __CFunctionInfo_h__ */
29157
37923
 
29158
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
 
37924
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
29159
37925
using namespace std;
29160
37926
 
29161
37927
namespace Puma {
29171
37937
 *  An ACAdviceInfo object represents an AspectC++ 'advice' declaration. 
29172
37938
 *  An advice is part of an aspect declaration. */
29173
37939
 
29174
 
#line 29175 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
37940
#line 37941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
29175
37941
} // closed Puma
 
37942
class CCExprResolve;
 
37943
class CExprResolve;
29176
37944
class WinIfExists;
29177
37945
class WinImportHandler;
29178
37946
class WinMacros;
29179
 
class CMatchSyntax;
29180
 
class ExtGnu;
 
37947
class WinAsm;
 
37948
class WinDeclSpecs;
 
37949
class WinMemberExplSpec;
 
37950
class WinTypeKeywords;
 
37951
class WinFriend;
29181
37952
class ExtAC;
29182
37953
class ExtACBuilderCoupling;
29183
37954
class ExtACSyntaxCoupling;
29184
37955
class ExtACTree;
29185
37956
class ExtACKeywords;
29186
 
class WinAsm;
29187
 
class WinDeclSpecs;
29188
 
class WinMemberExplSpec;
29189
 
class WinTypeKeywords;
 
37957
class ExtGnu;
29190
37958
class PragmaOnceUnitState;
29191
37959
class PragmaOnce;
29192
 
class CCExprResolve;
29193
 
class CExprResolve;
 
37960
class CMatchSyntax;
29194
37961
namespace Puma {
29195
37962
 
29196
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
 
37963
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
29197
37964
class ACAdviceInfo {
29198
 
#line 29199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
37965
#line 37966 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
37966
  friend class ::CCExprResolve;
 
37967
  friend class ::CExprResolve;
29199
37968
  friend class ::WinIfExists;
29200
37969
  friend class ::WinImportHandler;
29201
37970
  friend class ::WinMacros;
29202
 
  friend class ::CMatchSyntax;
29203
 
  friend class ::ExtGnu;
 
37971
  friend class ::WinAsm;
 
37972
  friend class ::WinDeclSpecs;
 
37973
  friend class ::WinMemberExplSpec;
 
37974
  friend class ::WinTypeKeywords;
 
37975
  friend class ::WinFriend;
29204
37976
  friend class ::ExtAC;
29205
37977
  friend class ::ExtACBuilderCoupling;
29206
37978
  friend class ::ExtACSyntaxCoupling;
29207
37979
  friend class ::ExtACTree;
29208
37980
  friend class ::ExtACKeywords;
29209
 
  friend class ::WinAsm;
29210
 
  friend class ::WinDeclSpecs;
29211
 
  friend class ::WinMemberExplSpec;
29212
 
  friend class ::WinTypeKeywords;
 
37981
  friend class ::ExtGnu;
29213
37982
  friend class ::PragmaOnceUnitState;
29214
37983
  friend class ::PragmaOnce;
29215
 
  friend class ::CCExprResolve;
29216
 
  friend class ::CExprResolve;
 
37984
  friend class ::CMatchSyntax;
29217
37985
 
29218
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
 
37986
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACAdviceInfo.h"
29219
37987
 
29220
37988
public:
29221
37989
  /** The three advice types: before, around, and after advice. */
29240
38008
   *           name of the advice. */
29241
38009
  ACAdviceInfo (int n) : _def_node (0), _decl_node (0), _aspect (0), 
29242
38010
   _inherited (false), _parent (0), _uses_aspectOf (false), 
29243
 
   _have_advice_func (false) { _name << "__advice_" << n << ends; }
 
38011
   _have_advice_func (false) { _name << "__advice_" << n; }
29244
38012
 
29245
38013
  /** Get the internal name of the advice. */
29246
38014
  const char *name () { return _name.str ().c_str (); }
29301
38069
 
29302
38070
#endif /* __ACAdviceInfo_h__ */
29303
38071
 
29304
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
 
38072
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
29305
38073
// This file is part of PUMA.
29306
38074
// Copyright (C) 1999-2003  The PUMA developer team.
29307
38075
//                                                                
29324
38092
#define __ACPointCutInfo_h__
29325
38093
 
29326
38094
 
29327
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
 
38095
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
29328
38096
namespace Puma {
29329
38097
 
29330
38098
 
29340
38108
 *  A pointcut declaration is syntactically equal to a function 
29341
38109
 *  declaration and also parsed like a function. */
29342
38110
 
29343
 
#line 29344 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
38111
#line 38112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
29344
38112
} // closed Puma
 
38113
class CCExprResolve;
 
38114
class CExprResolve;
29345
38115
class WinIfExists;
29346
38116
class WinImportHandler;
29347
38117
class WinMacros;
29348
 
class CMatchSyntax;
29349
 
class ExtGnu;
 
38118
class WinAsm;
 
38119
class WinDeclSpecs;
 
38120
class WinMemberExplSpec;
 
38121
class WinTypeKeywords;
 
38122
class WinFriend;
29350
38123
class ExtAC;
29351
38124
class ExtACBuilderCoupling;
29352
38125
class ExtACSyntaxCoupling;
29353
38126
class ExtACTree;
29354
38127
class ExtACKeywords;
29355
 
class WinAsm;
29356
 
class WinDeclSpecs;
29357
 
class WinMemberExplSpec;
29358
 
class WinTypeKeywords;
 
38128
class ExtGnu;
29359
38129
class PragmaOnceUnitState;
29360
38130
class PragmaOnce;
29361
 
class CCExprResolve;
29362
 
class CExprResolve;
 
38131
class CMatchSyntax;
29363
38132
namespace Puma {
29364
38133
 
29365
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
 
38134
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
29366
38135
class ACPointcutInfo {
29367
 
#line 29368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
38136
#line 38137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
38137
  friend class ::CCExprResolve;
 
38138
  friend class ::CExprResolve;
29368
38139
  friend class ::WinIfExists;
29369
38140
  friend class ::WinImportHandler;
29370
38141
  friend class ::WinMacros;
29371
 
  friend class ::CMatchSyntax;
29372
 
  friend class ::ExtGnu;
 
38142
  friend class ::WinAsm;
 
38143
  friend class ::WinDeclSpecs;
 
38144
  friend class ::WinMemberExplSpec;
 
38145
  friend class ::WinTypeKeywords;
 
38146
  friend class ::WinFriend;
29373
38147
  friend class ::ExtAC;
29374
38148
  friend class ::ExtACBuilderCoupling;
29375
38149
  friend class ::ExtACSyntaxCoupling;
29376
38150
  friend class ::ExtACTree;
29377
38151
  friend class ::ExtACKeywords;
29378
 
  friend class ::WinAsm;
29379
 
  friend class ::WinDeclSpecs;
29380
 
  friend class ::WinMemberExplSpec;
29381
 
  friend class ::WinTypeKeywords;
 
38152
  friend class ::ExtGnu;
29382
38153
  friend class ::PragmaOnceUnitState;
29383
38154
  friend class ::PragmaOnce;
29384
 
  friend class ::CCExprResolve;
29385
 
  friend class ::CExprResolve;
 
38155
  friend class ::CMatchSyntax;
29386
38156
 
29387
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
 
38157
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACPointcutInfo.h"
29388
38158
 
29389
38159
  CFunctionInfo   *_function;
29390
38160
  ACAspectInfo    *_aspect;
29423
38193
 
29424
38194
#endif /* __PointCutInfo_h__ */
29425
38195
 
29426
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
 
38196
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
29427
38197
// This file is part of PUMA.
29428
38198
// Copyright (C) 1999-2003  The PUMA developer team.
29429
38199
//                                                                
29446
38216
#define __ACSliceInfo_h__
29447
38217
 
29448
38218
 
29449
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
 
38219
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
29450
38220
namespace Puma {
29451
38221
 
29452
38222
 
29453
38223
class ACAspectInfo;
29454
38224
class CT_ClassSliceDecl;
29455
38225
class CT_Intro;
 
38226
class Unit;
29456
38227
 
29457
38228
/** \file 
29458
38229
 *  Representation of an AspectC++ 'slice'.
29464
38235
 *  example a 'class slice' is a fragment (possibly incomplete) part
29465
38236
 *  of a class. */
29466
38237
 
29467
 
#line 29468 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
38238
#line 38239 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
29468
38239
} // closed Puma
 
38240
class CCExprResolve;
 
38241
class CExprResolve;
29469
38242
class WinIfExists;
29470
38243
class WinImportHandler;
29471
38244
class WinMacros;
29472
 
class CMatchSyntax;
29473
 
class ExtGnu;
 
38245
class WinAsm;
 
38246
class WinDeclSpecs;
 
38247
class WinMemberExplSpec;
 
38248
class WinTypeKeywords;
 
38249
class WinFriend;
29474
38250
class ExtAC;
29475
38251
class ExtACBuilderCoupling;
29476
38252
class ExtACSyntaxCoupling;
29477
38253
class ExtACTree;
29478
38254
class ExtACKeywords;
29479
 
class WinAsm;
29480
 
class WinDeclSpecs;
29481
 
class WinMemberExplSpec;
29482
 
class WinTypeKeywords;
 
38255
class ExtGnu;
29483
38256
class PragmaOnceUnitState;
29484
38257
class PragmaOnce;
29485
 
class CCExprResolve;
29486
 
class CExprResolve;
 
38258
class CMatchSyntax;
29487
38259
namespace Puma {
29488
38260
 
29489
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
 
38261
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
29490
38262
class ACSliceInfo {
29491
 
#line 29492 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
38263
#line 38264 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
38264
  friend class ::CCExprResolve;
 
38265
  friend class ::CExprResolve;
29492
38266
  friend class ::WinIfExists;
29493
38267
  friend class ::WinImportHandler;
29494
38268
  friend class ::WinMacros;
29495
 
  friend class ::CMatchSyntax;
29496
 
  friend class ::ExtGnu;
 
38269
  friend class ::WinAsm;
 
38270
  friend class ::WinDeclSpecs;
 
38271
  friend class ::WinMemberExplSpec;
 
38272
  friend class ::WinTypeKeywords;
 
38273
  friend class ::WinFriend;
29497
38274
  friend class ::ExtAC;
29498
38275
  friend class ::ExtACBuilderCoupling;
29499
38276
  friend class ::ExtACSyntaxCoupling;
29500
38277
  friend class ::ExtACTree;
29501
38278
  friend class ::ExtACKeywords;
29502
 
  friend class ::WinAsm;
29503
 
  friend class ::WinDeclSpecs;
29504
 
  friend class ::WinMemberExplSpec;
29505
 
  friend class ::WinTypeKeywords;
 
38279
  friend class ::ExtGnu;
29506
38280
  friend class ::PragmaOnceUnitState;
29507
38281
  friend class ::PragmaOnce;
29508
 
  friend class ::CCExprResolve;
29509
 
  friend class ::CExprResolve;
 
38282
  friend class ::CMatchSyntax;
29510
38283
 
29511
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
 
38284
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACSliceInfo.h"
29512
38285
 
29513
38286
  CObjectInfo       *_object;
29514
38287
  CT_ClassSliceDecl *_def_node;
29515
 
  Array<CT_Intro*>  _members; // non-inline slice members
 
38288
  Unit              *_pattern;        // inline member patterns (in 1 unit)
 
38289
  Unit              *_base_pattern;   // base class intro part
 
38290
  Array<CT_Intro*>  _members;         // non-inline slice members
 
38291
  Array<Unit*>      _member_patterns; // non-inline member patterns
 
38292
  Array<Unit*>      _member_units;    // non-inline member units (ah files)
29516
38293
  bool              _in_advice;
29517
38294
      
29518
38295
public:
29522
38299
  /** Construct a slice info object.
29523
38300
   *  \param oi The object info of the slice declaration, e.g. class info. */
29524
38301
  ACSliceInfo (CObjectInfo *oi) :
29525
 
    _object (oi), _def_node ((CT_ClassSliceDecl *)0) {}
 
38302
    _object (oi), _def_node ((CT_ClassSliceDecl *)0),
 
38303
    _pattern (0), _base_pattern (0) {}
29526
38304
 
 
38305
  /** Desctructor: delete all pattern units */
 
38306
  ~ACSliceInfo ();
 
38307
  
29527
38308
  /** Get the name of the slice. */
29528
38309
  const char *name () { return _object->Name (); }
29529
38310
  /** Get the object info of the slice declaration. */
29531
38312
 
29532
38313
  /** Set the slice definition syntax tree node.
29533
38314
   *  \param node The slice syntax tree node. */
29534
 
  void def_node (CT_ClassSliceDecl *node) { _def_node = node; }
 
38315
  void def_node (CT_ClassSliceDecl *node);
29535
38316
  /** Get the syntax tree node of the slice definition. */
29536
38317
  CT_ClassSliceDecl *def_node () { return _def_node; }
29537
38318
  
29538
38319
  /** Add a non-inline slice member.
29539
38320
   *  \param node The new member. */
29540
 
  void add_member (CT_Intro *i) { _members.append (i); }
 
38321
  void add_member (CT_Intro *i);
29541
38322
  
29542
38323
  /** Get the number of non-inline slice members. */
29543
38324
  int members () const { return _members.length (); }
29545
38326
  /** Get the ith non-inline slice member. */
29546
38327
  CT_Intro *member (int i) const { return _members.lookup (i); }
29547
38328
  
 
38329
  /** Get the ith non-inline slice member code pattern. */
 
38330
  const Unit *member_pattern (int i) const { return _member_patterns.lookup (i); }
 
38331
  
 
38332
  /** Get the ith non-inline slice member unit. */
 
38333
  const Unit *member_unit (int i) const { return _member_units.lookup (i); }
 
38334
  
29548
38335
  /** Set a flag to determine if this definition is part of an advice decl
29549
38336
   *  \param a true, iff this definition is location within 'advice .. : ..'. */
29550
38337
  void in_advice (bool a) { _in_advice = a; }
29557
38344
  
29558
38345
  /** Get the definition of this slice or return 0 if there is no definition */
29559
38346
  ACSliceInfo *definition () const;
 
38347
  
 
38348
  /** Get the base class pattern of this slice as a unit */
 
38349
  const Unit *base_pattern () const { return _base_pattern; }
 
38350
 
 
38351
  /** Get the inline member pattern of this slice as a unit */
 
38352
  const Unit *pattern () const { return _pattern; }
29560
38353
};
29561
38354
 
29562
38355
 
29564
38357
 
29565
38358
#endif /* __ACSliceInfo_h__ */
29566
38359
 
29567
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
29568
 
 
29569
 
#line 29570 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
38360
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
38361
 
 
38362
#line 38363 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
38363
 
 
38364
#ifndef __ac_fwd_ExtGnu__
 
38365
#define __ac_fwd_ExtGnu__
 
38366
class ExtGnu;
 
38367
namespace AC {
 
38368
  template <class JoinPoint>
 
38369
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp);
 
38370
  template <class JoinPoint>
 
38371
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp);
 
38372
  template <class JoinPoint>
 
38373
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
 
38374
  template <class JoinPoint>
 
38375
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
 
38376
  template <class JoinPoint>
 
38377
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
 
38378
  template <class JoinPoint>
 
38379
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
 
38380
  template <class JoinPoint>
 
38381
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
 
38382
  template <class JoinPoint>
 
38383
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
 
38384
  template <class JoinPoint>
 
38385
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
 
38386
  template <class JoinPoint>
 
38387
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
 
38388
  template <class JoinPoint>
 
38389
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
 
38390
  template <class JoinPoint>
 
38391
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
 
38392
  template <class JoinPoint>
 
38393
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
 
38394
  template <class JoinPoint>
 
38395
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
 
38396
  template <class JoinPoint>
 
38397
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
 
38398
  template <class JoinPoint>
 
38399
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
38400
  template <class JoinPoint>
 
38401
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp);
 
38402
}
 
38403
#endif
 
38404
 
 
38405
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
38406
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
38407
#endif
29570
38408
 
29571
38409
#ifndef __ac_fwd_CMatchSyntax__
29572
38410
#define __ac_fwd_CMatchSyntax__
29573
38411
class CMatchSyntax;
29574
38412
namespace AC {
29575
38413
  template <class JoinPoint>
29576
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp);
29577
 
  template <class JoinPoint>
29578
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp);
29579
 
  template <class JoinPoint>
29580
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp);
29581
 
  template <class JoinPoint>
29582
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp);
29583
 
  template <class JoinPoint>
29584
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp);
29585
 
  template <class JoinPoint>
29586
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp);
29587
 
  template <class JoinPoint>
29588
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp);
29589
 
  template <class JoinPoint>
29590
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp);
29591
 
  template <class JoinPoint>
29592
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp);
29593
 
  template <class JoinPoint>
29594
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp);
29595
 
  template <class JoinPoint>
29596
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp);
29597
 
  template <class JoinPoint>
29598
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp);
29599
 
  template <class JoinPoint>
29600
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp);
29601
 
  template <class JoinPoint>
29602
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp);
29603
 
  template <class JoinPoint>
29604
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp);
29605
 
  template <class JoinPoint>
29606
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp);
29607
 
  template <class JoinPoint>
29608
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp);
29609
 
  template <class JoinPoint>
29610
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp);
29611
 
  template <class JoinPoint>
29612
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp);
29613
 
  template <class JoinPoint>
29614
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp);
29615
 
  template <class JoinPoint>
29616
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp);
29617
 
  template <class JoinPoint>
29618
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp);
29619
 
  template <class JoinPoint>
29620
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp);
29621
 
  template <class JoinPoint>
29622
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp);
29623
 
  template <class JoinPoint>
29624
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp);
29625
 
  template <class JoinPoint, class Binding>
29626
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp);
29627
 
}
29628
 
#endif
29629
 
 
29630
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
29631
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
29632
 
#endif
29633
 
 
29634
 
#ifndef __ac_fwd_ExtGnu__
29635
 
#define __ac_fwd_ExtGnu__
29636
 
class ExtGnu;
29637
 
namespace AC {
29638
 
  template <class JoinPoint, class Binding>
29639
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp);
29640
 
  template <class JoinPoint, class Binding>
29641
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp);
29642
 
  template <class JoinPoint>
29643
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
29644
 
  template <class JoinPoint>
29645
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
29646
 
  template <class JoinPoint>
29647
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
29648
 
  template <class JoinPoint>
29649
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
29650
 
  template <class JoinPoint>
29651
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
29652
 
  template <class JoinPoint, class Binding>
29653
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
29654
 
  template <class JoinPoint, class Binding>
29655
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
29656
 
  template <class JoinPoint, class Binding>
29657
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
29658
 
  template <class JoinPoint, class Binding>
29659
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
29660
 
  template <class JoinPoint, class Binding>
29661
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
29662
 
  template <class JoinPoint, class Binding>
29663
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
29664
 
  template <class JoinPoint>
29665
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
29666
 
  template <class JoinPoint>
29667
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
29668
 
  template <class JoinPoint, class Binding>
29669
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
29670
 
}
29671
 
#endif
29672
 
 
29673
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
29674
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
29675
 
#endif
29676
 
 
29677
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
38414
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp);
 
38415
  template <class JoinPoint>
 
38416
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp);
 
38417
  template <class JoinPoint>
 
38418
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp);
 
38419
  template <class JoinPoint>
 
38420
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp);
 
38421
  template <class JoinPoint>
 
38422
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp);
 
38423
  template <class JoinPoint>
 
38424
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp);
 
38425
  template <class JoinPoint>
 
38426
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp);
 
38427
  template <class JoinPoint>
 
38428
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp);
 
38429
  template <class JoinPoint>
 
38430
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp);
 
38431
  template <class JoinPoint>
 
38432
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp);
 
38433
  template <class JoinPoint>
 
38434
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp);
 
38435
  template <class JoinPoint>
 
38436
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp);
 
38437
  template <class JoinPoint>
 
38438
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp);
 
38439
  template <class JoinPoint>
 
38440
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp);
 
38441
  template <class JoinPoint>
 
38442
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp);
 
38443
  template <class JoinPoint>
 
38444
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp);
 
38445
  template <class JoinPoint>
 
38446
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp);
 
38447
  template <class JoinPoint>
 
38448
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp);
 
38449
  template <class JoinPoint>
 
38450
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp);
 
38451
  template <class JoinPoint>
 
38452
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp);
 
38453
  template <class JoinPoint>
 
38454
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp);
 
38455
  template <class JoinPoint>
 
38456
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp);
 
38457
  template <class JoinPoint>
 
38458
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp);
 
38459
  template <class JoinPoint>
 
38460
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp);
 
38461
  template <class JoinPoint>
 
38462
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp);
 
38463
  template <class JoinPoint>
 
38464
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp);
 
38465
}
 
38466
#endif
 
38467
 
 
38468
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
38469
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
38470
#endif
 
38471
 
 
38472
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
29678
38473
// This file is part of PUMA.
29679
38474
// Copyright (C) 1999-2003  The PUMA developer team.
29680
38475
//                                                                
29701
38496
//#include "Puma/Semantic.h"
29702
38497
#include "Puma/ErrorSink.h"
29703
38498
#include "Puma/TokenProvider.h"
29704
 
#include "TraceSyntax.ah"
29705
38499
 
29706
38500
namespace Puma {
29707
38501
 
29710
38504
class CTree;
29711
38505
 
29712
38506
 
29713
 
#line 29714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
38507
#line 38508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
29714
38508
} // closed Puma
 
38509
class CCExprResolve;
 
38510
class CExprResolve;
29715
38511
class WinIfExists;
29716
38512
class WinImportHandler;
29717
38513
class WinMacros;
29718
 
class CMatchSyntax;
29719
 
class ExtGnu;
 
38514
class WinAsm;
 
38515
class WinDeclSpecs;
 
38516
class WinMemberExplSpec;
 
38517
class WinTypeKeywords;
 
38518
class WinFriend;
29720
38519
class ExtAC;
29721
38520
class ExtACBuilderCoupling;
29722
38521
class ExtACSyntaxCoupling;
29723
38522
class ExtACTree;
29724
38523
class ExtACKeywords;
29725
 
class WinAsm;
29726
 
class WinDeclSpecs;
29727
 
class WinMemberExplSpec;
29728
 
class WinTypeKeywords;
 
38524
class ExtGnu;
29729
38525
class PragmaOnceUnitState;
29730
38526
class PragmaOnce;
29731
 
class CCExprResolve;
29732
 
class CExprResolve;
 
38527
class CMatchSyntax;
29733
38528
namespace Puma {
29734
38529
 
29735
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
38530
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
29736
38531
class Syntax {
29737
 
#line 29738 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
38532
#line 38533 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
38533
  friend class ::CCExprResolve;
 
38534
  friend class ::CExprResolve;
29738
38535
  friend class ::WinIfExists;
29739
38536
  friend class ::WinImportHandler;
29740
38537
  friend class ::WinMacros;
29741
 
  friend class ::CMatchSyntax;
29742
 
  friend class ::ExtGnu;
 
38538
  friend class ::WinAsm;
 
38539
  friend class ::WinDeclSpecs;
 
38540
  friend class ::WinMemberExplSpec;
 
38541
  friend class ::WinTypeKeywords;
 
38542
  friend class ::WinFriend;
29743
38543
  friend class ::ExtAC;
29744
38544
  friend class ::ExtACBuilderCoupling;
29745
38545
  friend class ::ExtACSyntaxCoupling;
29746
38546
  friend class ::ExtACTree;
29747
38547
  friend class ::ExtACKeywords;
29748
 
  friend class ::WinAsm;
29749
 
  friend class ::WinDeclSpecs;
29750
 
  friend class ::WinMemberExplSpec;
29751
 
  friend class ::WinTypeKeywords;
 
38548
  friend class ::ExtGnu;
29752
38549
  friend class ::PragmaOnceUnitState;
29753
38550
  friend class ::PragmaOnce;
29754
 
  friend class ::CCExprResolve;
29755
 
  friend class ::CExprResolve;
 
38551
  friend class ::CMatchSyntax;
29756
38552
 
29757
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
38553
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
29758
38554
 
29759
38555
  Token *_problem_token;
29760
38556
  bool _have_error;
29767
38563
 
29768
38564
public: 
29769
38565
  struct State : public TokenProvider::State {
29770
 
#line 29771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
38566
#line 38567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
38567
  friend class ::CCExprResolve;
 
38568
  friend class ::CExprResolve;
29771
38569
  friend class ::WinIfExists;
29772
38570
  friend class ::WinImportHandler;
29773
38571
  friend class ::WinMacros;
29774
 
  friend class ::CMatchSyntax;
29775
 
  friend class ::ExtGnu;
 
38572
  friend class ::WinAsm;
 
38573
  friend class ::WinDeclSpecs;
 
38574
  friend class ::WinMemberExplSpec;
 
38575
  friend class ::WinTypeKeywords;
 
38576
  friend class ::WinFriend;
29776
38577
  friend class ::ExtAC;
29777
38578
  friend class ::ExtACBuilderCoupling;
29778
38579
  friend class ::ExtACSyntaxCoupling;
29779
38580
  friend class ::ExtACTree;
29780
38581
  friend class ::ExtACKeywords;
29781
 
  friend class ::WinAsm;
29782
 
  friend class ::WinDeclSpecs;
29783
 
  friend class ::WinMemberExplSpec;
29784
 
  friend class ::WinTypeKeywords;
 
38582
  friend class ::ExtGnu;
29785
38583
  friend class ::PragmaOnceUnitState;
29786
38584
  friend class ::PragmaOnce;
29787
 
  friend class ::CCExprResolve;
29788
 
  friend class ::CExprResolve;
 
38585
  friend class ::CMatchSyntax;
29789
38586
 
29790
 
#line 46 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
38587
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
29791
38588
 
29792
38589
    State () {}
29793
38590
    State (int) {}
29802
38599
  CTree *run (TokenProvider &);
29803
38600
  template <class T> CTree *run (TokenProvider &, CTree *(T::*)());
29804
38601
  
29805
 
#line 29806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
29806
 
 
29807
 
 
29808
 
struct TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 {
29809
 
  typedef void Result;
29810
 
  typedef ::Puma::Syntax That;
29811
 
  typedef ::Puma::Syntax Target;
 
38602
#line 38603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
38603
 
 
38604
 
 
38605
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 {
 
38606
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 __TJP;
 
38607
  typedef TResult Result;
 
38608
  typedef TThat   That;
 
38609
  typedef TTarget Target;
 
38610
  enum { ARGS = TArgs::ARGS };
 
38611
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
29812
38612
  static const int JPID = 54;
29813
38613
  static const AC::JPType JPTYPE = (AC::JPType)8;
29814
38614
  struct Res {
29815
 
    typedef void Type;
29816
 
    typedef void ReferredType;
29817
 
  };
29818
 
  enum { ARGS = 1 };
29819
 
  template <int I, int DUMMY = 0> struct Arg {
29820
 
    typedef void Type;
29821
 
    typedef void ReferredType;
29822
 
  };
29823
 
  template <int DUMMY> struct Arg<0, DUMMY> {
29824
 
    typedef ::Puma::Config & Type;
29825
 
    typedef ::Puma::Config ReferredType;
 
38615
    typedef TResult Type;
 
38616
    typedef TResult ReferredType;
29826
38617
  };
29827
38618
 
29828
 
  void **_args;
 
38619
  void *_args[ARGS];
29829
38620
 
29830
38621
  inline void *arg (int n) {return _args[n];}
29831
38622
  template <int I> typename Arg<I>::ReferredType *arg () {
29832
38623
    return (typename Arg<I>::ReferredType*)arg (I);
29833
38624
  }
29834
38625
 
29835
 
};
29836
 
struct Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_CMatchSyntax_CMatchSyntax_a25_before {
29837
 
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 TJP;
29838
 
  template <int I, int DUMMY = 0> struct Arg {
29839
 
    void val (TJP *tjp) {} // for VC7
29840
 
  };
29841
 
  template <int DUMMY> struct Arg<0, DUMMY> {
29842
 
    static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
29843
 
  };
29844
 
};
29845
 
struct Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_ExtGnu_ExtGnu_a15_before {
29846
 
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 TJP;
29847
 
  template <int I, int DUMMY = 0> struct Arg {
29848
 
    void val (TJP *tjp) {} // for VC7
29849
 
  };
29850
 
  template <int DUMMY> struct Arg<0, DUMMY> {
29851
 
    static TJP::Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
29852
 
  };
29853
 
};
29854
 
 
29855
 
 
29856
 
#line 59 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
38626
struct Binding_CMatchSyntax_CMatchSyntax_a25_before {
 
38627
  typedef __TJP TJP;
 
38628
  template <int I, int DUMMY = 0> struct Arg {
 
38629
    void val (TJP *tjp) {} // for VC7
 
38630
  };
 
38631
  template <int DUMMY> struct Arg<0, DUMMY> {
 
38632
    static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
 
38633
  };
 
38634
};
 
38635
struct Binding_ExtGnu_ExtGnu_a15_before {
 
38636
  typedef __TJP TJP;
 
38637
  template <int I, int DUMMY = 0> struct Arg {
 
38638
    void val (TJP *tjp) {} // for VC7
 
38639
  };
 
38640
  template <int DUMMY> struct Arg<0, DUMMY> {
 
38641
    static typename TJP::template Arg<0>::ReferredType &val (TJP *tjp) { return *tjp->template arg<0> (); }
 
38642
  };
 
38643
};
 
38644
};
 
38645
 
 
38646
 
 
38647
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
29857
38648
virtual void configure (Config & arg0) 
29858
 
#line 29859 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
38649
#line 38650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
29859
38650
{
29860
 
  void *args__ZN4Puma6Syntax9configureERN4PumaE6Config[] = { (void*)&arg0 };
29861
 
  TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0 tjp;
29862
 
  tjp._args = args__ZN4Puma6Syntax9configureERN4PumaE6Config;
29863
 
  AC::invoke_CMatchSyntax_CMatchSyntax_a25_before<TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0, Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_CMatchSyntax_CMatchSyntax_a25_before> (&tjp);
29864
 
  AC::invoke_ExtGnu_ExtGnu_a15_before<TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0, Binding_TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0_ExtGnu_ExtGnu_a15_before> (&tjp);
29865
 
this->__exec_old_configure(arg0);
29866
 
 
 
38651
  typedef TJP__ZN4Puma6Syntax9configureERN4PumaE6Config_0< void, ::Puma::Syntax , ::Puma::Syntax ,  AC::TL< ::Puma::Config & , AC::TLE > > __TJP;
 
38652
    __TJP tjp;
 
38653
  tjp._args[0] = (void*)&arg0;
 
38654
  AC::invoke_CMatchSyntax_CMatchSyntax_a25_before<__TJP> (&tjp);
 
38655
  AC::invoke_ExtGnu_ExtGnu_a15_before<__TJP> (&tjp);
 
38656
    this->__exec_old_configure(arg0);
 
38657
  
29867
38658
}
29868
 
inline void __exec_old_configure(::Puma::Config & )
29869
 
#line 59 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Syntax.h"
 
38659
__attribute__((always_inline)) inline void __exec_old_configure(::Puma::Config & )
 
38660
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Syntax.h"
29870
38661
{}
29871
38662
  TokenProvider *provider () const { return token_provider; }
29872
38663
  Token *problem () const;
30076
38867
 
30077
38868
#endif /* __Syntax_h__ */
30078
38869
 
30079
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
38870
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
30080
38871
// This file is part of PUMA.
30081
38872
// Copyright (C) 1999-2003  The PUMA developer team.
30082
38873
//                                                                
30101
38892
// data object info (variables, class data members)
30102
38893
 
30103
38894
 
30104
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
38895
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
30105
38896
namespace Puma {
30106
38897
 
30107
38898
 
30119
38910
 *  A CAttributeInfo object represents a local or global variable 
30120
38911
 *  or a class data member. */
30121
38912
 
30122
 
#line 30123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
38913
#line 38914 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
30123
38914
} // closed Puma
 
38915
class CCExprResolve;
 
38916
class CExprResolve;
30124
38917
class WinIfExists;
30125
38918
class WinImportHandler;
30126
38919
class WinMacros;
30127
 
class CMatchSyntax;
30128
 
class ExtGnu;
 
38920
class WinAsm;
 
38921
class WinDeclSpecs;
 
38922
class WinMemberExplSpec;
 
38923
class WinTypeKeywords;
 
38924
class WinFriend;
30129
38925
class ExtAC;
30130
38926
class ExtACBuilderCoupling;
30131
38927
class ExtACSyntaxCoupling;
30132
38928
class ExtACTree;
30133
38929
class ExtACKeywords;
30134
 
class WinAsm;
30135
 
class WinDeclSpecs;
30136
 
class WinMemberExplSpec;
30137
 
class WinTypeKeywords;
 
38930
class ExtGnu;
30138
38931
class PragmaOnceUnitState;
30139
38932
class PragmaOnce;
30140
 
class CCExprResolve;
30141
 
class CExprResolve;
 
38933
class CMatchSyntax;
30142
38934
namespace Puma {
30143
38935
 
30144
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
38936
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
30145
38937
class CAttributeInfo : public CScopeRequest {
30146
 
#line 30147 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
38938
#line 38939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
38939
  friend class ::CCExprResolve;
 
38940
  friend class ::CExprResolve;
30147
38941
  friend class ::WinIfExists;
30148
38942
  friend class ::WinImportHandler;
30149
38943
  friend class ::WinMacros;
30150
 
  friend class ::CMatchSyntax;
30151
 
  friend class ::ExtGnu;
 
38944
  friend class ::WinAsm;
 
38945
  friend class ::WinDeclSpecs;
 
38946
  friend class ::WinMemberExplSpec;
 
38947
  friend class ::WinTypeKeywords;
 
38948
  friend class ::WinFriend;
30152
38949
  friend class ::ExtAC;
30153
38950
  friend class ::ExtACBuilderCoupling;
30154
38951
  friend class ::ExtACSyntaxCoupling;
30155
38952
  friend class ::ExtACTree;
30156
38953
  friend class ::ExtACKeywords;
30157
 
  friend class ::WinAsm;
30158
 
  friend class ::WinDeclSpecs;
30159
 
  friend class ::WinMemberExplSpec;
30160
 
  friend class ::WinTypeKeywords;
 
38954
  friend class ::ExtGnu;
30161
38955
  friend class ::PragmaOnceUnitState;
30162
38956
  friend class ::PragmaOnce;
30163
 
  friend class ::CCExprResolve;
30164
 
  friend class ::CExprResolve;
 
38957
  friend class ::CMatchSyntax;
30165
38958
 
30166
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
 
38959
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CAttributeInfo.h"
30167
38960
 
30168
38961
  CTemplateInfo *_TemplateInfo;
30169
38962
  
30245
39038
 
30246
39039
#endif /* __CAttributeInfo_h__ */
30247
39040
 
30248
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
 
39041
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
30249
39042
// This file is part of PUMA.
30250
39043
// Copyright (C) 1999-2003  The PUMA developer team.
30251
39044
//                                                                
30270
39063
// function parameter info
30271
39064
 
30272
39065
 
30273
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
 
39066
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
30274
39067
namespace Puma {
30275
39068
 
30276
39069
 
30281
39074
/** \class CArgumentInfo CArgumentInfo.h Puma/infos/CArgumentInfo.h
30282
39075
 *  A CArgumentInfo object represents a function parameter declaration. */
30283
39076
 
30284
 
#line 30285 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39077
#line 39078 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
30285
39078
} // closed Puma
 
39079
class CCExprResolve;
 
39080
class CExprResolve;
30286
39081
class WinIfExists;
30287
39082
class WinImportHandler;
30288
39083
class WinMacros;
30289
 
class CMatchSyntax;
30290
 
class ExtGnu;
 
39084
class WinAsm;
 
39085
class WinDeclSpecs;
 
39086
class WinMemberExplSpec;
 
39087
class WinTypeKeywords;
 
39088
class WinFriend;
30291
39089
class ExtAC;
30292
39090
class ExtACBuilderCoupling;
30293
39091
class ExtACSyntaxCoupling;
30294
39092
class ExtACTree;
30295
39093
class ExtACKeywords;
30296
 
class WinAsm;
30297
 
class WinDeclSpecs;
30298
 
class WinMemberExplSpec;
30299
 
class WinTypeKeywords;
 
39094
class ExtGnu;
30300
39095
class PragmaOnceUnitState;
30301
39096
class PragmaOnce;
30302
 
class CCExprResolve;
30303
 
class CExprResolve;
 
39097
class CMatchSyntax;
30304
39098
namespace Puma {
30305
39099
 
30306
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
 
39100
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
30307
39101
class CArgumentInfo : public CScopeRequest {
30308
 
#line 30309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39102
#line 39103 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
39103
  friend class ::CCExprResolve;
 
39104
  friend class ::CExprResolve;
30309
39105
  friend class ::WinIfExists;
30310
39106
  friend class ::WinImportHandler;
30311
39107
  friend class ::WinMacros;
30312
 
  friend class ::CMatchSyntax;
30313
 
  friend class ::ExtGnu;
 
39108
  friend class ::WinAsm;
 
39109
  friend class ::WinDeclSpecs;
 
39110
  friend class ::WinMemberExplSpec;
 
39111
  friend class ::WinTypeKeywords;
 
39112
  friend class ::WinFriend;
30314
39113
  friend class ::ExtAC;
30315
39114
  friend class ::ExtACBuilderCoupling;
30316
39115
  friend class ::ExtACSyntaxCoupling;
30317
39116
  friend class ::ExtACTree;
30318
39117
  friend class ::ExtACKeywords;
30319
 
  friend class ::WinAsm;
30320
 
  friend class ::WinDeclSpecs;
30321
 
  friend class ::WinMemberExplSpec;
30322
 
  friend class ::WinTypeKeywords;
 
39118
  friend class ::ExtGnu;
30323
39119
  friend class ::PragmaOnceUnitState;
30324
39120
  friend class ::PragmaOnce;
30325
 
  friend class ::CCExprResolve;
30326
 
  friend class ::CExprResolve;
 
39121
  friend class ::CMatchSyntax;
30327
39122
 
30328
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
 
39123
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CArgumentInfo.h"
30329
39124
 
30330
39125
  bool _hasDefaultArg; // can be set to true even without an init tree
30331
39126
                       // (needed for inline member functions)
30360
39155
 
30361
39156
#endif /* __CArgumentInfo_h__ */
30362
39157
 
30363
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
 
39158
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
30364
39159
// This file is part of PUMA.
30365
39160
// Copyright (C) 1999-2003  The PUMA developer team.
30366
39161
//                                                                
30383
39178
#define __ACIntroAnalyzer_h__
30384
39179
 
30385
39180
 
30386
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
 
39181
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
30387
39182
namespace Puma {
30388
39183
  class ACAspectInfo;
30389
39184
  class CClassDatabase;
30394
39189
namespace Puma {
30395
39190
 
30396
39191
 
30397
 
#line 30398 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39192
#line 39193 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
30398
39193
} // closed Puma
 
39194
class CCExprResolve;
 
39195
class CExprResolve;
30399
39196
class WinIfExists;
30400
39197
class WinImportHandler;
30401
39198
class WinMacros;
30402
 
class CMatchSyntax;
30403
 
class ExtGnu;
 
39199
class WinAsm;
 
39200
class WinDeclSpecs;
 
39201
class WinMemberExplSpec;
 
39202
class WinTypeKeywords;
 
39203
class WinFriend;
30404
39204
class ExtAC;
30405
39205
class ExtACBuilderCoupling;
30406
39206
class ExtACSyntaxCoupling;
30407
39207
class ExtACTree;
30408
39208
class ExtACKeywords;
30409
 
class WinAsm;
30410
 
class WinDeclSpecs;
30411
 
class WinMemberExplSpec;
30412
 
class WinTypeKeywords;
 
39209
class ExtGnu;
30413
39210
class PragmaOnceUnitState;
30414
39211
class PragmaOnce;
30415
 
class CCExprResolve;
30416
 
class CExprResolve;
 
39212
class CMatchSyntax;
30417
39213
namespace Puma {
30418
39214
 
30419
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
 
39215
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
30420
39216
class ACIntroAnalyzer {
30421
 
#line 30422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39217
#line 39218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
39218
  friend class ::CCExprResolve;
 
39219
  friend class ::CExprResolve;
30422
39220
  friend class ::WinIfExists;
30423
39221
  friend class ::WinImportHandler;
30424
39222
  friend class ::WinMacros;
30425
 
  friend class ::CMatchSyntax;
30426
 
  friend class ::ExtGnu;
 
39223
  friend class ::WinAsm;
 
39224
  friend class ::WinDeclSpecs;
 
39225
  friend class ::WinMemberExplSpec;
 
39226
  friend class ::WinTypeKeywords;
 
39227
  friend class ::WinFriend;
30427
39228
  friend class ::ExtAC;
30428
39229
  friend class ::ExtACBuilderCoupling;
30429
39230
  friend class ::ExtACSyntaxCoupling;
30430
39231
  friend class ::ExtACTree;
30431
39232
  friend class ::ExtACKeywords;
30432
 
  friend class ::WinAsm;
30433
 
  friend class ::WinDeclSpecs;
30434
 
  friend class ::WinMemberExplSpec;
30435
 
  friend class ::WinTypeKeywords;
 
39233
  friend class ::ExtGnu;
30436
39234
  friend class ::PragmaOnceUnitState;
30437
39235
  friend class ::PragmaOnce;
30438
 
  friend class ::CCExprResolve;
30439
 
  friend class ::CExprResolve;
 
39236
  friend class ::CMatchSyntax;
30440
39237
 
30441
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
 
39238
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroAnalyzer.h"
30442
39239
 
30443
39240
  CClassDatabase *_db;
30444
39241
  CScopeInfo *_current_scope;
30478
39275
 
30479
39276
#endif /* __ACIntroAnalyzer_h__ */
30480
39277
 
30481
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
 
39278
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
30482
39279
// This file is part of PUMA.
30483
39280
// Copyright (C) 1999-2003  The PUMA developer team.
30484
39281
//                                                                
30506
39303
 
30507
39304
namespace Puma {
30508
39305
  class CT_ClassDef;
 
39306
  class CT_Program;
30509
39307
}
30510
39308
 
30511
39309
namespace Puma {
30512
39310
 
30513
39311
 
30514
 
#line 30515 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39312
#line 39313 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
30515
39313
} // closed Puma
 
39314
class CCExprResolve;
 
39315
class CExprResolve;
30516
39316
class WinIfExists;
30517
39317
class WinImportHandler;
30518
39318
class WinMacros;
30519
 
class CMatchSyntax;
30520
 
class ExtGnu;
 
39319
class WinAsm;
 
39320
class WinDeclSpecs;
 
39321
class WinMemberExplSpec;
 
39322
class WinTypeKeywords;
 
39323
class WinFriend;
30521
39324
class ExtAC;
30522
39325
class ExtACBuilderCoupling;
30523
39326
class ExtACSyntaxCoupling;
30524
39327
class ExtACTree;
30525
39328
class ExtACKeywords;
30526
 
class WinAsm;
30527
 
class WinDeclSpecs;
30528
 
class WinMemberExplSpec;
30529
 
class WinTypeKeywords;
 
39329
class ExtGnu;
30530
39330
class PragmaOnceUnitState;
30531
39331
class PragmaOnce;
30532
 
class CCExprResolve;
30533
 
class CExprResolve;
 
39332
class CMatchSyntax;
30534
39333
namespace Puma {
30535
39334
 
30536
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
 
39335
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
30537
39336
class ACIntroducer {
30538
 
#line 30539 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39337
#line 39338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
39338
  friend class ::CCExprResolve;
 
39339
  friend class ::CExprResolve;
30539
39340
  friend class ::WinIfExists;
30540
39341
  friend class ::WinImportHandler;
30541
39342
  friend class ::WinMacros;
30542
 
  friend class ::CMatchSyntax;
30543
 
  friend class ::ExtGnu;
 
39343
  friend class ::WinAsm;
 
39344
  friend class ::WinDeclSpecs;
 
39345
  friend class ::WinMemberExplSpec;
 
39346
  friend class ::WinTypeKeywords;
 
39347
  friend class ::WinFriend;
30544
39348
  friend class ::ExtAC;
30545
39349
  friend class ::ExtACBuilderCoupling;
30546
39350
  friend class ::ExtACSyntaxCoupling;
30547
39351
  friend class ::ExtACTree;
30548
39352
  friend class ::ExtACKeywords;
30549
 
  friend class ::WinAsm;
30550
 
  friend class ::WinDeclSpecs;
30551
 
  friend class ::WinMemberExplSpec;
30552
 
  friend class ::WinTypeKeywords;
 
39353
  friend class ::ExtGnu;
30553
39354
  friend class ::PragmaOnceUnitState;
30554
39355
  friend class ::PragmaOnce;
30555
 
  friend class ::CCExprResolve;
30556
 
  friend class ::CExprResolve;
 
39356
  friend class ::CMatchSyntax;
30557
39357
 
30558
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
 
39358
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/ACIntroducer.h"
30559
39359
 
30560
39360
public:
30561
39361
  virtual ~ACIntroducer () {}
30562
39362
  
30563
39363
  // called when a new class/union/struct/aspect is created, current scope
30564
39364
  // is the global scope
30565
 
  virtual void class_before (CT_ClassDef*) {};
 
39365
  virtual void class_before (CT_ClassDef*) {}
30566
39366
 
30567
39367
  // called when a new class/union/struct/aspect body is parsed
30568
 
  virtual void class_begin (CT_ClassDef*) {};
 
39368
  virtual void class_begin (CT_ClassDef*) {}
30569
39369
 
30570
39370
  // called when a new class/union/struct/aspect definition ends
30571
39371
  // (still in the class scope)
30572
 
  virtual void class_end (CT_ClassDef*, CTree*) {};
 
39372
  virtual void class_end (CT_ClassDef*) {}
 
39373
  
 
39374
  // called after the parser tried to parse a base clause
 
39375
  virtual void base_clause_end (CT_ClassDef*, Token*) {}
 
39376
  
 
39377
  // called after the program has been parsed completely
 
39378
  virtual void trans_unit_end (CT_Program*) {}
30573
39379
};
30574
39380
 
30575
39381
} // namespace Puma
30576
39382
 
30577
39383
#endif /* __ACIntroducer_h__ */
30578
39384
 
30579
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
39385
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
30580
39386
 
30581
 
#line 30582 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39387
#line 39388 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
30582
39388
 
30583
39389
#ifndef __ac_fwd_ExtGnu__
30584
39390
#define __ac_fwd_ExtGnu__
30585
39391
class ExtGnu;
30586
39392
namespace AC {
30587
 
  template <class JoinPoint, class Binding>
30588
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp);
30589
 
  template <class JoinPoint, class Binding>
30590
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp);
30591
 
  template <class JoinPoint>
30592
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
30593
 
  template <class JoinPoint>
30594
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
30595
 
  template <class JoinPoint>
30596
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
30597
 
  template <class JoinPoint>
30598
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
30599
 
  template <class JoinPoint>
30600
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
30601
 
  template <class JoinPoint, class Binding>
30602
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
30603
 
  template <class JoinPoint, class Binding>
30604
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
30605
 
  template <class JoinPoint, class Binding>
30606
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
30607
 
  template <class JoinPoint, class Binding>
30608
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
30609
 
  template <class JoinPoint, class Binding>
30610
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
30611
 
  template <class JoinPoint, class Binding>
30612
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
30613
 
  template <class JoinPoint>
30614
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
30615
 
  template <class JoinPoint>
30616
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
30617
 
  template <class JoinPoint, class Binding>
30618
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
39393
  template <class JoinPoint>
 
39394
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp);
 
39395
  template <class JoinPoint>
 
39396
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp);
 
39397
  template <class JoinPoint>
 
39398
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
 
39399
  template <class JoinPoint>
 
39400
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
 
39401
  template <class JoinPoint>
 
39402
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
 
39403
  template <class JoinPoint>
 
39404
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
 
39405
  template <class JoinPoint>
 
39406
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
 
39407
  template <class JoinPoint>
 
39408
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
 
39409
  template <class JoinPoint>
 
39410
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
 
39411
  template <class JoinPoint>
 
39412
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
 
39413
  template <class JoinPoint>
 
39414
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
 
39415
  template <class JoinPoint>
 
39416
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
 
39417
  template <class JoinPoint>
 
39418
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
 
39419
  template <class JoinPoint>
 
39420
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
 
39421
  template <class JoinPoint>
 
39422
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
 
39423
  template <class JoinPoint>
 
39424
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
39425
  template <class JoinPoint>
 
39426
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp);
30619
39427
}
30620
39428
#endif
30621
39429
 
30622
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
30623
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
39430
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
39431
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
30624
39432
#endif
30625
39433
 
30626
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
39434
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
30627
39435
// This file is part of PUMA.
30628
39436
// Copyright (C) 1999-2003  The PUMA developer team.
30629
39437
//                                                                
30646
39454
#define __CCNameLookup_h__
30647
39455
 
30648
39456
 
30649
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
30650
 
#include <vector>
30651
 
#include <map>
30652
 
 
 
39457
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
30653
39458
namespace Puma {
30654
39459
 
30655
39460
 
30657
39462
class CBaseClassInfo;
30658
39463
 
30659
39464
 
30660
 
#line 30661 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39465
#line 39466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
30661
39466
} // closed Puma
 
39467
class CCExprResolve;
 
39468
class CExprResolve;
30662
39469
class WinIfExists;
30663
39470
class WinImportHandler;
30664
39471
class WinMacros;
30665
 
class CMatchSyntax;
30666
 
class ExtGnu;
 
39472
class WinAsm;
 
39473
class WinDeclSpecs;
 
39474
class WinMemberExplSpec;
 
39475
class WinTypeKeywords;
 
39476
class WinFriend;
30667
39477
class ExtAC;
30668
39478
class ExtACBuilderCoupling;
30669
39479
class ExtACSyntaxCoupling;
30670
39480
class ExtACTree;
30671
39481
class ExtACKeywords;
30672
 
class WinAsm;
30673
 
class WinDeclSpecs;
30674
 
class WinMemberExplSpec;
30675
 
class WinTypeKeywords;
 
39482
class ExtGnu;
30676
39483
class PragmaOnceUnitState;
30677
39484
class PragmaOnce;
30678
 
class CCExprResolve;
30679
 
class CExprResolve;
 
39485
class CMatchSyntax;
30680
39486
namespace Puma {
30681
39487
 
30682
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
39488
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
30683
39489
class CCNameLookup {
30684
 
#line 30685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39490
#line 39491 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
39491
  friend class ::CCExprResolve;
 
39492
  friend class ::CExprResolve;
30685
39493
  friend class ::WinIfExists;
30686
39494
  friend class ::WinImportHandler;
30687
39495
  friend class ::WinMacros;
30688
 
  friend class ::CMatchSyntax;
30689
 
  friend class ::ExtGnu;
 
39496
  friend class ::WinAsm;
 
39497
  friend class ::WinDeclSpecs;
 
39498
  friend class ::WinMemberExplSpec;
 
39499
  friend class ::WinTypeKeywords;
 
39500
  friend class ::WinFriend;
30690
39501
  friend class ::ExtAC;
30691
39502
  friend class ::ExtACBuilderCoupling;
30692
39503
  friend class ::ExtACSyntaxCoupling;
30693
39504
  friend class ::ExtACTree;
30694
39505
  friend class ::ExtACKeywords;
30695
 
  friend class ::WinAsm;
30696
 
  friend class ::WinDeclSpecs;
30697
 
  friend class ::WinMemberExplSpec;
30698
 
  friend class ::WinTypeKeywords;
 
39506
  friend class ::ExtGnu;
30699
39507
  friend class ::PragmaOnceUnitState;
30700
39508
  friend class ::PragmaOnce;
30701
 
  friend class ::CCExprResolve;
30702
 
  friend class ::CExprResolve;
 
39509
  friend class ::CMatchSyntax;
30703
39510
 
30704
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
39511
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
30705
39512
 
30706
39513
  typedef std::map<CClassInfo*, bool> BaseClassMap;
30707
39514
  
30758
39565
 
30759
39566
private: 
30760
39567
  
30761
 
#line 30762 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
30762
 
public: inline void __exec_old_lookup(::Puma::CStructure * ,bool ,bool );
 
39568
#line 39569 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
39569
public: __attribute__((always_inline)) inline void __exec_old_lookup(::Puma::CStructure * ,bool ,bool );
30763
39570
private:
30764
39571
 
30765
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
 
39572
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CCNameLookup.h"
30766
39573
void lookup (CStructure *, bool, bool);
30767
39574
  void unqualifiedLookup (CStructure *, bool);
30768
39575
  CObjectInfo *unqualLookup (CStructure *, bool);
30840
39647
 
30841
39648
#endif /* __CCNameLookup_h__ */
30842
39649
 
30843
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
39650
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
30844
39651
 
30845
 
#line 30846 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39652
#line 39653 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
30846
39653
 
30847
39654
#ifndef __ac_fwd_ExtACKeywords__
30848
39655
#define __ac_fwd_ExtACKeywords__
30849
39656
class ExtACKeywords;
30850
39657
namespace AC {
30851
 
  template <class JoinPoint, class Binding>
30852
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
30853
 
  template <class JoinPoint, class Binding>
30854
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
30855
 
  template <class JoinPoint>
30856
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
39658
  template <class JoinPoint>
 
39659
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
39660
  template <class JoinPoint>
 
39661
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
39662
  template <class JoinPoint>
 
39663
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
30857
39664
}
30858
39665
#endif
30859
39666
 
30860
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
30861
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
39667
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
39668
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
30862
39669
#endif
30863
39670
 
30864
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
39671
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
30865
39672
// This file is part of PUMA.
30866
39673
// Copyright (C) 1999-2003  The PUMA developer team.
30867
39674
//                                                                
30885
39692
 
30886
39693
// Special project derivation for C++ sources.
30887
39694
 
30888
 
 
30889
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
30890
 
// This file is part of PUMA.
30891
 
// Copyright (C) 1999-2003  The PUMA developer team.
30892
 
//                                                                
30893
 
// This program is free software;  you can redistribute it and/or 
30894
 
// modify it under the terms of the GNU General Public License as 
30895
 
// published by the Free Software Foundation; either version 2 of 
30896
 
// the License, or (at your option) any later version.            
30897
 
//                                                                
30898
 
// This program is distributed in the hope that it will be useful,
30899
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
30900
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
30901
 
// GNU General Public License for more details.                   
30902
 
//                                                                
30903
 
// You should have received a copy of the GNU General Public      
30904
 
// License along with this program; if not, write to the Free     
30905
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
30906
 
// MA  02111-1307  USA                                            
30907
 
 
30908
 
#ifndef __Config_h__
30909
 
#define __Config_h__
30910
 
 
30911
 
// Class Config provides evaluation of configuration 
30912
 
// information from file or command line.
30913
 
 
30914
 
 
30915
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
30916
 
// This file is part of PUMA.
30917
 
// Copyright (C) 1999-2003  The PUMA developer team.
30918
 
//                                                                
30919
 
// This program is free software;  you can redistribute it and/or 
30920
 
// modify it under the terms of the GNU General Public License as 
30921
 
// published by the Free Software Foundation; either version 2 of 
30922
 
// the License, or (at your option) any later version.            
30923
 
//                                                                
30924
 
// This program is distributed in the hope that it will be useful,
30925
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
30926
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
30927
 
// GNU General Public License for more details.                   
30928
 
//                                                                
30929
 
// You should have received a copy of the GNU General Public      
30930
 
// License along with this program; if not, write to the Free     
30931
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
30932
 
// MA  02111-1307  USA                                            
30933
 
 
30934
 
#ifndef __Flags_h__
30935
 
#define __Flags_h__
30936
 
 
30937
 
namespace Puma {
30938
 
 
30939
 
 
30940
 
 
30941
 
#line 30942 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
30942
 
} // closed Puma
30943
 
class WinIfExists;
30944
 
class WinImportHandler;
30945
 
class WinMacros;
30946
 
class CMatchSyntax;
30947
 
class ExtGnu;
30948
 
class ExtAC;
30949
 
class ExtACBuilderCoupling;
30950
 
class ExtACSyntaxCoupling;
30951
 
class ExtACTree;
30952
 
class ExtACKeywords;
30953
 
class WinAsm;
30954
 
class WinDeclSpecs;
30955
 
class WinMemberExplSpec;
30956
 
class WinTypeKeywords;
30957
 
class PragmaOnceUnitState;
30958
 
class PragmaOnce;
30959
 
class CCExprResolve;
30960
 
class CExprResolve;
30961
 
namespace Puma {
30962
 
 
30963
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
30964
 
class Flags {
30965
 
#line 30966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
30966
 
  friend class ::WinIfExists;
30967
 
  friend class ::WinImportHandler;
30968
 
  friend class ::WinMacros;
30969
 
  friend class ::CMatchSyntax;
30970
 
  friend class ::ExtGnu;
30971
 
  friend class ::ExtAC;
30972
 
  friend class ::ExtACBuilderCoupling;
30973
 
  friend class ::ExtACSyntaxCoupling;
30974
 
  friend class ::ExtACTree;
30975
 
  friend class ::ExtACKeywords;
30976
 
  friend class ::WinAsm;
30977
 
  friend class ::WinDeclSpecs;
30978
 
  friend class ::WinMemberExplSpec;
30979
 
  friend class ::WinTypeKeywords;
30980
 
  friend class ::PragmaOnceUnitState;
30981
 
  friend class ::PragmaOnce;
30982
 
  friend class ::CCExprResolve;
30983
 
  friend class ::CExprResolve;
30984
 
 
30985
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Flags.h"
30986
 
 
30987
 
public:
30988
 
  enum Flag {
30989
 
    NONE                       = 0x0,
30990
 
    
30991
 
    SKIP_FCT_BODY              = 0x1,
30992
 
    SKIP_INITS                 = 0x2,
30993
 
    
30994
 
    // GNU extensions
30995
 
    GNU_NESTED_FCT             = 0x4,
30996
 
    GNU_CONDITION_SCOPE        = 0x8,
30997
 
    GNU_PARAM_DECL             = 0x10,
30998
 
    GNU_FCT_DECL               = 0x20,
30999
 
    GNU_PARAM_SCOPE            = 0x40,
31000
 
    GNU_DEFAULT_ARGS           = 0x80,
31001
 
    GNU_EXTENDED_ASM           = 0x100,
31002
 
    GNU_EXTENDED_EXPR          = 0x200,
31003
 
    GNU_LONG_LONG              = 0x400,
31004
 
    GNU_NAME_SCOPE             = 0x800, 
31005
 
    GNU_IMPLICIT_INT           = 0x1000,
31006
 
    GNU_FCT_ATTRIBUTE          = 0x2000,
31007
 
    GNU_IF_THEN_EXPR           = 0x4000
31008
 
  };
31009
 
  
31010
 
private:
31011
 
  Flag _Flags;
31012
 
  
31013
 
public:
31014
 
  Flags ();
31015
 
  Flags (const Flags &);
31016
 
  Flags &operator =(const Flags &);
31017
 
 
31018
 
  // add/remove flag
31019
 
  Flags &operator +=(Flag);
31020
 
  Flags &operator -=(Flag);
31021
 
  
31022
 
  // test for flag
31023
 
  bool operator ==(Flag) const;
31024
 
  bool operator !=(Flag) const;
31025
 
};
31026
 
 
31027
 
inline Flags::Flags () : _Flags (NONE) 
31028
 
 {}
31029
 
inline Flags::Flags (const Flags &f)
31030
 
 { _Flags = f._Flags; }
31031
 
inline Flags &Flags::operator =(const Flags &f)
31032
 
 { _Flags = f._Flags; return *(Flags*)this; }
31033
 
 
31034
 
inline Flags &Flags::operator +=(Flags::Flag f)
31035
 
 { _Flags = (Flag)(_Flags | f); return *(Flags*)this; }
31036
 
inline Flags &Flags::operator -=(Flags::Flag f)
31037
 
 { _Flags = (Flag)(_Flags ^ (_Flags & f)); return *(Flags*)this; }
31038
 
 
31039
 
inline bool Flags::operator ==(Flags::Flag f) const
31040
 
 { return _Flags & f; }
31041
 
inline bool Flags::operator !=(Flags::Flag f) const
31042
 
 { return ! (_Flags & f); }
31043
 
 
31044
 
 
31045
 
} // namespace Puma
31046
 
 
31047
 
#endif /* __Flags_h__ */
31048
 
 
31049
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
31050
 
// This file is part of PUMA.
31051
 
// Copyright (C) 1999-2003  The PUMA developer team.
31052
 
//                                                                
31053
 
// This program is free software;  you can redistribute it and/or 
31054
 
// modify it under the terms of the GNU General Public License as 
31055
 
// published by the Free Software Foundation; either version 2 of 
31056
 
// the License, or (at your option) any later version.            
31057
 
//                                                                
31058
 
// This program is distributed in the hope that it will be useful,
31059
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31060
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31061
 
// GNU General Public License for more details.                   
31062
 
//                                                                
31063
 
// You should have received a copy of the GNU General Public      
31064
 
// License along with this program; if not, write to the Free     
31065
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31066
 
// MA  02111-1307  USA                                            
31067
 
 
31068
 
#ifndef __ConfOption_h__
31069
 
#define __ConfOption_h__
31070
 
 
31071
 
 
31072
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
31073
 
#include <stdlib.h>
31074
 
 
31075
 
namespace Puma {
31076
 
 
31077
 
 
31078
 
 
31079
 
#line 31080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31080
 
} // closed Puma
31081
 
class WinIfExists;
31082
 
class WinImportHandler;
31083
 
class WinMacros;
31084
 
class CMatchSyntax;
31085
 
class ExtGnu;
31086
 
class ExtAC;
31087
 
class ExtACBuilderCoupling;
31088
 
class ExtACSyntaxCoupling;
31089
 
class ExtACTree;
31090
 
class ExtACKeywords;
31091
 
class WinAsm;
31092
 
class WinDeclSpecs;
31093
 
class WinMemberExplSpec;
31094
 
class WinTypeKeywords;
31095
 
class PragmaOnceUnitState;
31096
 
class PragmaOnce;
31097
 
class CCExprResolve;
31098
 
class CExprResolve;
31099
 
namespace Puma {
31100
 
 
31101
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
31102
 
class ConfOption {
31103
 
#line 31104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31104
 
  friend class ::WinIfExists;
31105
 
  friend class ::WinImportHandler;
31106
 
  friend class ::WinMacros;
31107
 
  friend class ::CMatchSyntax;
31108
 
  friend class ::ExtGnu;
31109
 
  friend class ::ExtAC;
31110
 
  friend class ::ExtACBuilderCoupling;
31111
 
  friend class ::ExtACSyntaxCoupling;
31112
 
  friend class ::ExtACTree;
31113
 
  friend class ::ExtACKeywords;
31114
 
  friend class ::WinAsm;
31115
 
  friend class ::WinDeclSpecs;
31116
 
  friend class ::WinMemberExplSpec;
31117
 
  friend class ::WinTypeKeywords;
31118
 
  friend class ::PragmaOnceUnitState;
31119
 
  friend class ::PragmaOnce;
31120
 
  friend class ::CCExprResolve;
31121
 
  friend class ::CExprResolve;
31122
 
 
31123
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ConfOption.h"
31124
 
 
31125
 
  const char *_name;
31126
 
  Array<const char *> _args;
31127
 
  
31128
 
public:
31129
 
  ConfOption (const char *);
31130
 
  ConfOption (const char *, const char *);
31131
 
  ConfOption (const char *, const char *, const char *);
31132
 
  ~ConfOption ();
31133
 
  
31134
 
  const char *Name () const;
31135
 
  unsigned Arguments () const;
31136
 
  const char *Argument (unsigned) const;
31137
 
  
31138
 
  void addArgument (const char *);
31139
 
};
31140
 
 
31141
 
inline ConfOption::ConfOption (const char *n) : _args (1, 1) 
31142
 
 { _name = StrCol::dup (n); }
31143
 
inline ConfOption::ConfOption (const char *n, const char *a1) : _args (1, 1) 
31144
 
 { _name = StrCol::dup (n); addArgument (a1); }
31145
 
inline ConfOption::ConfOption (const char *n, const char *a1, const char *a2) : _args (2, 1) 
31146
 
 { _name = StrCol::dup (n); addArgument (a1); addArgument (a2); }
31147
 
 
31148
 
inline ConfOption::~ConfOption ()
31149
 
 { delete[] _name; 
31150
 
   for (unsigned i = 0; i < Arguments (); i++) 
31151
 
     delete[] Argument (i);
31152
 
 }
31153
 
 
31154
 
inline const char *ConfOption::Name () const 
31155
 
 { return _name; }
31156
 
inline unsigned ConfOption::Arguments () const
31157
 
 { return _args.length (); }
31158
 
inline const char *ConfOption::Argument (unsigned i) const
31159
 
 { return _args.lookup (i); }
31160
 
  
31161
 
inline void ConfOption::addArgument (const char *a) 
31162
 
 { if (a) _args.append (StrCol::dup (a)); }
31163
 
 
31164
 
 
31165
 
} // namespace Puma
31166
 
 
31167
 
#endif /* __ConfOption_h__ */
31168
 
 
31169
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
31170
 
// This file is part of PUMA.
31171
 
// Copyright (C) 1999-2003  The PUMA developer team.
31172
 
//                                                                
31173
 
// This program is free software;  you can redistribute it and/or 
31174
 
// modify it under the terms of the GNU General Public License as 
31175
 
// published by the Free Software Foundation; either version 2 of 
31176
 
// the License, or (at your option) any later version.            
31177
 
//                                                                
31178
 
// This program is distributed in the hope that it will be useful,
31179
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31180
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31181
 
// GNU General Public License for more details.                   
31182
 
//                                                                
31183
 
// You should have received a copy of the GNU General Public      
31184
 
// License along with this program; if not, write to the Free     
31185
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31186
 
// MA  02111-1307  USA                                            
31187
 
 
31188
 
#ifndef __error_stream_h__
31189
 
#define __error_stream_h__
31190
 
 
31191
 
// An ErrorStream is a special ErrorSink that prints out an error message
31192
 
// as soon as it complete. It also stores the maximum error severity.
31193
 
// The ErrorStream can be reset to it's initial state.
31194
 
 
31195
 
 
31196
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
31197
 
using namespace std;
31198
 
 
31199
 
namespace Puma {
31200
 
 
31201
 
 
31202
 
 
31203
 
#line 31204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31204
 
} // closed Puma
31205
 
class WinIfExists;
31206
 
class WinImportHandler;
31207
 
class WinMacros;
31208
 
class CMatchSyntax;
31209
 
class ExtGnu;
31210
 
class ExtAC;
31211
 
class ExtACBuilderCoupling;
31212
 
class ExtACSyntaxCoupling;
31213
 
class ExtACTree;
31214
 
class ExtACKeywords;
31215
 
class WinAsm;
31216
 
class WinDeclSpecs;
31217
 
class WinMemberExplSpec;
31218
 
class WinTypeKeywords;
31219
 
class PragmaOnceUnitState;
31220
 
class PragmaOnce;
31221
 
class CCExprResolve;
31222
 
class CExprResolve;
31223
 
namespace Puma {
31224
 
 
31225
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
31226
 
class ErrorStream : public ErrorSink {
31227
 
#line 31228 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31228
 
  friend class ::WinIfExists;
31229
 
  friend class ::WinImportHandler;
31230
 
  friend class ::WinMacros;
31231
 
  friend class ::CMatchSyntax;
31232
 
  friend class ::ExtGnu;
31233
 
  friend class ::ExtAC;
31234
 
  friend class ::ExtACBuilderCoupling;
31235
 
  friend class ::ExtACSyntaxCoupling;
31236
 
  friend class ::ExtACTree;
31237
 
  friend class ::ExtACKeywords;
31238
 
  friend class ::WinAsm;
31239
 
  friend class ::WinDeclSpecs;
31240
 
  friend class ::WinMemberExplSpec;
31241
 
  friend class ::WinTypeKeywords;
31242
 
  friend class ::PragmaOnceUnitState;
31243
 
  friend class ::PragmaOnce;
31244
 
  friend class ::CCExprResolve;
31245
 
  friend class ::CExprResolve;
31246
 
 
31247
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ErrorStream.h"
31248
 
 
31249
 
  ostream *_ostream;
31250
 
  ErrorSeverity _max_severity;
31251
 
  ErrorSeverity _curr_severity;
31252
 
  Location _location;
31253
 
  bool _have_location;
31254
 
  std::ostringstream *_msg;
31255
 
  bool _silently;
31256
 
 
31257
 
  void output ();
31258
 
  void clear ();
31259
 
 
31260
 
public:
31261
 
  ErrorStream (std::ostream &s = cerr) : _ostream (&s), _msg ((std::ostringstream*)0)
31262
 
   { reset (); _silently = false; }
31263
 
  virtual ~ErrorStream () { delete _msg; }
31264
 
 
31265
 
  ErrorStream &operator << (const char *);
31266
 
  ErrorStream &operator << (long);
31267
 
  ErrorStream &operator << (unsigned);
31268
 
  ErrorStream &operator << (int);
31269
 
  ErrorStream &operator << (short);
31270
 
  ErrorStream &operator << (char);
31271
 
  ErrorStream &operator << (double);
31272
 
  ErrorStream &operator << (const ErrorSeverity &);
31273
 
  ErrorStream &operator << (Location);
31274
 
  ErrorStream &operator << (const Printable &);
31275
 
  ErrorStream &operator << (void (*f)(ErrorSink &));
31276
 
 
31277
 
  void endMessage ();
31278
 
  void reset ();
31279
 
  void silent ();
31280
 
  void loud ();
31281
 
 
31282
 
  ErrorSeverity severity () const { return _max_severity; }
31283
 
};
31284
 
 
31285
 
 
31286
 
} // namespace Puma
31287
 
 
31288
 
#endif /* __error_stream_h__ */
31289
 
 
31290
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
31291
 
// This file is part of PUMA.
31292
 
// Copyright (C) 1999-2003  The PUMA developer team.
31293
 
//                                                                
31294
 
// This program is free software;  you can redistribute it and/or 
31295
 
// modify it under the terms of the GNU General Public License as 
31296
 
// published by the Free Software Foundation; either version 2 of 
31297
 
// the License, or (at your option) any later version.            
31298
 
//                                                                
31299
 
// This program is distributed in the hope that it will be useful,
31300
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31301
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31302
 
// GNU General Public License for more details.                   
31303
 
//                                                                
31304
 
// You should have received a copy of the GNU General Public      
31305
 
// License along with this program; if not, write to the Free     
31306
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31307
 
// MA  02111-1307  USA                                            
31308
 
 
31309
 
#ifndef __OptsParser_h__
31310
 
#define __OptsParser_h__
31311
 
 
31312
 
 
31313
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
31314
 
// This file is part of PUMA.
31315
 
// Copyright (C) 1999-2003  The PUMA developer team.
31316
 
//                                                                
31317
 
// This program is free software;  you can redistribute it and/or 
31318
 
// modify it under the terms of the GNU General Public License as 
31319
 
// published by the Free Software Foundation; either version 2 of 
31320
 
// the License, or (at your option) any later version.            
31321
 
//                                                                
31322
 
// This program is distributed in the hope that it will be useful,
31323
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31324
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31325
 
// GNU General Public License for more details.                   
31326
 
//                                                                
31327
 
// You should have received a copy of the GNU General Public      
31328
 
// License along with this program; if not, write to the Free     
31329
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31330
 
// MA  02111-1307  USA                                            
31331
 
 
31332
 
#ifndef __SimpleParser_h__
31333
 
#define __SimpleParser_h__
31334
 
 
31335
 
 
31336
 
#line 24 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
31337
 
using namespace std;
31338
 
 
31339
 
namespace Puma {
31340
 
 
31341
 
 
31342
 
 
31343
 
#line 31344 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31344
 
} // closed Puma
31345
 
class WinIfExists;
31346
 
class WinImportHandler;
31347
 
class WinMacros;
31348
 
class CMatchSyntax;
31349
 
class ExtGnu;
31350
 
class ExtAC;
31351
 
class ExtACBuilderCoupling;
31352
 
class ExtACSyntaxCoupling;
31353
 
class ExtACTree;
31354
 
class ExtACKeywords;
31355
 
class WinAsm;
31356
 
class WinDeclSpecs;
31357
 
class WinMemberExplSpec;
31358
 
class WinTypeKeywords;
31359
 
class PragmaOnceUnitState;
31360
 
class PragmaOnce;
31361
 
class CCExprResolve;
31362
 
class CExprResolve;
31363
 
namespace Puma {
31364
 
 
31365
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
31366
 
class SimpleParser {
31367
 
#line 31368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31368
 
  friend class ::WinIfExists;
31369
 
  friend class ::WinImportHandler;
31370
 
  friend class ::WinMacros;
31371
 
  friend class ::CMatchSyntax;
31372
 
  friend class ::ExtGnu;
31373
 
  friend class ::ExtAC;
31374
 
  friend class ::ExtACBuilderCoupling;
31375
 
  friend class ::ExtACSyntaxCoupling;
31376
 
  friend class ::ExtACTree;
31377
 
  friend class ::ExtACKeywords;
31378
 
  friend class ::WinAsm;
31379
 
  friend class ::WinDeclSpecs;
31380
 
  friend class ::WinMemberExplSpec;
31381
 
  friend class ::WinTypeKeywords;
31382
 
  friend class ::PragmaOnceUnitState;
31383
 
  friend class ::PragmaOnce;
31384
 
  friend class ::CCExprResolve;
31385
 
  friend class ::CExprResolve;
31386
 
 
31387
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SimpleParser.h"
31388
 
 
31389
 
public:
31390
 
  SimpleParser() {}
31391
 
  ~SimpleParser() {}
31392
 
   
31393
 
  static int tokenize (const string &, vector<string> &, 
31394
 
                       const string &delimiters = " ");
31395
 
  static string strip (const string &);
31396
 
};
31397
 
 
31398
 
 
31399
 
} // namespace Puma
31400
 
 
31401
 
#endif /* __SimpleParser_h__ */
31402
 
 
31403
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
31404
 
using namespace std;
31405
 
 
31406
 
namespace Puma {
31407
 
 
31408
 
 
31409
 
 
31410
 
#line 31411 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31411
 
} // closed Puma
31412
 
class WinIfExists;
31413
 
class WinImportHandler;
31414
 
class WinMacros;
31415
 
class CMatchSyntax;
31416
 
class ExtGnu;
31417
 
class ExtAC;
31418
 
class ExtACBuilderCoupling;
31419
 
class ExtACSyntaxCoupling;
31420
 
class ExtACTree;
31421
 
class ExtACKeywords;
31422
 
class WinAsm;
31423
 
class WinDeclSpecs;
31424
 
class WinMemberExplSpec;
31425
 
class WinTypeKeywords;
31426
 
class PragmaOnceUnitState;
31427
 
class PragmaOnce;
31428
 
class CCExprResolve;
31429
 
class CExprResolve;
31430
 
namespace Puma {
31431
 
 
31432
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
31433
 
class OptsParser : public SimpleParser {
31434
 
#line 31435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31435
 
  friend class ::WinIfExists;
31436
 
  friend class ::WinImportHandler;
31437
 
  friend class ::WinMacros;
31438
 
  friend class ::CMatchSyntax;
31439
 
  friend class ::ExtGnu;
31440
 
  friend class ::ExtAC;
31441
 
  friend class ::ExtACBuilderCoupling;
31442
 
  friend class ::ExtACSyntaxCoupling;
31443
 
  friend class ::ExtACTree;
31444
 
  friend class ::ExtACKeywords;
31445
 
  friend class ::WinAsm;
31446
 
  friend class ::WinDeclSpecs;
31447
 
  friend class ::WinMemberExplSpec;
31448
 
  friend class ::WinTypeKeywords;
31449
 
  friend class ::PragmaOnceUnitState;
31450
 
  friend class ::PragmaOnce;
31451
 
  friend class ::CCExprResolve;
31452
 
  friend class ::CExprResolve;
31453
 
 
31454
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
31455
 
 
31456
 
  vector<string> m_argv;
31457
 
  unsigned int m_curarg;
31458
 
  unsigned int m_tonext;
31459
 
  int m_number;
31460
 
 
31461
 
  string m_arg;
31462
 
  string m_opt;
31463
 
   
31464
 
public:
31465
 
  
31466
 
  enum {NOARG =-4, ERR = -3, NOOPTION = -2, UNKNOWN = -1, FINISH = 0 };
31467
 
  
31468
 
  enum ArgType { AT_NONE = 0, AT_MANDATORY = 1, AT_OPTIONAL = 2 };
31469
 
  
31470
 
  struct Option {
31471
 
#line 31472 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31472
 
  friend class ::WinIfExists;
31473
 
  friend class ::WinImportHandler;
31474
 
  friend class ::WinMacros;
31475
 
  friend class ::CMatchSyntax;
31476
 
  friend class ::ExtGnu;
31477
 
  friend class ::ExtAC;
31478
 
  friend class ::ExtACBuilderCoupling;
31479
 
  friend class ::ExtACSyntaxCoupling;
31480
 
  friend class ::ExtACTree;
31481
 
  friend class ::ExtACKeywords;
31482
 
  friend class ::WinAsm;
31483
 
  friend class ::WinDeclSpecs;
31484
 
  friend class ::WinMemberExplSpec;
31485
 
  friend class ::WinTypeKeywords;
31486
 
  friend class ::PragmaOnceUnitState;
31487
 
  friend class ::PragmaOnce;
31488
 
  friend class ::CCExprResolve;
31489
 
  friend class ::CExprResolve;
31490
 
 
31491
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OptsParser.h"
31492
 
 
31493
 
    int number;
31494
 
    char key; 
31495
 
    const char *name;
31496
 
    const char *desc;
31497
 
    ArgType args;
31498
 
  };
31499
 
 
31500
 
private:
31501
 
  const Option *m_opts;
31502
 
   
31503
 
public:
31504
 
  OptsParser (int, char **, const Option *);
31505
 
  OptsParser (const string &, const Option *);
31506
 
 
31507
 
  int getCurrentArgNum () const;
31508
 
  int getNextArgNum () const;
31509
 
  int getOption ();
31510
 
  int getResult () const;
31511
 
  
31512
 
  const string &getArgument () const;
31513
 
  const string &getOptionName () const;
31514
 
 
31515
 
  bool revokeArgument();
31516
 
   
31517
 
private:
31518
 
  int  getShortOption (const string &);
31519
 
  int  getLongOption  (const string &);
31520
 
  bool processOption  (const string &, unsigned int,ArgType argtype);
31521
 
};
31522
 
 
31523
 
 
31524
 
} // namespace Puma
31525
 
 
31526
 
#endif /* __OptsParser_h__ */
31527
 
 
31528
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
31529
 
using namespace std;
31530
 
 
31531
 
namespace Puma {
31532
 
 
31533
 
 
31534
 
 
31535
 
#line 31536 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31536
 
} // closed Puma
31537
 
class WinIfExists;
31538
 
class WinImportHandler;
31539
 
class WinMacros;
31540
 
class CMatchSyntax;
31541
 
class ExtGnu;
31542
 
class ExtAC;
31543
 
class ExtACBuilderCoupling;
31544
 
class ExtACSyntaxCoupling;
31545
 
class ExtACTree;
31546
 
class ExtACKeywords;
31547
 
class WinAsm;
31548
 
class WinDeclSpecs;
31549
 
class WinMemberExplSpec;
31550
 
class WinTypeKeywords;
31551
 
class PragmaOnceUnitState;
31552
 
class PragmaOnce;
31553
 
class CCExprResolve;
31554
 
class CExprResolve;
31555
 
namespace Puma {
31556
 
 
31557
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
31558
 
class Config {
31559
 
#line 31560 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31560
 
  friend class ::WinIfExists;
31561
 
  friend class ::WinImportHandler;
31562
 
  friend class ::WinMacros;
31563
 
  friend class ::CMatchSyntax;
31564
 
  friend class ::ExtGnu;
31565
 
  friend class ::ExtAC;
31566
 
  friend class ::ExtACBuilderCoupling;
31567
 
  friend class ::ExtACSyntaxCoupling;
31568
 
  friend class ::ExtACTree;
31569
 
  friend class ::ExtACKeywords;
31570
 
  friend class ::WinAsm;
31571
 
  friend class ::WinDeclSpecs;
31572
 
  friend class ::WinMemberExplSpec;
31573
 
  friend class ::WinTypeKeywords;
31574
 
  friend class ::PragmaOnceUnitState;
31575
 
  friend class ::PragmaOnce;
31576
 
  friend class ::CCExprResolve;
31577
 
  friend class ::CExprResolve;
31578
 
 
31579
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Config.h"
31580
 
 
31581
 
  Flags _flags;
31582
 
  ErrorStream &_err;
31583
 
  Array<const ConfOption *> _options;
31584
 
  
31585
 
public:
31586
 
  enum OPTIONS {
31587
 
    PRE_ASSERT = 1,
31588
 
    PRE_DEFINE, 
31589
 
    PRE_UNDEFINE, 
31590
 
    PRE_LOCK_MACRO,
31591
 
    PRE_INCLUDE,
31592
 
    CFG_FILE, 
31593
 
    PROJ_PATH, 
31594
 
    PROJ_DESTINATION,
31595
 
    SET_SUFFIX, 
31596
 
    SET_EXTENSION, 
31597
 
    SET_WRITE_PROTECTED,
31598
 
    SET_OPTION, 
31599
 
    SET_OPTION_ARG
31600
 
  };
31601
 
   
31602
 
public:
31603
 
  Config (ErrorStream &);
31604
 
  Config (const Config &);
31605
 
  ~Config ();
31606
 
  
31607
 
  // read config file
31608
 
  Config (ErrorStream &, const char *);
31609
 
  // read command line
31610
 
  Config (ErrorStream &, int &, char **&);
31611
 
  // read config file and command line
31612
 
  Config (ErrorStream &, const char *, int &, char **&);
31613
 
        
31614
 
  // join with another configuration
31615
 
  void Join (const Config &);
31616
 
 
31617
 
  // evaluate file, if file not given read from $PUMA_CONFIG
31618
 
  // or /etc/puma.config
31619
 
  void Read (const char * = (const char *)0);
31620
 
  // evaluate command line
31621
 
  void Read (int &, char **&);
31622
 
 
31623
 
  // add options to configuration
31624
 
  void Add (const ConfOption *);
31625
 
  void Add (const char *);
31626
 
  void Add (const char *, const char *);
31627
 
  void Add (const char *, const char *, const char *);
31628
 
 
31629
 
  // get options
31630
 
  unsigned Options () const;
31631
 
  const ConfOption *Option (unsigned) const;
31632
 
  const ConfOption *Option (const char *) const;
31633
 
 
31634
 
  Flags FlagTable () const;
31635
 
  
31636
 
private:
31637
 
  bool Valid (const char *, const char * = (const char *)0) const;
31638
 
 
31639
 
  bool Process (OptsParser&);
31640
 
  bool ProcessAssert (const string&);
31641
 
  bool ProcessDefine (const string&);
31642
 
  bool ProcessLockMacro (const string&);
31643
 
  bool ProcessUndefine (const string&);
31644
 
  bool ProcessConfigFile (const string&,const string&);
31645
 
  bool ProcessArgument (const string&,const string&);
31646
 
  bool ProcessPathArgument (const string&,const string&);
31647
 
 
31648
 
};
31649
 
 
31650
 
inline Config::Config (ErrorStream &e) : _err (e)
31651
 
 {}
31652
 
inline Config::Config (const Config &c) : _err (c._err)
31653
 
 { Join (c); }
31654
 
  
31655
 
inline Config::Config (ErrorStream &e, const char *file) : _err (e)
31656
 
 { Read (file); }
31657
 
inline Config::Config (ErrorStream &e, int &argc, char **&argv) : _err (e)
31658
 
 { Read (argc, argv); }
31659
 
inline Config::Config (ErrorStream &e, const char *file, int &argc, char **&argv) : _err (e)
31660
 
 { Read (file); Read (argc, argv); }
31661
 
 
31662
 
inline Config::~Config  ()
31663
 
 { for (unsigned i = 0; i < Options (); i++)
31664
 
     delete (ConfOption *) Option (i);
31665
 
 }
31666
 
 
31667
 
inline void Config::Add (const ConfOption *o) 
31668
 
 { _options.append (o); }
31669
 
inline void Config::Add (const char *n)
31670
 
 { Add (new ConfOption (n)); }
31671
 
inline void Config::Add (const char *n, const char *a1)
31672
 
 { Add (new ConfOption (n, a1)); }
31673
 
inline void Config::Add (const char *n, const char *a1, const char *a2)
31674
 
 { Add (new ConfOption (n, a1, a2)); }
31675
 
 
31676
 
inline unsigned Config::Options () const
31677
 
 { return _options.length (); }
31678
 
inline const ConfOption *Config::Option (unsigned i) const
31679
 
 { return _options.lookup (i); }
31680
 
 
31681
 
inline Flags Config::FlagTable () const
31682
 
 { return _flags; }
31683
 
 
31684
 
 
31685
 
} // namespace Puma
31686
 
 
31687
 
#endif /* __Config_h__ */
31688
 
 
31689
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
31690
 
// This file is part of PUMA.
31691
 
// Copyright (C) 1999-2003  The PUMA developer team.
31692
 
//                                                                
31693
 
// This program is free software;  you can redistribute it and/or 
31694
 
// modify it under the terms of the GNU General Public License as 
31695
 
// published by the Free Software Foundation; either version 2 of 
31696
 
// the License, or (at your option) any later version.            
31697
 
//                                                                
31698
 
// This program is distributed in the hope that it will be useful,
31699
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31700
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31701
 
// GNU General Public License for more details.                   
31702
 
//                                                                
31703
 
// You should have received a copy of the GNU General Public      
31704
 
// License along with this program; if not, write to the Free     
31705
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31706
 
// MA  02111-1307  USA                                            
31707
 
 
31708
 
#ifndef __project__
31709
 
#define __project__
31710
 
 
31711
 
// The basic project is a set of source directories. It provides 
31712
 
// methods for searching and writing files. 
31713
 
 
31714
 
 
31715
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
31716
 
// This file is part of PUMA.
31717
 
// Copyright (C) 1999-2003  The PUMA developer team.
31718
 
//                                                                
31719
 
// This program is free software;  you can redistribute it and/or 
31720
 
// modify it under the terms of the GNU General Public License as 
31721
 
// published by the Free Software Foundation; either version 2 of 
31722
 
// the License, or (at your option) any later version.            
31723
 
//                                                                
31724
 
// This program is distributed in the hope that it will be useful,
31725
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31726
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31727
 
// GNU General Public License for more details.                   
31728
 
//                                                                
31729
 
// You should have received a copy of the GNU General Public      
31730
 
// License along with this program; if not, write to the Free     
31731
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31732
 
// MA  02111-1307  USA                                            
31733
 
 
31734
 
#ifndef __path_manager__
31735
 
#define __path_manager__
31736
 
 
31737
 
// Manages directories and methods to access the files in it.
31738
 
 
31739
 
 
31740
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathInfo.h"
31741
 
// This file is part of PUMA.
31742
 
// Copyright (C) 1999-2003  The PUMA developer team.
31743
 
//                                                                
31744
 
// This program is free software;  you can redistribute it and/or 
31745
 
// modify it under the terms of the GNU General Public License as 
31746
 
// published by the Free Software Foundation; either version 2 of 
31747
 
// the License, or (at your option) any later version.            
31748
 
//                                                                
31749
 
// This program is distributed in the hope that it will be useful,
31750
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31751
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31752
 
// GNU General Public License for more details.                   
31753
 
//                                                                
31754
 
// You should have received a copy of the GNU General Public      
31755
 
// License along with this program; if not, write to the Free     
31756
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31757
 
// MA  02111-1307  USA                                            
31758
 
 
31759
 
#ifndef __path_info__
31760
 
#define __path_info__
31761
 
 
31762
 
// A path information object consists of a source and optionally
31763
 
// a destination path.
31764
 
 
31765
 
namespace Puma {
31766
 
 
31767
 
 
31768
 
 
31769
 
#line 31770 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31770
 
} // closed Puma
31771
 
class WinIfExists;
31772
 
class WinImportHandler;
31773
 
class WinMacros;
31774
 
class CMatchSyntax;
31775
 
class ExtGnu;
31776
 
class ExtAC;
31777
 
class ExtACBuilderCoupling;
31778
 
class ExtACSyntaxCoupling;
31779
 
class ExtACTree;
31780
 
class ExtACKeywords;
31781
 
class WinAsm;
31782
 
class WinDeclSpecs;
31783
 
class WinMemberExplSpec;
31784
 
class WinTypeKeywords;
31785
 
class PragmaOnceUnitState;
31786
 
class PragmaOnce;
31787
 
class CCExprResolve;
31788
 
class CExprResolve;
31789
 
namespace Puma {
31790
 
 
31791
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathInfo.h"
31792
 
class PathInfo {
31793
 
#line 31794 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31794
 
  friend class ::WinIfExists;
31795
 
  friend class ::WinImportHandler;
31796
 
  friend class ::WinMacros;
31797
 
  friend class ::CMatchSyntax;
31798
 
  friend class ::ExtGnu;
31799
 
  friend class ::ExtAC;
31800
 
  friend class ::ExtACBuilderCoupling;
31801
 
  friend class ::ExtACSyntaxCoupling;
31802
 
  friend class ::ExtACTree;
31803
 
  friend class ::ExtACKeywords;
31804
 
  friend class ::WinAsm;
31805
 
  friend class ::WinDeclSpecs;
31806
 
  friend class ::WinMemberExplSpec;
31807
 
  friend class ::WinTypeKeywords;
31808
 
  friend class ::PragmaOnceUnitState;
31809
 
  friend class ::PragmaOnce;
31810
 
  friend class ::CCExprResolve;
31811
 
  friend class ::CExprResolve;
31812
 
 
31813
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathInfo.h"
31814
 
 
31815
 
  const char *_src;        // Source path.
31816
 
  const char *_dest;        // Destination path.
31817
 
        
31818
 
public:
31819
 
  PathInfo () : _src ((const char*) 0), _dest ((const char*) 0) {}
31820
 
  PathInfo (const PathInfo &);
31821
 
  ~PathInfo ();
31822
 
        
31823
 
  // Needed for class Array.
31824
 
  PathInfo &operator =(const PathInfo &);
31825
 
 
31826
 
  // Set or get the source path.
31827
 
  void src (const char *);
31828
 
  const char *src () const { return _src; }
31829
 
        
31830
 
  // Set or get the destination path.
31831
 
  void dest (const char *);
31832
 
  const char *dest () const { return _dest; }
31833
 
};
31834
 
 
31835
 
 
31836
 
} // namespace Puma
31837
 
 
31838
 
#endif /* __path_info__ */
31839
 
 
31840
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
31841
 
// This file is part of PUMA.
31842
 
// Copyright (C) 1999-2003  The PUMA developer team.
31843
 
//                                                                
31844
 
// This program is free software;  you can redistribute it and/or 
31845
 
// modify it under the terms of the GNU General Public License as 
31846
 
// published by the Free Software Foundation; either version 2 of 
31847
 
// the License, or (at your option) any later version.            
31848
 
//                                                                
31849
 
// This program is distributed in the hope that it will be useful,
31850
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31851
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31852
 
// GNU General Public License for more details.                   
31853
 
//                                                                
31854
 
// You should have received a copy of the GNU General Public      
31855
 
// License along with this program; if not, write to the Free     
31856
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31857
 
// MA  02111-1307  USA                                            
31858
 
 
31859
 
#ifndef __path_iterator__
31860
 
#define __path_iterator__
31861
 
 
31862
 
// A path iterator is used to iterate the contents of the paths
31863
 
// a project is managing. But only files matching a given pattern 
31864
 
// are iterated. 
31865
 
 
31866
 
 
31867
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
31868
 
// This file is part of PUMA.
31869
 
// Copyright (C) 1999-2003  The PUMA developer team.
31870
 
//                                                                
31871
 
// This program is free software;  you can redistribute it and/or 
31872
 
// modify it under the terms of the GNU General Public License as 
31873
 
// published by the Free Software Foundation; either version 2 of 
31874
 
// the License, or (at your option) any later version.            
31875
 
//                                                                
31876
 
// This program is distributed in the hope that it will be useful,
31877
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
31878
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
31879
 
// GNU General Public License for more details.                   
31880
 
//                                                                
31881
 
// You should have received a copy of the GNU General Public      
31882
 
// License along with this program; if not, write to the Free     
31883
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
31884
 
// MA  02111-1307  USA                                            
31885
 
 
31886
 
#ifndef __project_file__
31887
 
#define __project_file__
31888
 
 
31889
 
 
31890
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
31891
 
using std::map;
31892
 
 
31893
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
31894
 
using std::string;
31895
 
 
31896
 
 
31897
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
31898
 
namespace Puma {
31899
 
 
31900
 
// the project file abstraction is used to store all filenames relevant
31901
 
// for a specific file that is managed by Puma.
31902
 
 
31903
 
 
31904
 
#line 31905 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31905
 
} // closed Puma
31906
 
class WinIfExists;
31907
 
class WinImportHandler;
31908
 
class WinMacros;
31909
 
class CMatchSyntax;
31910
 
class ExtGnu;
31911
 
class ExtAC;
31912
 
class ExtACBuilderCoupling;
31913
 
class ExtACSyntaxCoupling;
31914
 
class ExtACTree;
31915
 
class ExtACKeywords;
31916
 
class WinAsm;
31917
 
class WinDeclSpecs;
31918
 
class WinMemberExplSpec;
31919
 
class WinTypeKeywords;
31920
 
class PragmaOnceUnitState;
31921
 
class PragmaOnce;
31922
 
class CCExprResolve;
31923
 
class CExprResolve;
31924
 
namespace Puma {
31925
 
 
31926
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
31927
 
class ProjectFile {
31928
 
#line 31929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31929
 
  friend class ::WinIfExists;
31930
 
  friend class ::WinImportHandler;
31931
 
  friend class ::WinMacros;
31932
 
  friend class ::CMatchSyntax;
31933
 
  friend class ::ExtGnu;
31934
 
  friend class ::ExtAC;
31935
 
  friend class ::ExtACBuilderCoupling;
31936
 
  friend class ::ExtACSyntaxCoupling;
31937
 
  friend class ::ExtACTree;
31938
 
  friend class ::ExtACKeywords;
31939
 
  friend class ::WinAsm;
31940
 
  friend class ::WinDeclSpecs;
31941
 
  friend class ::WinMemberExplSpec;
31942
 
  friend class ::WinTypeKeywords;
31943
 
  friend class ::PragmaOnceUnitState;
31944
 
  friend class ::PragmaOnce;
31945
 
  friend class ::CCExprResolve;
31946
 
  friend class ::CExprResolve;
31947
 
 
31948
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ProjectFile.h"
31949
 
 
31950
 
  Filename _nick_name;
31951
 
  Filename _dest_path;
31952
 
public:  
31953
 
  ProjectFile (const Filename &nn) : _nick_name (nn) {}
31954
 
  ProjectFile (const Filename &nn, const Filename &dp) :
31955
 
    _nick_name (nn), _dest_path (dp) {}
31956
 
  void dest (const Filename &dp) { _dest_path = dp; }
31957
 
  Filename name () const { return _nick_name; }
31958
 
  Filename dest () const {
31959
 
    assert (_dest_path.is_defined ());
31960
 
    return _dest_path;
31961
 
  }
31962
 
};
31963
 
 
31964
 
typedef map<string, ProjectFile> PFMap;
31965
 
typedef PFMap::value_type PFMPair;
31966
 
typedef PFMap::const_iterator PFMConstIter;
31967
 
 
31968
 
} // namespace Puma
31969
 
 
31970
 
#endif // __project_file__
31971
 
 
31972
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
31973
 
namespace Puma {
31974
 
 
31975
 
class PathManager;
31976
 
class RegComp;
31977
 
 
31978
 
 
31979
 
#line 31980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
31980
 
} // closed Puma
31981
 
class WinIfExists;
31982
 
class WinImportHandler;
31983
 
class WinMacros;
31984
 
class CMatchSyntax;
31985
 
class ExtGnu;
31986
 
class ExtAC;
31987
 
class ExtACBuilderCoupling;
31988
 
class ExtACSyntaxCoupling;
31989
 
class ExtACTree;
31990
 
class ExtACKeywords;
31991
 
class WinAsm;
31992
 
class WinDeclSpecs;
31993
 
class WinMemberExplSpec;
31994
 
class WinTypeKeywords;
31995
 
class PragmaOnceUnitState;
31996
 
class PragmaOnce;
31997
 
class CCExprResolve;
31998
 
class CExprResolve;
31999
 
namespace Puma {
32000
 
 
32001
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
32002
 
class PathIterator : public PFMConstIter {
32003
 
#line 32004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32004
 
  friend class ::WinIfExists;
32005
 
  friend class ::WinImportHandler;
32006
 
  friend class ::WinMacros;
32007
 
  friend class ::CMatchSyntax;
32008
 
  friend class ::ExtGnu;
32009
 
  friend class ::ExtAC;
32010
 
  friend class ::ExtACBuilderCoupling;
32011
 
  friend class ::ExtACSyntaxCoupling;
32012
 
  friend class ::ExtACTree;
32013
 
  friend class ::ExtACKeywords;
32014
 
  friend class ::WinAsm;
32015
 
  friend class ::WinDeclSpecs;
32016
 
  friend class ::WinMemberExplSpec;
32017
 
  friend class ::WinTypeKeywords;
32018
 
  friend class ::PragmaOnceUnitState;
32019
 
  friend class ::PragmaOnce;
32020
 
  friend class ::CCExprResolve;
32021
 
  friend class ::CExprResolve;
32022
 
 
32023
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathIterator.h"
32024
 
 
32025
 
  friend class PathManager;
32026
 
 
32027
 
  RegComp *_regexp;  // Search pattern.
32028
 
  bool _in_use;
32029
 
 
32030
 
public:
32031
 
  PathIterator (const char *);     // Expects a regular expression.
32032
 
  ~PathIterator ();                // for the files to match.
32033
 
 
32034
 
  void pattern (const char *);     // Set the search pattern.
32035
 
  void init (const PFMConstIter &begin);
32036
 
  bool in_use () const { return _in_use; }
32037
 
  void done () { _in_use = false; }
32038
 
 
32039
 
  // retrieve information about the currently referenced ProjectFile
32040
 
  const char *file () const;
32041
 
  const char *dest () const;
32042
 
};
32043
 
 
32044
 
} // namespace Puma
32045
 
 
32046
 
#endif /* __path_iterator__ */
32047
 
 
32048
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
32049
 
namespace Puma {
32050
 
 
32051
 
class RegComp;
32052
 
class Config;
32053
 
class Unit;
32054
 
 
32055
 
 
32056
 
#line 32057 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32057
 
} // closed Puma
32058
 
class WinIfExists;
32059
 
class WinImportHandler;
32060
 
class WinMacros;
32061
 
class CMatchSyntax;
32062
 
class ExtGnu;
32063
 
class ExtAC;
32064
 
class ExtACBuilderCoupling;
32065
 
class ExtACSyntaxCoupling;
32066
 
class ExtACTree;
32067
 
class ExtACKeywords;
32068
 
class WinAsm;
32069
 
class WinDeclSpecs;
32070
 
class WinMemberExplSpec;
32071
 
class WinTypeKeywords;
32072
 
class PragmaOnceUnitState;
32073
 
class PragmaOnce;
32074
 
class CCExprResolve;
32075
 
class CExprResolve;
32076
 
namespace Puma {
32077
 
 
32078
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
32079
 
class PathManager {
32080
 
#line 32081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32081
 
  friend class ::WinIfExists;
32082
 
  friend class ::WinImportHandler;
32083
 
  friend class ::WinMacros;
32084
 
  friend class ::CMatchSyntax;
32085
 
  friend class ::ExtGnu;
32086
 
  friend class ::ExtAC;
32087
 
  friend class ::ExtACBuilderCoupling;
32088
 
  friend class ::ExtACSyntaxCoupling;
32089
 
  friend class ::ExtACTree;
32090
 
  friend class ::ExtACKeywords;
32091
 
  friend class ::WinAsm;
32092
 
  friend class ::WinDeclSpecs;
32093
 
  friend class ::WinMemberExplSpec;
32094
 
  friend class ::WinTypeKeywords;
32095
 
  friend class ::PragmaOnceUnitState;
32096
 
  friend class ::PragmaOnce;
32097
 
  friend class ::CCExprResolve;
32098
 
  friend class ::CExprResolve;
32099
 
 
32100
 
#line 37 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PathManager.h"
32101
 
 
32102
 
 
32103
 
  ErrorStream     *_err;
32104
 
  Array<PathInfo>  _paths;     // List of directories path.
32105
 
  Array<RegComp*>  _protected; // List of regular patterns specifying 
32106
 
                               // protected paths.
32107
 
  PFMap _files;                // Maps the canonical filename of a project
32108
 
                               // to its related information
32109
 
 
32110
 
  // find all files of a directory tree and add them to _files
32111
 
  void traverse (const char *path);
32112
 
 
32113
 
  // find the canonical filename representation for a file
32114
 
  bool canonFilename (Filename name, Filename &abs_name) const;
32115
 
  
32116
 
  // Add a new file to the project file list
32117
 
  PFMConstIter addFile (const ProjectFile &file);
32118
 
 
32119
 
protected:
32120
 
  // Get the destination directory for a given source directory.
32121
 
  const char *getDestination (Filename file, ostream * = 0) const;
32122
 
        
32123
 
  // Called for every matched file.
32124
 
  virtual void action (PathIterator &) {}
32125
 
        
32126
 
  // Add the separator '/' to the copy of the given string.
32127
 
  char *addSeparator (const char *) const;
32128
 
 
32129
 
public:
32130
 
  PathManager (ErrorStream &e) : _err (&e) {} 
32131
 
  // Copy-constructor.
32132
 
  PathManager (PathManager &pm) { _err = pm._err; join (pm); }
32133
 
  virtual ~PathManager ();
32134
 
 
32135
 
  // Start the globbing. Let call action for every match.
32136
 
  void glob (char *pattern = (char*) 0);
32137
 
 
32138
 
  // Iterate the contents of the paths.
32139
 
  const char *iterate (PathIterator &) const;
32140
 
        
32141
 
  // Add a source and destination directories pair.
32142
 
  virtual void addPath (const char *, const char * = (const char*) 0);
32143
 
 
32144
 
  // Add a new file to the project file list
32145
 
  PFMConstIter addFile (Filename name);
32146
 
 
32147
 
  // Add a new file to the project file list with destination path
32148
 
  PFMConstIter addFile (Filename name, Filename dest);
32149
 
 
32150
 
  // search an absolute file name in the project tree
32151
 
  bool lookupFile (Filename abs_name, PFMConstIter &iter) const;
32152
 
 
32153
 
  // Set the destination directory of the given source directory.
32154
 
  void setDest (const char *, const char *);
32155
 
 
32156
 
  // Add a protected-path pattern.
32157
 
  void protect (const char *);
32158
 
 
32159
 
  // Get path information.
32160
 
  long numPaths () const { return _paths.length (); }
32161
 
  long numProts () const { return _protected.length (); }
32162
 
  const char *src (long pos) const { return _paths.lookup (pos).src (); }
32163
 
  const char *dest (long pos) const { return _paths.lookup (pos).dest (); }
32164
 
  RegComp *prot (long pos) const { return _protected.lookup (pos); }
32165
 
 
32166
 
  // Return true if the given file or path is protected.
32167
 
  bool isProtected (const char *file) const;
32168
 
 
32169
 
  // checks if a give file (by name) is a registered file of this path manager
32170
 
  // In case of success (found!) the an iterator is returned, which can be
32171
 
  // used to access more information about the file.
32172
 
  bool isBelow (const char *file, PFMConstIter &iter) const;
32173
 
 
32174
 
  // Returns true if the given file is registered with this path manager
32175
 
  virtual bool isBelow (const char *file) const;
32176
 
 
32177
 
  // Configure the project from the command line or a file.
32178
 
  virtual void configure (const Config &);
32179
 
 
32180
 
  // Join the paths of the given manager with the paths 
32181
 
  // of this path manager.
32182
 
  virtual void join (PathManager &);
32183
 
        
32184
 
  // Get the error stream object.
32185
 
  ErrorStream &err () const { return *_err; }
32186
 
 
32187
 
  // Get the path of a file in the destination directory.
32188
 
  bool getDestinationPath (const char *filename, ostream &out) const;
32189
 
        
32190
 
};
32191
 
 
32192
 
inline bool PathManager::isBelow (const char *file) const { 
32193
 
  PFMConstIter iter;
32194
 
  return isBelow (file, iter);
32195
 
}
32196
 
 
32197
 
 
32198
 
} // namespace Puma
32199
 
 
32200
 
#endif /* __path_manager__ */
32201
 
 
32202
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
32203
 
// This file is part of PUMA.
32204
 
// Copyright (C) 1999-2003  The PUMA developer team.
32205
 
//                                                                
32206
 
// This program is free software;  you can redistribute it and/or 
32207
 
// modify it under the terms of the GNU General Public License as 
32208
 
// published by the Free Software Foundation; either version 2 of 
32209
 
// the License, or (at your option) any later version.            
32210
 
//                                                                
32211
 
// This program is distributed in the hope that it will be useful,
32212
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32213
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32214
 
// GNU General Public License for more details.                   
32215
 
//                                                                
32216
 
// You should have received a copy of the GNU General Public      
32217
 
// License along with this program; if not, write to the Free     
32218
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32219
 
// MA  02111-1307  USA                                            
32220
 
 
32221
 
#ifndef __UnitManager__
32222
 
#define __UnitManager__
32223
 
 
32224
 
// Class UnitManager helps you to have control of all units built.
32225
 
 
32226
 
 
32227
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
32228
 
#include <list>
32229
 
 
32230
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
32231
 
using namespace std;
32232
 
 
32233
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
32234
 
namespace Puma {
32235
 
 
32236
 
 
32237
 
class Unit;
32238
 
class Source;
32239
 
class Tokenizer;
32240
 
 
32241
 
 
32242
 
#line 32243 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32243
 
} // closed Puma
32244
 
class WinIfExists;
32245
 
class WinImportHandler;
32246
 
class WinMacros;
32247
 
class CMatchSyntax;
32248
 
class ExtGnu;
32249
 
class ExtAC;
32250
 
class ExtACBuilderCoupling;
32251
 
class ExtACSyntaxCoupling;
32252
 
class ExtACTree;
32253
 
class ExtACKeywords;
32254
 
class WinAsm;
32255
 
class WinDeclSpecs;
32256
 
class WinMemberExplSpec;
32257
 
class WinTypeKeywords;
32258
 
class PragmaOnceUnitState;
32259
 
class PragmaOnce;
32260
 
class CCExprResolve;
32261
 
class CExprResolve;
32262
 
namespace Puma {
32263
 
 
32264
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
32265
 
class UnitManager {
32266
 
#line 32267 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32267
 
  friend class ::WinIfExists;
32268
 
  friend class ::WinImportHandler;
32269
 
  friend class ::WinMacros;
32270
 
  friend class ::CMatchSyntax;
32271
 
  friend class ::ExtGnu;
32272
 
  friend class ::ExtAC;
32273
 
  friend class ::ExtACBuilderCoupling;
32274
 
  friend class ::ExtACSyntaxCoupling;
32275
 
  friend class ::ExtACTree;
32276
 
  friend class ::ExtACKeywords;
32277
 
  friend class ::WinAsm;
32278
 
  friend class ::WinDeclSpecs;
32279
 
  friend class ::WinMemberExplSpec;
32280
 
  friend class ::WinTypeKeywords;
32281
 
  friend class ::PragmaOnceUnitState;
32282
 
  friend class ::PragmaOnce;
32283
 
  friend class ::CCExprResolve;
32284
 
  friend class ::CExprResolve;
32285
 
 
32286
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitManager.h"
32287
 
 
32288
 
public:
32289
 
  typedef map<string, Unit*> UMap;
32290
 
private:
32291
 
  ErrorStream *_err;        // For error messages.
32292
 
  list<Unit*> _nonames;     // Noname units list.
32293
 
  mutable UMap _umap;       // Named units, map supports fast lookup by name
32294
 
  typedef UMap::value_type UMapPair;
32295
 
  Tokenizer *_tokenizer;    // File scanner.
32296
 
 
32297
 
public:
32298
 
  UnitManager (ErrorStream &err) : _err (&err), _tokenizer (0) {}
32299
 
        
32300
 
  // Destructor: Delete all units.
32301
 
  virtual ~UnitManager ();
32302
 
        
32303
 
  // Get the unit hash table.
32304
 
  UMap &getTable () const { return _umap; }
32305
 
  typedef UMap::iterator UMapIter;
32306
 
        
32307
 
  // Get/Set the file scanner that is used by newUnit
32308
 
  Tokenizer *tokenizer () const { return _tokenizer; }
32309
 
  void tokenizer (Tokenizer *t) { _tokenizer = t; }
32310
 
 
32311
 
  // Add a unit to manager.
32312
 
  void addUnit (Unit *unit);
32313
 
        
32314
 
  // Remove (and destroy) a unit from hash table. If the name
32315
 
  // is NULL remove all (but not the nonames).
32316
 
  void removeUnit (const char *name = (const char*) 0, bool = false, 
32317
 
                   bool destroy = true) const;
32318
 
 
32319
 
  // Empty a unit. Don't remove from hash table.
32320
 
  // Preserve the last save location information.
32321
 
  void closeUnit (const char *name = (const char*) 0, bool = false) const;
32322
 
 
32323
 
  // Build and add a new unit. 
32324
 
  Unit *newUnit (const char *, Source *in = (Source*) 0, bool = false);
32325
 
        
32326
 
  // Get a unit by name. 
32327
 
  Unit *getUnit (const char *name, bool = false) const;
32328
 
                        
32329
 
  // Print given unit to the given outstream. If no
32330
 
  // name is given, print all units.
32331
 
  void print (const char *name = (const char*) 0, bool = false, 
32332
 
              ostream &out = cout) const;
32333
 
 
32334
 
  // Destroy all noname units.
32335
 
  void removeNonames ();
32336
 
      
32337
 
  // Initialize the unit manager and the managed 
32338
 
  // units for the next parse process.
32339
 
  void init ();
32340
 
};
32341
 
 
32342
 
 
32343
 
} // namespace Puma
32344
 
 
32345
 
#endif /* __UnitManager__ */
32346
 
 
32347
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SaveMode.h"
32348
 
// This file is part of PUMA.
32349
 
// Copyright (C) 1999-2003  The PUMA developer team.
32350
 
//                                                                
32351
 
// This program is free software;  you can redistribute it and/or 
32352
 
// modify it under the terms of the GNU General Public License as 
32353
 
// published by the Free Software Foundation; either version 2 of 
32354
 
// the License, or (at your option) any later version.            
32355
 
//                                                                
32356
 
// This program is distributed in the hope that it will be useful,
32357
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32358
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32359
 
// GNU General Public License for more details.                   
32360
 
//                                                                
32361
 
// You should have received a copy of the GNU General Public      
32362
 
// License along with this program; if not, write to the Free     
32363
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32364
 
// MA  02111-1307  USA                                            
32365
 
 
32366
 
#ifndef __SaveMode__
32367
 
#define __SaveMode__
32368
 
 
32369
 
namespace Puma {
32370
 
 
32371
 
 
32372
 
// Project file save mode.
32373
 
 
32374
 
#line 32375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32375
 
} // closed Puma
32376
 
class WinIfExists;
32377
 
class WinImportHandler;
32378
 
class WinMacros;
32379
 
class CMatchSyntax;
32380
 
class ExtGnu;
32381
 
class ExtAC;
32382
 
class ExtACBuilderCoupling;
32383
 
class ExtACSyntaxCoupling;
32384
 
class ExtACTree;
32385
 
class ExtACKeywords;
32386
 
class WinAsm;
32387
 
class WinDeclSpecs;
32388
 
class WinMemberExplSpec;
32389
 
class WinTypeKeywords;
32390
 
class PragmaOnceUnitState;
32391
 
class PragmaOnce;
32392
 
class CCExprResolve;
32393
 
class CExprResolve;
32394
 
namespace Puma {
32395
 
 
32396
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SaveMode.h"
32397
 
struct SaveMode {
32398
 
#line 32399 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32399
 
  friend class ::WinIfExists;
32400
 
  friend class ::WinImportHandler;
32401
 
  friend class ::WinMacros;
32402
 
  friend class ::CMatchSyntax;
32403
 
  friend class ::ExtGnu;
32404
 
  friend class ::ExtAC;
32405
 
  friend class ::ExtACBuilderCoupling;
32406
 
  friend class ::ExtACSyntaxCoupling;
32407
 
  friend class ::ExtACTree;
32408
 
  friend class ::ExtACKeywords;
32409
 
  friend class ::WinAsm;
32410
 
  friend class ::WinDeclSpecs;
32411
 
  friend class ::WinMemberExplSpec;
32412
 
  friend class ::WinTypeKeywords;
32413
 
  friend class ::PragmaOnceUnitState;
32414
 
  friend class ::PragmaOnce;
32415
 
  friend class ::CCExprResolve;
32416
 
  friend class ::CExprResolve;
32417
 
 
32418
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/SaveMode.h"
32419
 
 
32420
 
  enum Mode { 
32421
 
    OVERWRITE = 1, 
32422
 
    RENAME_OLD, 
32423
 
    NEW_SUFFIX 
32424
 
  };
32425
 
};
32426
 
    
32427
 
 
32428
 
} // namespace Puma
32429
 
 
32430
 
#endif /* __SaveMode__ */
32431
 
 
32432
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
32433
 
#include <fstream>
32434
 
 
32435
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
32436
 
using namespace std;
32437
 
 
32438
 
namespace Puma {
32439
 
 
32440
 
 
32441
 
 
32442
 
#line 32443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32443
 
} // closed Puma
32444
 
class WinIfExists;
32445
 
class WinImportHandler;
32446
 
class WinMacros;
32447
 
class CMatchSyntax;
32448
 
class ExtGnu;
32449
 
class ExtAC;
32450
 
class ExtACBuilderCoupling;
32451
 
class ExtACSyntaxCoupling;
32452
 
class ExtACTree;
32453
 
class ExtACKeywords;
32454
 
class WinAsm;
32455
 
class WinDeclSpecs;
32456
 
class WinMemberExplSpec;
32457
 
class WinTypeKeywords;
32458
 
class PragmaOnceUnitState;
32459
 
class PragmaOnce;
32460
 
class CCExprResolve;
32461
 
class CExprResolve;
32462
 
namespace Puma {
32463
 
 
32464
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
32465
 
class Project : public PathManager, public SaveMode {
32466
 
#line 32467 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32467
 
  friend class ::WinIfExists;
32468
 
  friend class ::WinImportHandler;
32469
 
  friend class ::WinMacros;
32470
 
  friend class ::CMatchSyntax;
32471
 
  friend class ::ExtGnu;
32472
 
  friend class ::ExtAC;
32473
 
  friend class ::ExtACBuilderCoupling;
32474
 
  friend class ::ExtACSyntaxCoupling;
32475
 
  friend class ::ExtACTree;
32476
 
  friend class ::ExtACKeywords;
32477
 
  friend class ::WinAsm;
32478
 
  friend class ::WinDeclSpecs;
32479
 
  friend class ::WinMemberExplSpec;
32480
 
  friend class ::WinTypeKeywords;
32481
 
  friend class ::PragmaOnceUnitState;
32482
 
  friend class ::PragmaOnce;
32483
 
  friend class ::CCExprResolve;
32484
 
  friend class ::CExprResolve;
32485
 
 
32486
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Project.h"
32487
 
 
32488
 
  UnitManager  _unitManager; 
32489
 
  const char  *_suffix;           // Current file name suffix.
32490
 
  Mode         _mode;      // Current save mode.
32491
 
 
32492
 
  // Change to the directory, or create it if necessary.
32493
 
  bool makeDir (const char *) const;
32494
 
        
32495
 
  // Create the directory hierarchy need for file 'path'.
32496
 
  bool makeDirHierarchy (Filename path) const;
32497
 
 
32498
 
protected:
32499
 
  // Write a unit on a file. Called by save().
32500
 
  virtual void write (Unit *unit, ofstream &) const; 
32501
 
 
32502
 
  // Check/update the state of the given unit.
32503
 
  bool checkState (const char *, Unit *) const;
32504
 
  void updateState (const char *, Unit *) const;
32505
 
        
32506
 
public:
32507
 
  Project (ErrorStream &);
32508
 
  virtual ~Project ();
32509
 
 
32510
 
  // Set the mode for saving an unit.
32511
 
  // OVERWRITE  -> Save the unit under its name and overwrite existing
32512
 
  //                   files.
32513
 
  // RENAME_OLD -> An existing file will be renamed. A suffix will be
32514
 
  //                   added to the name of the file, like `main.cc.old'
32515
 
  //                   for the file `main.cc' and the suffix `.old'.
32516
 
  // NEW_SUFFIX -> The unit will be saved with a new suffix, like 
32517
 
  //                   `main.cpp' for the unit `main.cc' and the suffix 
32518
 
  //               `cpp'.
32519
 
  void saveMode (Mode = OVERWRITE, const char *suffix = (const char*)0);
32520
 
 
32521
 
  // Save a unit using the name of the unit to get the full 
32522
 
  // name of the file and path to save to. The save location
32523
 
  // must not be protected by a protect pattern and the original
32524
 
  // file must be located in one of the source directories.
32525
 
  virtual void save (Unit *, bool = false) const;
32526
 
        
32527
 
  // Save a FileUnit (or all) to a file (or files).
32528
 
  virtual void save (const char *file = (const char*)0,
32529
 
                     bool only_modified = false, bool is_reg_ex = false) const;
32530
 
 
32531
 
  // Print an unit, regular expression for more units.
32532
 
  // If no name is given print all units.
32533
 
  void print (const char *name = (const char*)0, ostream &out = cout,
32534
 
              bool is_reg_ex = false) const;
32535
 
        
32536
 
  // Close an unit, regular expression for more units.
32537
 
  // If no name is given close all units. If destroy is true,
32538
 
  // the unit(s) will be deleted. 
32539
 
  void close (const char *name = (const char*)0, bool destroy = false,
32540
 
              bool is_reg_ex = false) const;
32541
 
 
32542
 
  // Add a new file to the project.
32543
 
  Unit *addFile (Filename);
32544
 
  Unit *addFile (Filename, Filename);
32545
 
 
32546
 
  // Configure the project from the command line or a file.
32547
 
  virtual void configure (const Config &);
32548
 
        
32549
 
  // Member access.
32550
 
  UnitManager &unitManager ();
32551
 
        
32552
 
  // Return true if the given file in the source directory
32553
 
  // (or at the unit manager) is newer than the corresponding
32554
 
  // file in the destination directory.
32555
 
  bool isNewer (const char *) const;
32556
 
 
32557
 
  // Returns true if the given file is in or below the project dirs
32558
 
  virtual bool isBelow (const char *) const;
32559
 
  virtual bool isBelow (Unit *) const;
32560
 
};
32561
 
 
32562
 
inline UnitManager &Project::unitManager () 
32563
 
 {  return _unitManager; }
32564
 
 
32565
 
inline bool Project::isBelow (const char *file) const
32566
 
 { return PathManager::isBelow (file); }
32567
 
 
32568
 
 
32569
 
} // namespace Puma
32570
 
 
32571
 
#endif /* __project__ */
32572
 
 
32573
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
32574
 
 
32575
 
#line 32576 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32576
 
 
32577
 
#ifndef __ac_fwd_ExtACKeywords__
32578
 
#define __ac_fwd_ExtACKeywords__
32579
 
class ExtACKeywords;
32580
 
namespace AC {
32581
 
  template <class JoinPoint, class Binding>
32582
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
32583
 
  template <class JoinPoint, class Binding>
32584
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
32585
 
  template <class JoinPoint>
32586
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
32587
 
}
32588
 
#endif
32589
 
 
32590
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
32591
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
32592
 
#endif
32593
 
 
32594
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
32595
 
// This file is part of PUMA.
32596
 
// Copyright (C) 1999-2003  The PUMA developer team.
32597
 
//                                                                
32598
 
// This program is free software;  you can redistribute it and/or 
32599
 
// modify it under the terms of the GNU General Public License as 
32600
 
// published by the Free Software Foundation; either version 2 of 
32601
 
// the License, or (at your option) any later version.            
32602
 
//                                                                
32603
 
// This program is distributed in the hope that it will be useful,
32604
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32605
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32606
 
// GNU General Public License for more details.                   
32607
 
//                                                                
32608
 
// You should have received a copy of the GNU General Public      
32609
 
// License along with this program; if not, write to the Free     
32610
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32611
 
// MA  02111-1307  USA                                            
32612
 
 
32613
 
#ifndef __c_scanner_h__
32614
 
#define __c_scanner_h__
32615
 
 
32616
 
 
32617
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
32618
 
// This file is part of PUMA.
32619
 
// Copyright (C) 1999-2003  The PUMA developer team.
32620
 
//                                                                
32621
 
// This program is free software;  you can redistribute it and/or 
32622
 
// modify it under the terms of the GNU General Public License as 
32623
 
// published by the Free Software Foundation; either version 2 of 
32624
 
// the License, or (at your option) any later version.            
32625
 
//                                                                
32626
 
// This program is distributed in the hope that it will be useful,
32627
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32628
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32629
 
// GNU General Public License for more details.                   
32630
 
//                                                                
32631
 
// You should have received a copy of the GNU General Public      
32632
 
// License along with this program; if not, write to the Free     
32633
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32634
 
// MA  02111-1307  USA                                            
32635
 
 
32636
 
#ifndef __c_recognizer_h__
32637
 
#define __c_recognizer_h__
32638
 
 
32639
 
 
32640
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
32641
 
// This file is part of PUMA.
32642
 
// Copyright (C) 1999-2003  The PUMA developer team.
32643
 
//                                                                
32644
 
// This program is free software;  you can redistribute it and/or 
32645
 
// modify it under the terms of the GNU General Public License as 
32646
 
// published by the Free Software Foundation; either version 2 of 
32647
 
// the License, or (at your option) any later version.            
32648
 
//                                                                
32649
 
// This program is distributed in the hope that it will be useful,
32650
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32651
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32652
 
// GNU General Public License for more details.                   
32653
 
//                                                                
32654
 
// You should have received a copy of the GNU General Public      
32655
 
// License along with this program; if not, write to the Free     
32656
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32657
 
// MA  02111-1307  USA                                            
32658
 
 
32659
 
#ifndef __CScanBuffer_h__
32660
 
#define __CScanBuffer_h__
32661
 
 
32662
 
 
32663
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
32664
 
// This file is part of PUMA.
32665
 
// Copyright (C) 1999-2003  The PUMA developer team.
32666
 
//                                                                
32667
 
// This program is free software;  you can redistribute it and/or 
32668
 
// modify it under the terms of the GNU General Public License as 
32669
 
// published by the Free Software Foundation; either version 2 of 
32670
 
// the License, or (at your option) any later version.            
32671
 
//                                                                
32672
 
// This program is distributed in the hope that it will be useful,
32673
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32674
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32675
 
// GNU General Public License for more details.                   
32676
 
//                                                                
32677
 
// You should have received a copy of the GNU General Public      
32678
 
// License along with this program; if not, write to the Free     
32679
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32680
 
// MA  02111-1307  USA                                            
32681
 
 
32682
 
#ifndef __scan_buffer_h__
32683
 
#define __scan_buffer_h__
32684
 
 
32685
 
namespace Puma {
32686
 
 
32687
 
 
32688
 
 
32689
 
#line 32690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32690
 
} // closed Puma
32691
 
class WinIfExists;
32692
 
class WinImportHandler;
32693
 
class WinMacros;
32694
 
class CMatchSyntax;
32695
 
class ExtGnu;
32696
 
class ExtAC;
32697
 
class ExtACBuilderCoupling;
32698
 
class ExtACSyntaxCoupling;
32699
 
class ExtACTree;
32700
 
class ExtACKeywords;
32701
 
class WinAsm;
32702
 
class WinDeclSpecs;
32703
 
class WinMemberExplSpec;
32704
 
class WinTypeKeywords;
32705
 
class PragmaOnceUnitState;
32706
 
class PragmaOnce;
32707
 
class CCExprResolve;
32708
 
class CExprResolve;
32709
 
namespace Puma {
32710
 
 
32711
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
32712
 
class ScanBuffer {
32713
 
#line 32714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32714
 
  friend class ::WinIfExists;
32715
 
  friend class ::WinImportHandler;
32716
 
  friend class ::WinMacros;
32717
 
  friend class ::CMatchSyntax;
32718
 
  friend class ::ExtGnu;
32719
 
  friend class ::ExtAC;
32720
 
  friend class ::ExtACBuilderCoupling;
32721
 
  friend class ::ExtACSyntaxCoupling;
32722
 
  friend class ::ExtACTree;
32723
 
  friend class ::ExtACKeywords;
32724
 
  friend class ::WinAsm;
32725
 
  friend class ::WinDeclSpecs;
32726
 
  friend class ::WinMemberExplSpec;
32727
 
  friend class ::WinTypeKeywords;
32728
 
  friend class ::PragmaOnceUnitState;
32729
 
  friend class ::PragmaOnce;
32730
 
  friend class ::CCExprResolve;
32731
 
  friend class ::CExprResolve;
32732
 
 
32733
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/ScanBuffer.h"
32734
 
 
32735
 
public:
32736
 
  typedef enum { STATE_END, STATE_ERROR, STATE_OK } State;
32737
 
  
32738
 
  virtual ~ScanBuffer () {}
32739
 
 
32740
 
  virtual char next () = 0;
32741
 
  virtual char *token () = 0;
32742
 
  virtual int len () const = 0;
32743
 
  virtual void reset () = 0;
32744
 
  virtual void retry () = 0; 
32745
 
  virtual void accept (int len) = 0;
32746
 
  virtual void more (int len) = 0;
32747
 
  virtual State state () const = 0;
32748
 
};
32749
 
 
32750
 
 
32751
 
} // namespace Puma
32752
 
 
32753
 
#endif /* __scan_buffer_h__ */
32754
 
 
32755
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
32756
 
namespace Puma {
32757
 
 
32758
 
 
32759
 
 
32760
 
#line 32761 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32761
 
} // closed Puma
32762
 
class WinIfExists;
32763
 
class WinImportHandler;
32764
 
class WinMacros;
32765
 
class CMatchSyntax;
32766
 
class ExtGnu;
32767
 
class ExtAC;
32768
 
class ExtACBuilderCoupling;
32769
 
class ExtACSyntaxCoupling;
32770
 
class ExtACTree;
32771
 
class ExtACKeywords;
32772
 
class WinAsm;
32773
 
class WinDeclSpecs;
32774
 
class WinMemberExplSpec;
32775
 
class WinTypeKeywords;
32776
 
class PragmaOnceUnitState;
32777
 
class PragmaOnce;
32778
 
class CCExprResolve;
32779
 
class CExprResolve;
32780
 
namespace Puma {
32781
 
 
32782
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
32783
 
class CScanBuffer {
32784
 
#line 32785 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32785
 
  friend class ::WinIfExists;
32786
 
  friend class ::WinImportHandler;
32787
 
  friend class ::WinMacros;
32788
 
  friend class ::CMatchSyntax;
32789
 
  friend class ::ExtGnu;
32790
 
  friend class ::ExtAC;
32791
 
  friend class ::ExtACBuilderCoupling;
32792
 
  friend class ::ExtACSyntaxCoupling;
32793
 
  friend class ::ExtACTree;
32794
 
  friend class ::ExtACKeywords;
32795
 
  friend class ::WinAsm;
32796
 
  friend class ::WinDeclSpecs;
32797
 
  friend class ::WinMemberExplSpec;
32798
 
  friend class ::WinTypeKeywords;
32799
 
  friend class ::PragmaOnceUnitState;
32800
 
  friend class ::PragmaOnce;
32801
 
  friend class ::CCExprResolve;
32802
 
  friend class ::CExprResolve;
32803
 
 
32804
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanBuffer.h"
32805
 
 
32806
 
  ScanBuffer *next_buffer;
32807
 
  bool on_new_line;
32808
 
  int nl_pos;
32809
 
 
32810
 
  void check ();
32811
 
 
32812
 
public:
32813
 
  void decorate (ScanBuffer *nb) { next_buffer = nb; }
32814
 
  inline char next ();
32815
 
  inline void reset ();
32816
 
  inline void accept (int len);
32817
 
  inline void retry ();
32818
 
  bool new_line () const { return on_new_line; }
32819
 
  char *token () { return next_buffer->token (); }
32820
 
  int len () const { return next_buffer->len (); }
32821
 
  void more (int len) { next_buffer->more (len); }
32822
 
  ScanBuffer::State state () const { return next_buffer->state (); }
32823
 
};
32824
 
 
32825
 
 
32826
 
inline char CScanBuffer::next () {
32827
 
  char character = next_buffer->next ();
32828
 
  if (character == '\n' && nl_pos == -1)
32829
 
    nl_pos = len () - 1;
32830
 
  check ();
32831
 
  return character;
32832
 
}
32833
 
 
32834
 
inline void CScanBuffer::reset () { 
32835
 
  next_buffer->reset (); 
32836
 
  on_new_line = true;
32837
 
  nl_pos = -1;
32838
 
  check ();
32839
 
}
32840
 
 
32841
 
 
32842
 
inline void CScanBuffer::retry () {
32843
 
  nl_pos = -1;
32844
 
  next_buffer->retry ();
32845
 
}
32846
 
 
32847
 
 
32848
 
inline void CScanBuffer::accept (int len) {
32849
 
  on_new_line = (nl_pos >= 0 && nl_pos < len);
32850
 
  nl_pos = -1;
32851
 
  next_buffer->accept (len);
32852
 
}
32853
 
 
32854
 
} // namespace Puma
32855
 
 
32856
 
#endif // __CScanBuffer_h__
32857
 
 
32858
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
32859
 
// This file is part of PUMA.
32860
 
// Copyright (C) 1999-2003  The PUMA developer team.
32861
 
//                                                                
32862
 
// This program is free software;  you can redistribute it and/or 
32863
 
// modify it under the terms of the GNU General Public License as 
32864
 
// published by the Free Software Foundation; either version 2 of 
32865
 
// the License, or (at your option) any later version.            
32866
 
//                                                                
32867
 
// This program is distributed in the hope that it will be useful,
32868
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32869
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32870
 
// GNU General Public License for more details.                   
32871
 
//                                                                
32872
 
// You should have received a copy of the GNU General Public      
32873
 
// License along with this program; if not, write to the Free     
32874
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32875
 
// MA  02111-1307  USA                                            
32876
 
 
32877
 
#ifndef __c_comment_recognizer_h__
32878
 
#define __c_comment_recognizer_h__
32879
 
 
32880
 
 
32881
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
32882
 
// This file is part of PUMA.
32883
 
// Copyright (C) 1999-2003  The PUMA developer team.
32884
 
//                                                                
32885
 
// This program is free software;  you can redistribute it and/or 
32886
 
// modify it under the terms of the GNU General Public License as 
32887
 
// published by the Free Software Foundation; either version 2 of 
32888
 
// the License, or (at your option) any later version.            
32889
 
//                                                                
32890
 
// This program is distributed in the hope that it will be useful,
32891
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32892
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32893
 
// GNU General Public License for more details.                   
32894
 
//                                                                
32895
 
// You should have received a copy of the GNU General Public      
32896
 
// License along with this program; if not, write to the Free     
32897
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32898
 
// MA  02111-1307  USA                                            
32899
 
 
32900
 
#ifndef __mapped_orange_recognizer_h__
32901
 
#define __mapped_orange_recognizer_h__
32902
 
 
32903
 
// The token recognizer class, which uses scanner tables generated by the
32904
 
// orange tool. Returned expressions mapped according to an orange
32905
 
// generated mapping table
32906
 
 
32907
 
 
32908
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
32909
 
// This file is part of PUMA.
32910
 
// Copyright (C) 1999-2003  The PUMA developer team.
32911
 
//                                                                
32912
 
// This program is free software;  you can redistribute it and/or 
32913
 
// modify it under the terms of the GNU General Public License as 
32914
 
// published by the Free Software Foundation; either version 2 of 
32915
 
// the License, or (at your option) any later version.            
32916
 
//                                                                
32917
 
// This program is distributed in the hope that it will be useful,
32918
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
32919
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
32920
 
// GNU General Public License for more details.                   
32921
 
//                                                                
32922
 
// You should have received a copy of the GNU General Public      
32923
 
// License along with this program; if not, write to the Free     
32924
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
32925
 
// MA  02111-1307  USA                                            
32926
 
 
32927
 
#ifndef __recognizer_h__
32928
 
#define __recognizer_h__
32929
 
 
32930
 
// The token recognizer class, which uses scanner tables generated by the
32931
 
// orange tool.
32932
 
 
32933
 
 
32934
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
32935
 
namespace Puma {
32936
 
 
32937
 
 
32938
 
#ifndef __TTGEN__
32939
 
#  define __TTGEN__
32940
 
 
32941
 
#line 32942 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32942
 
} // closed Puma
32943
 
class WinIfExists;
32944
 
class WinImportHandler;
32945
 
class WinMacros;
32946
 
class CMatchSyntax;
32947
 
class ExtGnu;
32948
 
class ExtAC;
32949
 
class ExtACBuilderCoupling;
32950
 
class ExtACSyntaxCoupling;
32951
 
class ExtACTree;
32952
 
class ExtACKeywords;
32953
 
class WinAsm;
32954
 
class WinDeclSpecs;
32955
 
class WinMemberExplSpec;
32956
 
class WinTypeKeywords;
32957
 
class PragmaOnceUnitState;
32958
 
class PragmaOnce;
32959
 
class CCExprResolve;
32960
 
class CExprResolve;
32961
 
namespace Puma {
32962
 
 
32963
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
32964
 
typedef struct
32965
 
 {
32966
 
#line 32967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32967
 
  friend class ::WinIfExists;
32968
 
  friend class ::WinImportHandler;
32969
 
  friend class ::WinMacros;
32970
 
  friend class ::CMatchSyntax;
32971
 
  friend class ::ExtGnu;
32972
 
  friend class ::ExtAC;
32973
 
  friend class ::ExtACBuilderCoupling;
32974
 
  friend class ::ExtACSyntaxCoupling;
32975
 
  friend class ::ExtACTree;
32976
 
  friend class ::ExtACKeywords;
32977
 
  friend class ::WinAsm;
32978
 
  friend class ::WinDeclSpecs;
32979
 
  friend class ::WinMemberExplSpec;
32980
 
  friend class ::WinTypeKeywords;
32981
 
  friend class ::PragmaOnceUnitState;
32982
 
  friend class ::PragmaOnce;
32983
 
  friend class ::CCExprResolve;
32984
 
  friend class ::CExprResolve;
32985
 
 
32986
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
32987
 
 unsigned char Type;
32988
 
   unsigned char LookAhead;
32989
 
   int           Expression;
32990
 
   int           Start;
32991
 
 } States;                                                                   
32992
 
#endif
32993
 
 
32994
 
 
32995
 
// class declaration
32996
 
 
32997
 
 
32998
 
#line 32999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
32999
 
} // closed Puma
33000
 
class WinIfExists;
33001
 
class WinImportHandler;
33002
 
class WinMacros;
33003
 
class CMatchSyntax;
33004
 
class ExtGnu;
33005
 
class ExtAC;
33006
 
class ExtACBuilderCoupling;
33007
 
class ExtACSyntaxCoupling;
33008
 
class ExtACTree;
33009
 
class ExtACKeywords;
33010
 
class WinAsm;
33011
 
class WinDeclSpecs;
33012
 
class WinMemberExplSpec;
33013
 
class WinTypeKeywords;
33014
 
class PragmaOnceUnitState;
33015
 
class PragmaOnce;
33016
 
class CCExprResolve;
33017
 
class CExprResolve;
33018
 
namespace Puma {
33019
 
 
33020
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
33021
 
template <typename TScanBuffer>
33022
 
class OrangeRecognizer {
33023
 
#line 33024 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33024
 
  friend class ::WinIfExists;
33025
 
  friend class ::WinImportHandler;
33026
 
  friend class ::WinMacros;
33027
 
  friend class ::CMatchSyntax;
33028
 
  friend class ::ExtGnu;
33029
 
  friend class ::ExtAC;
33030
 
  friend class ::ExtACBuilderCoupling;
33031
 
  friend class ::ExtACSyntaxCoupling;
33032
 
  friend class ::ExtACTree;
33033
 
  friend class ::ExtACKeywords;
33034
 
  friend class ::WinAsm;
33035
 
  friend class ::WinDeclSpecs;
33036
 
  friend class ::WinMemberExplSpec;
33037
 
  friend class ::WinTypeKeywords;
33038
 
  friend class ::PragmaOnceUnitState;
33039
 
  friend class ::PragmaOnce;
33040
 
  friend class ::CCExprResolve;
33041
 
  friend class ::CExprResolve;
33042
 
 
33043
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/OrangeRecognizer.h"
33044
 
 
33045
 
  // local structures generated by Orange
33046
 
 
33047
 
  char *_map;
33048
 
  int _start;
33049
 
  States *_state;
33050
 
  int *_next;
33051
 
  int *_control;
33052
 
  int _tab_size;
33053
 
 
33054
 
public:
33055
 
  OrangeRecognizer (char *map, int start, States *state, int *next,
33056
 
                    int *control, int tab_size) : 
33057
 
    _map (map), _start (start), _state (state), _next (next),
33058
 
    _control (control), _tab_size (tab_size)
33059
 
   {}
33060
 
 
33061
 
  // try to recognize the current token in the character buffer
33062
 
  // returns 1 on success, 0 on eof, -1 on unknown token
33063
 
  int recognize (TScanBuffer *scan_buffer, int &token, int &len); 
33064
 
};
33065
 
 
33066
 
template <typename TScanBuffer>
33067
 
int OrangeRecognizer<TScanBuffer>::recognize (TScanBuffer *scan_buffer,
33068
 
                                              int &token, int &len) {
33069
 
  int  NextState;
33070
 
  char Character;
33071
 
  char CharClass;
33072
 
  int  NextStatePos;
33073
 
  int  State;
33074
 
  int  LookAheadLen;
33075
 
  int  AcceptLen;
33076
 
  int  AcceptState;
33077
 
  ScanBuffer::State buffer_state = ScanBuffer::STATE_OK;
33078
 
 
33079
 
  State = _start;
33080
 
  AcceptState = -1;
33081
 
  LookAheadLen = 0;
33082
 
  AcceptLen = 0;
33083
 
 
33084
 
  do { 
33085
 
    Character = scan_buffer->next ();
33086
 
 
33087
 
    CharClass = _map[(unsigned char)Character];
33088
 
    if (CharClass == -1)
33089
 
      break;
33090
 
 
33091
 
    NextStatePos = _state[State].Start + CharClass;
33092
 
    if (NextStatePos < 0 || NextStatePos >= _tab_size ||
33093
 
        _control[NextStatePos] != State)
33094
 
      break;
33095
 
 
33096
 
    if ((NextState = _next[NextStatePos]) == -1)
33097
 
      break;
33098
 
 
33099
 
    State = NextState;
33100
 
 
33101
 
    if (_state[State].Type > 0) {
33102
 
      AcceptState = State; // remember this (terminal) state
33103
 
      AcceptLen = scan_buffer->len ();
33104
 
    }
33105
 
 
33106
 
    if (_state[State].LookAhead)
33107
 
      LookAheadLen = scan_buffer->len ();
33108
 
 
33109
 
    buffer_state = scan_buffer->state ();
33110
 
  } while (NextState != -1 && buffer_state == ScanBuffer::STATE_OK);
33111
 
 
33112
 
  if (buffer_state == ScanBuffer::STATE_ERROR)
33113
 
    return -1;
33114
 
 
33115
 
  if (AcceptState == -1)
33116
 
    return 0;
33117
 
 
33118
 
  len   = (_state[AcceptState].Type == 2) ? LookAheadLen : AcceptLen;
33119
 
  token = _state[AcceptState].Expression;
33120
 
 
33121
 
  return 1;
33122
 
}
33123
 
 
33124
 
} // namespace Puma
33125
 
 
33126
 
#endif /* __orange_recognizer_h__ */
33127
 
 
33128
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
33129
 
namespace Puma {
33130
 
 
33131
 
 
33132
 
// class declaration
33133
 
 
33134
 
 
33135
 
#line 33136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33136
 
} // closed Puma
33137
 
class WinIfExists;
33138
 
class WinImportHandler;
33139
 
class WinMacros;
33140
 
class CMatchSyntax;
33141
 
class ExtGnu;
33142
 
class ExtAC;
33143
 
class ExtACBuilderCoupling;
33144
 
class ExtACSyntaxCoupling;
33145
 
class ExtACTree;
33146
 
class ExtACKeywords;
33147
 
class WinAsm;
33148
 
class WinDeclSpecs;
33149
 
class WinMemberExplSpec;
33150
 
class WinTypeKeywords;
33151
 
class PragmaOnceUnitState;
33152
 
class PragmaOnce;
33153
 
class CCExprResolve;
33154
 
class CExprResolve;
33155
 
namespace Puma {
33156
 
 
33157
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
33158
 
template <class ScanBuffer>
33159
 
class MappedOrangeRecognizer : public OrangeRecognizer<ScanBuffer> {
33160
 
#line 33161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33161
 
  friend class ::WinIfExists;
33162
 
  friend class ::WinImportHandler;
33163
 
  friend class ::WinMacros;
33164
 
  friend class ::CMatchSyntax;
33165
 
  friend class ::ExtGnu;
33166
 
  friend class ::ExtAC;
33167
 
  friend class ::ExtACBuilderCoupling;
33168
 
  friend class ::ExtACSyntaxCoupling;
33169
 
  friend class ::ExtACTree;
33170
 
  friend class ::ExtACKeywords;
33171
 
  friend class ::WinAsm;
33172
 
  friend class ::WinDeclSpecs;
33173
 
  friend class ::WinMemberExplSpec;
33174
 
  friend class ::WinTypeKeywords;
33175
 
  friend class ::PragmaOnceUnitState;
33176
 
  friend class ::PragmaOnce;
33177
 
  friend class ::CCExprResolve;
33178
 
  friend class ::CExprResolve;
33179
 
 
33180
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MappedOrangeRecognizer.h"
33181
 
 
33182
 
  int *_expr_map;
33183
 
 
33184
 
public:
33185
 
  MappedOrangeRecognizer (char *map, int *expr_map, int start, 
33186
 
                          States *state, int *next,
33187
 
                          int *control, int tab_size) : 
33188
 
    OrangeRecognizer<ScanBuffer> (map, start, state, next, control, tab_size),
33189
 
    _expr_map (expr_map) 
33190
 
   {}
33191
 
 
33192
 
  // try to recognize the current token in the character buffer
33193
 
  // returns 1 on success, 0 on eof, -1 on unknown token
33194
 
  int recognize (ScanBuffer *scan_buffer, int &token, int &len) {
33195
 
    int result;
33196
 
 
33197
 
    if ((result = OrangeRecognizer<ScanBuffer>::recognize (scan_buffer, token, len)) == 1) {
33198
 
      token = _expr_map[token];
33199
 
    }
33200
 
    return result;
33201
 
  }
33202
 
};
33203
 
 
33204
 
 
33205
 
} // namespace Puma
33206
 
 
33207
 
#endif // __mapped_orange_recognizer_h__
33208
 
 
33209
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
33210
 
namespace Puma {
33211
 
 
33212
 
 
33213
 
 
33214
 
#line 33215 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33215
 
} // closed Puma
33216
 
class WinIfExists;
33217
 
class WinImportHandler;
33218
 
class WinMacros;
33219
 
class CMatchSyntax;
33220
 
class ExtGnu;
33221
 
class ExtAC;
33222
 
class ExtACBuilderCoupling;
33223
 
class ExtACSyntaxCoupling;
33224
 
class ExtACTree;
33225
 
class ExtACKeywords;
33226
 
class WinAsm;
33227
 
class WinDeclSpecs;
33228
 
class WinMemberExplSpec;
33229
 
class WinTypeKeywords;
33230
 
class PragmaOnceUnitState;
33231
 
class PragmaOnce;
33232
 
class CCExprResolve;
33233
 
class CExprResolve;
33234
 
namespace Puma {
33235
 
 
33236
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
33237
 
class CCommentRecognizer {
33238
 
#line 33239 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33239
 
  friend class ::WinIfExists;
33240
 
  friend class ::WinImportHandler;
33241
 
  friend class ::WinMacros;
33242
 
  friend class ::CMatchSyntax;
33243
 
  friend class ::ExtGnu;
33244
 
  friend class ::ExtAC;
33245
 
  friend class ::ExtACBuilderCoupling;
33246
 
  friend class ::ExtACSyntaxCoupling;
33247
 
  friend class ::ExtACTree;
33248
 
  friend class ::ExtACKeywords;
33249
 
  friend class ::WinAsm;
33250
 
  friend class ::WinDeclSpecs;
33251
 
  friend class ::WinMemberExplSpec;
33252
 
  friend class ::WinTypeKeywords;
33253
 
  friend class ::PragmaOnceUnitState;
33254
 
  friend class ::PragmaOnce;
33255
 
  friend class ::CCExprResolve;
33256
 
  friend class ::CExprResolve;
33257
 
 
33258
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CCommentRecognizer.h"
33259
 
 
33260
 
public:
33261
 
  typedef enum { NO_COMMENT, SL_COMMENT, ML_COMMENT } Mode;
33262
 
 
33263
 
private:
33264
 
  static MappedOrangeRecognizer<CScanBuffer> comment_recognizer;   
33265
 
  static MappedOrangeRecognizer<CScanBuffer> sl_comment_recognizer;   
33266
 
  static MappedOrangeRecognizer<CScanBuffer> ml_comment_recognizer;   
33267
 
  Mode comment_mode;
33268
 
 
33269
 
public:
33270
 
  CCommentRecognizer () : comment_mode (NO_COMMENT) {}
33271
 
  int recognize (CScanBuffer *scan_buffer, int &expr, int &len);
33272
 
  void mode (Mode mode) { comment_mode = mode; }
33273
 
  Mode mode () { return comment_mode; }
33274
 
};
33275
 
 
33276
 
 
33277
 
} // namespace Puma
33278
 
 
33279
 
#endif /* __c_comment_recognizer_h__ */
33280
 
 
33281
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
33282
 
// This file is part of PUMA.
33283
 
// Copyright (C) 1999-2003  The PUMA developer team.
33284
 
//                                                                
33285
 
// This program is free software;  you can redistribute it and/or 
33286
 
// modify it under the terms of the GNU General Public License as 
33287
 
// published by the Free Software Foundation; either version 2 of 
33288
 
// the License, or (at your option) any later version.            
33289
 
//                                                                
33290
 
// This program is distributed in the hope that it will be useful,
33291
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
33292
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
33293
 
// GNU General Public License for more details.                   
33294
 
//                                                                
33295
 
// You should have received a copy of the GNU General Public      
33296
 
// License along with this program; if not, write to the Free     
33297
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
33298
 
// MA  02111-1307  USA                                            
33299
 
 
33300
 
#ifndef __keyword_recognizer_h__
33301
 
#define __keyword_recognizer_h__
33302
 
 
33303
 
 
33304
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
33305
 
namespace Puma {
33306
 
 
33307
 
 
33308
 
 
33309
 
#line 33310 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33310
 
} // closed Puma
33311
 
class WinIfExists;
33312
 
class WinImportHandler;
33313
 
class WinMacros;
33314
 
class CMatchSyntax;
33315
 
class ExtGnu;
33316
 
class ExtAC;
33317
 
class ExtACBuilderCoupling;
33318
 
class ExtACSyntaxCoupling;
33319
 
class ExtACTree;
33320
 
class ExtACKeywords;
33321
 
class WinAsm;
33322
 
class WinDeclSpecs;
33323
 
class WinMemberExplSpec;
33324
 
class WinTypeKeywords;
33325
 
class PragmaOnceUnitState;
33326
 
class PragmaOnce;
33327
 
class CCExprResolve;
33328
 
class CExprResolve;
33329
 
namespace Puma {
33330
 
 
33331
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
33332
 
class KeywordRecognizer {
33333
 
#line 33334 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33334
 
  friend class ::WinIfExists;
33335
 
  friend class ::WinImportHandler;
33336
 
  friend class ::WinMacros;
33337
 
  friend class ::CMatchSyntax;
33338
 
  friend class ::ExtGnu;
33339
 
  friend class ::ExtAC;
33340
 
  friend class ::ExtACBuilderCoupling;
33341
 
  friend class ::ExtACSyntaxCoupling;
33342
 
  friend class ::ExtACTree;
33343
 
  friend class ::ExtACKeywords;
33344
 
  friend class ::WinAsm;
33345
 
  friend class ::WinDeclSpecs;
33346
 
  friend class ::WinMemberExplSpec;
33347
 
  friend class ::WinTypeKeywords;
33348
 
  friend class ::PragmaOnceUnitState;
33349
 
  friend class ::PragmaOnce;
33350
 
  friend class ::CCExprResolve;
33351
 
  friend class ::CExprResolve;
33352
 
 
33353
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/KeywordRecognizer.h"
33354
 
 
33355
 
protected:
33356
 
  virtual MappedOrangeRecognizer<CScanBuffer> &recognizer() = 0;
33357
 
 
33358
 
public:
33359
 
  virtual ~KeywordRecognizer () {}
33360
 
  virtual int recognize (CScanBuffer *scan_buffer, int &expr, int &len);
33361
 
};
33362
 
 
33363
 
 
33364
 
} // namespace Puma
33365
 
 
33366
 
#endif /* __keyword_recognizer_h__ */
33367
 
 
33368
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
33369
 
namespace Puma {
33370
 
 
33371
 
 
33372
 
 
33373
 
#line 33374 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33374
 
} // closed Puma
33375
 
class WinIfExists;
33376
 
class WinImportHandler;
33377
 
class WinMacros;
33378
 
class CMatchSyntax;
33379
 
class ExtGnu;
33380
 
class ExtAC;
33381
 
class ExtACBuilderCoupling;
33382
 
class ExtACSyntaxCoupling;
33383
 
class ExtACTree;
33384
 
class ExtACKeywords;
33385
 
class WinAsm;
33386
 
class WinDeclSpecs;
33387
 
class WinMemberExplSpec;
33388
 
class WinTypeKeywords;
33389
 
class PragmaOnceUnitState;
33390
 
class PragmaOnce;
33391
 
class CCExprResolve;
33392
 
class CExprResolve;
33393
 
namespace Puma {
33394
 
 
33395
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
33396
 
class CRecognizer {
33397
 
#line 33398 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33398
 
  friend class ::WinIfExists;
33399
 
  friend class ::WinImportHandler;
33400
 
  friend class ::WinMacros;
33401
 
  friend class ::CMatchSyntax;
33402
 
  friend class ::ExtGnu;
33403
 
  friend class ::ExtAC;
33404
 
  friend class ::ExtACBuilderCoupling;
33405
 
  friend class ::ExtACSyntaxCoupling;
33406
 
  friend class ::ExtACTree;
33407
 
  friend class ::ExtACKeywords;
33408
 
  friend class ::WinAsm;
33409
 
  friend class ::WinDeclSpecs;
33410
 
  friend class ::WinMemberExplSpec;
33411
 
  friend class ::WinTypeKeywords;
33412
 
  friend class ::PragmaOnceUnitState;
33413
 
  friend class ::PragmaOnce;
33414
 
  friend class ::CCExprResolve;
33415
 
  friend class ::CExprResolve;
33416
 
 
33417
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CRecognizer.h"
33418
 
 
33419
 
  CScanBuffer scan_buffer;
33420
 
  CCommentRecognizer comment_recognizer;
33421
 
  Array<KeywordRecognizer*> additional_keyword_recognizers;
33422
 
 
33423
 
public:
33424
 
  typedef enum { NORMAL, IN_COMP_DIR, IN_PRE_DIR } Mode;
33425
 
  typedef enum { COMMENT, PRE_DIR, COMP_DIR, WHITE, PRE, STRING, CORE, 
33426
 
                 KEYWORD, ID, WILDCARD, UNKNOWN } Lang;
33427
 
 
33428
 
  CRecognizer () : wildcards (false), aspectc (false), macro_ops (false),
33429
 
    std_c (true), std_cplusplus (true) {}
33430
 
  CRecognizer (ScanBuffer& buffer) : wildcards (false), aspectc (false),
33431
 
    macro_ops (false) { setup (buffer); }
33432
 
  void allow_wildcards (bool flag = true)     { wildcards = flag; }
33433
 
  void allow_aspectc (bool flag = true)       { aspectc   = flag; } 
33434
 
  void allow_macro_ops (bool flag = true)     { macro_ops = flag; }
33435
 
  void allow_std_c (bool flag = true)         { std_c = flag; }
33436
 
  void allow_std_cplusplus (bool flag = true) { std_cplusplus = flag; }
33437
 
  void setup (ScanBuffer &buffer);
33438
 
  int recognize (Lang &lang, int &expr, int &len);
33439
 
  Mode mode () { return scan_mode; }
33440
 
  bool new_line () const { return scan_buffer.new_line (); }
33441
 
  CScanBuffer& buffer () { return scan_buffer; }
33442
 
  void addRecognizer(KeywordRecognizer &recognizer) 
33443
 
   { additional_keyword_recognizers.append(&recognizer); }
33444
 
 
33445
 
private:
33446
 
  static MappedOrangeRecognizer<CScanBuffer> string_recognizer;   
33447
 
  static MappedOrangeRecognizer<CScanBuffer> pre_dir_recognizer;
33448
 
  static MappedOrangeRecognizer<CScanBuffer> pre_token_recognizer;
33449
 
  static OrangeRecognizer<CScanBuffer> dir_recognizer;
33450
 
  static MappedOrangeRecognizer<CScanBuffer> whitespace_recognizer;
33451
 
  static MappedOrangeRecognizer<CScanBuffer> wildcard_recognizer;
33452
 
  static MappedOrangeRecognizer<CScanBuffer> core_recognizer;
33453
 
  static MappedOrangeRecognizer<CScanBuffer> identifier_recognizer;
33454
 
 
33455
 
  Mode scan_mode;
33456
 
  bool check_directive;
33457
 
  bool wildcards;
33458
 
  bool aspectc;
33459
 
  bool macro_ops;
33460
 
  bool std_c;
33461
 
  bool std_cplusplus;
33462
 
};
33463
 
 
33464
 
 
33465
 
} // namespace Puma
33466
 
 
33467
 
#endif /* __c_recognizer_h__ */
33468
 
 
33469
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
33470
 
// This file is part of PUMA.
33471
 
// Copyright (C) 1999-2003  The PUMA developer team.
33472
 
//                                                                
33473
 
// This program is free software;  you can redistribute it and/or 
33474
 
// modify it under the terms of the GNU General Public License as 
33475
 
// published by the Free Software Foundation; either version 2 of 
33476
 
// the License, or (at your option) any later version.            
33477
 
//                                                                
33478
 
// This program is distributed in the hope that it will be useful,
33479
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
33480
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
33481
 
// GNU General Public License for more details.                   
33482
 
//                                                                
33483
 
// You should have received a copy of the GNU General Public      
33484
 
// License along with this program; if not, write to the Free     
33485
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
33486
 
// MA  02111-1307  USA                                            
33487
 
 
33488
 
#ifndef __Tokenizer_h__
33489
 
#define __Tokenizer_h__
33490
 
 
33491
 
// Tokenizer interface. Tokenizer read input from a "Source" and
33492
 
// form tokens, which used to fill a "Unit".
33493
 
 
33494
 
 
33495
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Source.h"
33496
 
// This file is part of PUMA.
33497
 
// Copyright (C) 1999-2003  The PUMA developer team.
33498
 
//                                                                
33499
 
// This program is free software;  you can redistribute it and/or 
33500
 
// modify it under the terms of the GNU General Public License as 
33501
 
// published by the Free Software Foundation; either version 2 of 
33502
 
// the License, or (at your option) any later version.            
33503
 
//                                                                
33504
 
// This program is distributed in the hope that it will be useful,
33505
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
33506
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
33507
 
// GNU General Public License for more details.                   
33508
 
//                                                                
33509
 
// You should have received a copy of the GNU General Public      
33510
 
// License along with this program; if not, write to the Free     
33511
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
33512
 
// MA  02111-1307  USA                                            
33513
 
 
33514
 
#ifndef __source_h__
33515
 
#define __source_h__
33516
 
 
33517
 
namespace Puma {
33518
 
 
33519
 
 
33520
 
 
33521
 
#line 33522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33522
 
} // closed Puma
33523
 
class WinIfExists;
33524
 
class WinImportHandler;
33525
 
class WinMacros;
33526
 
class CMatchSyntax;
33527
 
class ExtGnu;
33528
 
class ExtAC;
33529
 
class ExtACBuilderCoupling;
33530
 
class ExtACSyntaxCoupling;
33531
 
class ExtACTree;
33532
 
class ExtACKeywords;
33533
 
class WinAsm;
33534
 
class WinDeclSpecs;
33535
 
class WinMemberExplSpec;
33536
 
class WinTypeKeywords;
33537
 
class PragmaOnceUnitState;
33538
 
class PragmaOnce;
33539
 
class CCExprResolve;
33540
 
class CExprResolve;
33541
 
namespace Puma {
33542
 
 
33543
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Source.h"
33544
 
class Source {
33545
 
#line 33546 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33546
 
  friend class ::WinIfExists;
33547
 
  friend class ::WinImportHandler;
33548
 
  friend class ::WinMacros;
33549
 
  friend class ::CMatchSyntax;
33550
 
  friend class ::ExtGnu;
33551
 
  friend class ::ExtAC;
33552
 
  friend class ::ExtACBuilderCoupling;
33553
 
  friend class ::ExtACSyntaxCoupling;
33554
 
  friend class ::ExtACTree;
33555
 
  friend class ::ExtACKeywords;
33556
 
  friend class ::WinAsm;
33557
 
  friend class ::WinDeclSpecs;
33558
 
  friend class ::WinMemberExplSpec;
33559
 
  friend class ::WinTypeKeywords;
33560
 
  friend class ::PragmaOnceUnitState;
33561
 
  friend class ::PragmaOnce;
33562
 
  friend class ::CCExprResolve;
33563
 
  friend class ::CExprResolve;
33564
 
 
33565
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Source.h"
33566
 
 
33567
 
public:
33568
 
  Source () {}
33569
 
  virtual ~Source () {}
33570
 
  virtual int read (char *dest, int n) = 0;
33571
 
  virtual int size () { return -1; }
33572
 
};
33573
 
 
33574
 
 
33575
 
} // namespace Puma
33576
 
 
33577
 
#endif /* __source_h__ */
33578
 
 
33579
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
33580
 
namespace Puma {
33581
 
 
33582
 
 
33583
 
 
33584
 
#line 33585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33585
 
} // closed Puma
33586
 
class WinIfExists;
33587
 
class WinImportHandler;
33588
 
class WinMacros;
33589
 
class CMatchSyntax;
33590
 
class ExtGnu;
33591
 
class ExtAC;
33592
 
class ExtACBuilderCoupling;
33593
 
class ExtACSyntaxCoupling;
33594
 
class ExtACTree;
33595
 
class ExtACKeywords;
33596
 
class WinAsm;
33597
 
class WinDeclSpecs;
33598
 
class WinMemberExplSpec;
33599
 
class WinTypeKeywords;
33600
 
class PragmaOnceUnitState;
33601
 
class PragmaOnce;
33602
 
class CCExprResolve;
33603
 
class CExprResolve;
33604
 
namespace Puma {
33605
 
 
33606
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
33607
 
class Tokenizer {
33608
 
#line 33609 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33609
 
  friend class ::WinIfExists;
33610
 
  friend class ::WinImportHandler;
33611
 
  friend class ::WinMacros;
33612
 
  friend class ::CMatchSyntax;
33613
 
  friend class ::ExtGnu;
33614
 
  friend class ::ExtAC;
33615
 
  friend class ::ExtACBuilderCoupling;
33616
 
  friend class ::ExtACSyntaxCoupling;
33617
 
  friend class ::ExtACTree;
33618
 
  friend class ::ExtACKeywords;
33619
 
  friend class ::WinAsm;
33620
 
  friend class ::WinDeclSpecs;
33621
 
  friend class ::WinMemberExplSpec;
33622
 
  friend class ::WinTypeKeywords;
33623
 
  friend class ::PragmaOnceUnitState;
33624
 
  friend class ::PragmaOnce;
33625
 
  friend class ::CCExprResolve;
33626
 
  friend class ::CExprResolve;
33627
 
 
33628
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Tokenizer.h"
33629
 
 
33630
 
public:
33631
 
  virtual ~Tokenizer () {}
33632
 
  virtual void fill_unit (Source &in, Unit &unit) = 0;
33633
 
};
33634
 
 
33635
 
 
33636
 
} // namespace Puma
33637
 
 
33638
 
#endif /* __Tokenizer_h__ */
33639
 
 
33640
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
33641
 
namespace Puma {
33642
 
 
33643
 
 
33644
 
class Token;
33645
 
 
33646
 
 
33647
 
#line 33648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33648
 
} // closed Puma
33649
 
class WinIfExists;
33650
 
class WinImportHandler;
33651
 
class WinMacros;
33652
 
class CMatchSyntax;
33653
 
class ExtGnu;
33654
 
class ExtAC;
33655
 
class ExtACBuilderCoupling;
33656
 
class ExtACSyntaxCoupling;
33657
 
class ExtACTree;
33658
 
class ExtACKeywords;
33659
 
class WinAsm;
33660
 
class WinDeclSpecs;
33661
 
class WinMemberExplSpec;
33662
 
class WinTypeKeywords;
33663
 
class PragmaOnceUnitState;
33664
 
class PragmaOnce;
33665
 
class CCExprResolve;
33666
 
class CExprResolve;
33667
 
namespace Puma {
33668
 
 
33669
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
33670
 
class CScanner : public CRecognizer, public Tokenizer {
33671
 
#line 33672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33672
 
  friend class ::WinIfExists;
33673
 
  friend class ::WinImportHandler;
33674
 
  friend class ::WinMacros;
33675
 
  friend class ::CMatchSyntax;
33676
 
  friend class ::ExtGnu;
33677
 
  friend class ::ExtAC;
33678
 
  friend class ::ExtACBuilderCoupling;
33679
 
  friend class ::ExtACSyntaxCoupling;
33680
 
  friend class ::ExtACTree;
33681
 
  friend class ::ExtACKeywords;
33682
 
  friend class ::WinAsm;
33683
 
  friend class ::WinDeclSpecs;
33684
 
  friend class ::WinMemberExplSpec;
33685
 
  friend class ::WinTypeKeywords;
33686
 
  friend class ::PragmaOnceUnitState;
33687
 
  friend class ::PragmaOnce;
33688
 
  friend class ::CCExprResolve;
33689
 
  friend class ::CExprResolve;
33690
 
 
33691
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
33692
 
 
33693
 
  Location loc;
33694
 
  ErrorSink &err;
33695
 
 
33696
 
  Token *make_token (CRecognizer::Lang lang, int expr, int len);
33697
 
  LanguageID map_lang (CRecognizer::Lang lang);
33698
 
  Token *scan ();
33699
 
  void scan_all (Unit &unit);
33700
 
 
33701
 
public:
33702
 
  CScanner (ErrorSink &error_stream) : err (error_stream) {}
33703
 
  virtual ~CScanner () {}
33704
 
  void configure (const Config &);
33705
 
  
33706
 
#line 33707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33707
 
public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
33708
 
 
33709
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
33710
 
void fill_unit (Source &in, Unit &unit);
33711
 
  
33712
 
#line 33713 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33713
 
public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
33714
 
 
33715
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
33716
 
void fill_unit (const char *in, Unit &unit);
33717
 
};
33718
 
 
33719
 
 
33720
 
} // namespace Puma
33721
 
 
33722
 
#endif /* __c_scanner_h__ */
33723
 
 
33724
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
39695
#include "Puma/Config.h"
 
39696
#include "Puma/Project.h"
 
39697
#include "Puma/CScanner.h"
 
39698
#include "Puma/ErrorStream.h"
 
39699
 
33725
39700
namespace Puma {
33726
39701
 
33727
39702
 
33729
39704
class CTypeInfo;
33730
39705
 
33731
39706
 
33732
 
#line 33733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39707
#line 39708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
33733
39708
} // closed Puma
 
39709
class CCExprResolve;
 
39710
class CExprResolve;
33734
39711
class WinIfExists;
33735
39712
class WinImportHandler;
33736
39713
class WinMacros;
33737
 
class CMatchSyntax;
33738
 
class ExtGnu;
 
39714
class WinAsm;
 
39715
class WinDeclSpecs;
 
39716
class WinMemberExplSpec;
 
39717
class WinTypeKeywords;
 
39718
class WinFriend;
33739
39719
class ExtAC;
33740
39720
class ExtACBuilderCoupling;
33741
39721
class ExtACSyntaxCoupling;
33742
39722
class ExtACTree;
33743
39723
class ExtACKeywords;
33744
 
class WinAsm;
33745
 
class WinDeclSpecs;
33746
 
class WinMemberExplSpec;
33747
 
class WinTypeKeywords;
 
39724
class ExtGnu;
33748
39725
class PragmaOnceUnitState;
33749
39726
class PragmaOnce;
33750
 
class CCExprResolve;
33751
 
class CExprResolve;
 
39727
class CMatchSyntax;
33752
39728
namespace Puma {
33753
39729
 
33754
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
39730
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
33755
39731
class CProject : public Project {
33756
 
#line 33757 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39732
#line 39733 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
39733
  friend class ::CCExprResolve;
 
39734
  friend class ::CExprResolve;
33757
39735
  friend class ::WinIfExists;
33758
39736
  friend class ::WinImportHandler;
33759
39737
  friend class ::WinMacros;
33760
 
  friend class ::CMatchSyntax;
33761
 
  friend class ::ExtGnu;
 
39738
  friend class ::WinAsm;
 
39739
  friend class ::WinDeclSpecs;
 
39740
  friend class ::WinMemberExplSpec;
 
39741
  friend class ::WinTypeKeywords;
 
39742
  friend class ::WinFriend;
33762
39743
  friend class ::ExtAC;
33763
39744
  friend class ::ExtACBuilderCoupling;
33764
39745
  friend class ::ExtACSyntaxCoupling;
33765
39746
  friend class ::ExtACTree;
33766
39747
  friend class ::ExtACKeywords;
33767
 
  friend class ::WinAsm;
33768
 
  friend class ::WinDeclSpecs;
33769
 
  friend class ::WinMemberExplSpec;
33770
 
  friend class ::WinTypeKeywords;
 
39748
  friend class ::ExtGnu;
33771
39749
  friend class ::PragmaOnceUnitState;
33772
39750
  friend class ::PragmaOnce;
33773
 
  friend class ::CCExprResolve;
33774
 
  friend class ::CExprResolve;
 
39751
  friend class ::CMatchSyntax;
33775
39752
 
33776
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
39753
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
33777
39754
 
33778
39755
  Config _config;
33779
39756
  CScanner _scanner;
33809
39786
  // Scan the file `file' or the source if given. When
33810
39787
  // scanning a source the resulting unit gets the name `file'.
33811
39788
  
33812
 
#line 33813 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
33813
 
public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
39789
#line 39790 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
39790
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
33814
39791
 
33815
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
39792
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
33816
39793
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
33817
39794
                          bool isFile = true);
33818
39795
        
33842
39819
 
33843
39820
#endif /* __CProject_h__ */
33844
39821
 
33845
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33846
 
using namespace Puma;
33847
 
 
33848
 
 
33849
 
#line 33850 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39822
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39823
 
 
39824
#line 39825 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
39825
class CCExprResolve;
 
39826
class CExprResolve;
33850
39827
class WinIfExists;
33851
39828
class WinImportHandler;
33852
39829
class WinMacros;
33853
 
class CMatchSyntax;
33854
 
class ExtGnu;
 
39830
class WinAsm;
 
39831
class WinDeclSpecs;
 
39832
class WinMemberExplSpec;
 
39833
class WinTypeKeywords;
 
39834
class WinFriend;
33855
39835
class ExtACBuilderCoupling;
33856
39836
class ExtACSyntaxCoupling;
33857
39837
class ExtACTree;
33858
39838
class ExtACKeywords;
33859
 
class WinAsm;
33860
 
class WinDeclSpecs;
33861
 
class WinMemberExplSpec;
33862
 
class WinTypeKeywords;
 
39839
class ExtGnu;
33863
39840
class PragmaOnceUnitState;
33864
39841
class PragmaOnce;
33865
 
class CCExprResolve;
33866
 
class CExprResolve;
 
39842
class CMatchSyntax;
33867
39843
 
33868
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39844
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33869
39845
class ExtAC {
33870
 
#line 33871 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39846
#line 39847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
33871
39847
 
33872
39848
public:
33873
39849
  static ExtAC *aspectof () {
33879
39855
  }
33880
39856
private:
33881
39857
 
33882
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39858
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33883
39859
 
33884
 
#line 33885 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39860
#line 39861 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
39861
  friend class ::CCExprResolve;
 
39862
  friend class ::CExprResolve;
33885
39863
  friend class ::WinIfExists;
33886
39864
  friend class ::WinImportHandler;
33887
39865
  friend class ::WinMacros;
33888
 
  friend class ::CMatchSyntax;
33889
 
  friend class ::ExtGnu;
 
39866
  friend class ::WinAsm;
 
39867
  friend class ::WinDeclSpecs;
 
39868
  friend class ::WinMemberExplSpec;
 
39869
  friend class ::WinTypeKeywords;
 
39870
  friend class ::WinFriend;
33890
39871
  friend class ::ExtACBuilderCoupling;
33891
39872
  friend class ::ExtACSyntaxCoupling;
33892
39873
  friend class ::ExtACTree;
33893
39874
  friend class ::ExtACKeywords;
33894
 
  friend class ::WinAsm;
33895
 
  friend class ::WinDeclSpecs;
33896
 
  friend class ::WinMemberExplSpec;
33897
 
  friend class ::WinTypeKeywords;
 
39875
  friend class ::ExtGnu;
33898
39876
  friend class ::PragmaOnceUnitState;
33899
39877
  friend class ::PragmaOnce;
33900
 
  friend class ::CCExprResolve;
33901
 
  friend class ::CExprResolve;
 
39878
  friend class ::CMatchSyntax;
33902
39879
 
33903
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39880
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33904
39881
 
33905
39882
  // used to enable and disable this extension at runtime
33906
39883
  bool _enabled;
33912
39889
  // C parser extension
33913
39890
  // ******************
33914
39891
  
33915
 
#line 55 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39892
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33916
39893
 
33917
39894
  
33918
 
#line 60 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39895
#line 61 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33919
39896
 
33920
39897
 
33921
39898
  // *****************
33924
39901
 
33925
39902
  // introduce AC extensions
33926
39903
  
33927
 
#line 67 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39904
#line 68 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33928
39905
 
33929
39906
  
33930
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39907
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33931
39908
 
33932
39909
  
33933
39910
  // add behavioral extensions
33934
39911
  
33935
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39912
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33936
39913
 
33937
39914
public: template<class JoinPoint> void __a0_before 
33938
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39915
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33939
39916
 
33940
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39917
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33941
39918
(JoinPoint *tjp)
33942
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39919
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33943
39920
 {
33944
 
#line 33945 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39921
#line 39922 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
33945
39922
 
33946
39923
  typedef typename JoinPoint::That __JP_That;
33947
39924
  typedef typename JoinPoint::Target __JP_Target;
33948
39925
  typedef typename JoinPoint::Result __JP_Result;
33949
39926
 
33950
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39927
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33951
39928
 
33952
 
    tjp->that ()->ACClassDatabase::Dump (*tjp->template arg<0>(), *tjp->template arg<1>());
 
39929
    tjp->that ()->Puma::ACClassDatabase::Dump (*tjp->template arg<0>(), *tjp->template arg<1>());
33953
39930
  }
33954
 
#line 33955 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39931
#line 39932 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
33955
39932
 
33956
39933
protected:
33957
39934
 
33958
 
#line 73 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39935
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33959
39936
 
33960
39937
 
33961
39938
  // ***************************
33963
39940
  // ***************************
33964
39941
 
33965
39942
  
33966
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33967
 
 
33968
 
 
33969
 
  
33970
 
#line 113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
33971
 
 
33972
 
 
 
39943
#line 80 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39944
 
 
39945
 
 
39946
  
 
39947
#line 114 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39948
 
 
39949
 
 
39950
  
 
39951
#line 116 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39952
 
 
39953
 
 
39954
  
 
39955
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39956
 
 
39957
  
33973
39958
  // initialize introduced attributes
33974
39959
  
33975
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39960
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33976
39961
 
33977
39962
public: template<class JoinPoint> void __a1_after 
33978
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39963
#line 124 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33979
39964
 
33980
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39965
#line 124 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33981
39966
(JoinPoint *tjp)
33982
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39967
#line 124 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33983
39968
 {
33984
 
#line 33985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39969
#line 39970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
33985
39970
 
33986
39971
  typedef typename JoinPoint::That __JP_That;
33987
39972
  typedef typename JoinPoint::Target __JP_Target;
33988
39973
  typedef typename JoinPoint::Result __JP_Result;
33989
39974
 
33990
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39975
#line 124 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
33991
39976
 
33992
39977
    tjp->that ()->_in_advice_decl   = false;
33993
39978
    tjp->that ()->_in_pointcut_decl = false;
33994
39979
    tjp->that ()->_introducer       = 0;
33995
39980
  }
33996
 
#line 33997 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39981
#line 39982 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
33997
39982
 
33998
39983
protected:
33999
39984
 
34000
 
#line 120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39985
#line 128 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34001
39986
 
34002
39987
  
34003
39988
  // introduce_function must check for code advice
34004
39989
  
34005
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39990
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34006
39991
 
34007
39992
public: template<class JoinPoint> void __a2_around 
34008
 
#line 124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39993
#line 132 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34009
39994
 
34010
 
#line 124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39995
#line 132 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34011
39996
(JoinPoint *tjp)
34012
 
#line 124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
39997
#line 132 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34013
39998
 {
34014
 
#line 34015 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
39999
#line 40000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34015
40000
 
34016
40001
  typedef typename JoinPoint::That __JP_That;
34017
40002
  typedef typename JoinPoint::Target __JP_Target;
34018
40003
  typedef typename JoinPoint::Result __JP_Result;
34019
40004
 
34020
 
#line 124 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40005
#line 132 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34021
40006
 
34022
40007
     
34023
40008
    // first save the current function
34024
 
    CObjectInfo *func = tjp->that ()->current_fct;
 
40009
    Puma::CObjectInfo *func = tjp->that ()->current_fct;
34025
40010
    
34026
40011
    // now do the original stuff
34027
40012
    tjp->proceed ();
34028
 
    CTree *node = *tjp->result ();
 
40013
    Puma::CTree *node = *tjp->result ();
34029
40014
    if (!node)
34030
40015
      return;
34031
40016
 
34032
40017
    // do the necessary post processing
34033
40018
    tjp->that ()->introduce_function_post (func, node);
34034
40019
  }
34035
 
#line 34036 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40020
#line 40021 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34036
40021
 
34037
40022
protected:
34038
40023
 
34039
 
#line 137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40024
#line 145 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34040
40025
 
34041
40026
  
34042
40027
  // make sure lookup of functions is ignored for intros
34043
40028
  
34044
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40029
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34045
40030
 
34046
40031
public: template<class JoinPoint> void __a3_around 
34047
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40032
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34048
40033
 
34049
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40034
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34050
40035
(JoinPoint *tjp)
34051
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40036
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34052
40037
 {
34053
 
#line 34054 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40038
#line 40039 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34054
40039
 
34055
40040
  typedef typename JoinPoint::That __JP_That;
34056
40041
  typedef typename JoinPoint::Target __JP_Target;
34057
40042
  typedef typename JoinPoint::Result __JP_Result;
34058
40043
 
34059
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40044
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34060
40045
 
34061
40046
    if (tjp->that ()->_in_advice_decl)
34062
40047
      *tjp->result () = true;
34063
40048
    else
34064
40049
      tjp->proceed ();
34065
40050
  }
34066
 
#line 34067 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40051
#line 40052 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34067
40052
 
34068
40053
protected:
34069
40054
 
34070
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40055
#line 154 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34071
40056
 
34072
40057
 
34073
40058
  // extend member handling
34074
40059
  
34075
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40060
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34076
40061
 
34077
40062
public: template<class JoinPoint> void __a4_after 
34078
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40063
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34079
40064
 
34080
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40065
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34081
40066
(JoinPoint *tjp)
34082
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40067
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34083
40068
 {
34084
 
#line 34085 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40069
#line 40070 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34085
40070
 
34086
40071
  typedef typename JoinPoint::That __JP_That;
34087
40072
  typedef typename JoinPoint::Target __JP_Target;
34088
40073
  typedef typename JoinPoint::Result __JP_Result;
34089
40074
 
34090
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40075
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34091
40076
 
34092
 
    CTree *node = *tjp->result ();
34093
 
    if (!node || node->NodeName () != CT_InitDeclarator::NodeId ())
 
40077
    Puma::CTree *node = *tjp->result ();
 
40078
    if (!node || node->NodeName () != Puma::CT_InitDeclarator::NodeId ())
34094
40079
      return;
34095
40080
 
34096
 
    CObjectInfo *object = ((CT_InitDeclarator *)node)->Object ();
 
40081
    Puma::CObjectInfo *object = ((Puma::CT_InitDeclarator *)node)->Object ();
34097
40082
    if (tjp->that ()->_in_pointcut_decl && object->FunctionInfo ()) {
34098
40083
      // setup the scope for the following pointcut expression
34099
40084
      tjp->that ()->current_scope = object->FunctionInfo ();
34100
40085
    }
34101
40086
  }
34102
 
#line 34103 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40087
#line 40088 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34103
40088
 
34104
40089
protected:
34105
40090
 
34106
 
#line 160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40091
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34107
40092
 
34108
40093
 
34109
40094
  // make sure lookup of members is ignored for intros
34110
40095
  
34111
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40096
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34112
40097
 
34113
40098
public: template<class JoinPoint> void __a5_around 
34114
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40099
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34115
40100
 
34116
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40101
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34117
40102
(JoinPoint *tjp, bool &redef_typedef)
34118
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40103
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34119
40104
 {
34120
 
#line 34121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40105
#line 40106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34121
40106
 
34122
40107
  typedef typename JoinPoint::That __JP_That;
34123
40108
  typedef typename JoinPoint::Target __JP_Target;
34124
40109
  typedef typename JoinPoint::Result __JP_Result;
34125
40110
 
34126
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40111
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34127
40112
 
34128
40113
    if (tjp->that ()->_in_advice_decl) {
34129
40114
      redef_typedef = false;
34131
40116
    } else
34132
40117
      tjp->proceed ();
34133
40118
  }
34134
 
#line 34135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40119
#line 40120 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34135
40120
 
34136
40121
protected:
34137
40122
 
34138
 
#line 172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40123
#line 180 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34139
40124
 
34140
40125
 
34141
40126
  // extend object handling
34142
40127
  
34143
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40128
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34144
40129
 
34145
40130
public: template<class JoinPoint> void __a6_after 
34146
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40131
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34147
40132
 
34148
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40133
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34149
40134
(JoinPoint *tjp)
34150
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40135
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34151
40136
 {
34152
 
#line 34153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40137
#line 40138 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34153
40138
 
34154
40139
  typedef typename JoinPoint::That __JP_That;
34155
40140
  typedef typename JoinPoint::Target __JP_Target;
34156
40141
  typedef typename JoinPoint::Result __JP_Result;
34157
40142
 
34158
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40143
#line 184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34159
40144
 
34160
 
    CTree *node = *tjp->result ();
34161
 
    if (! node || node->NodeName () != CT_InitDeclarator::NodeId ()) 
 
40145
    Puma::CTree *node = *tjp->result ();
 
40146
    if (! node || node->NodeName () != Puma::CT_InitDeclarator::NodeId ()) 
34162
40147
      return;
34163
40148
 
34164
 
    CObjectInfo *object = ((CT_InitDeclarator *)node)->Object ();
 
40149
    Puma::CObjectInfo *object = ((Puma::CT_InitDeclarator *)node)->Object ();
34165
40150
    if (tjp->that ()->_in_pointcut_decl && object->FunctionInfo ()) {
34166
40151
      // setup the scope for the following pointcut expression
34167
40152
// TEMPORARY
34169
40154
      tjp->that ()->current_scope = object->FunctionInfo ();
34170
40155
    }
34171
40156
  }
34172
 
#line 34173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40157
#line 40158 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34173
40158
 
34174
40159
protected:
34175
40160
 
34176
 
#line 188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40161
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34177
40162
 
34178
40163
  
34179
40164
  // make sure lookup of members is ignored for intros
34180
40165
  
34181
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40166
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34182
40167
 
34183
40168
public: template<class JoinPoint> void __a7_around 
34184
 
#line 194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40169
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34185
40170
 
34186
 
#line 194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40171
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34187
40172
(JoinPoint *tjp, bool &redef_typedef)
34188
 
#line 194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40173
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34189
40174
 {
34190
 
#line 34191 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40175
#line 40176 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34191
40176
 
34192
40177
  typedef typename JoinPoint::That __JP_That;
34193
40178
  typedef typename JoinPoint::Target __JP_Target;
34194
40179
  typedef typename JoinPoint::Result __JP_Result;
34195
40180
 
34196
 
#line 194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40181
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34197
40182
 
34198
40183
      if (tjp->that ()->_in_advice_decl) {
34199
40184
        redef_typedef = false;
34201
40186
      } else
34202
40187
        tjp->proceed ();
34203
40188
  }
34204
 
#line 34205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40189
#line 40190 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34205
40190
 
34206
40191
protected:
34207
40192
 
34208
 
#line 200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40193
#line 208 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34209
40194
 
34210
40195
 
34211
40196
  // extend the class handling  
34212
40197
  
34213
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40198
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34214
40199
 
34215
40200
public: template<class JoinPoint> void __a8_after 
34216
 
#line 204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40201
#line 212 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34217
40202
 
34218
 
#line 204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40203
#line 212 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34219
40204
(JoinPoint *tjp)
34220
 
#line 204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40205
#line 212 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34221
40206
 {
34222
 
#line 34223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40207
#line 40208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34223
40208
 
34224
40209
  typedef typename JoinPoint::That __JP_That;
34225
40210
  typedef typename JoinPoint::Target __JP_Target;
34226
40211
  typedef typename JoinPoint::Result __JP_Result;
34227
40212
 
34228
 
#line 204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40213
#line 212 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34229
40214
 
34230
 
    CT_ClassDef *cd = (CT_ClassDef*)*tjp->result ();
 
40215
    Puma::CT_ClassDef *cd = (Puma::CT_ClassDef*)*tjp->result ();
34231
40216
    if (!cd)
34232
40217
      return;
34233
40218
    tjp->that ()->introduce_class_post (cd);
34234
 
 
34235
 
    if (tjp->that ()->_introducer) {
34236
 
      // handle introductions before a class, they shall be parsed in global scope
34237
 
      CStructure *saved_scope = tjp->that ()->current_scope;
34238
 
      tjp->that ()->current_scope = tjp->that ()->_db->FileInfo (0);
34239
 
//    _protection.push (CProtection::PROT_NONE);
34240
 
//    _in_extern_decl.push (0);
34241
 
      tjp->that ()->_introducer->class_before (cd);
34242
 
//    _in_extern_decl.pop ();
34243
 
//    _protection.pop ();
34244
 
      tjp->that ()->current_scope = saved_scope;
34245
 
    }
34246
40219
  }
34247
 
#line 34248 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40220
#line 40221 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34248
40221
 
34249
40222
protected:
34250
40223
 
34251
 
#line 221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40224
#line 217 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34252
40225
 
34253
40226
 
34254
40227
  // extend the class handling  
 
40228
//  advice within (derived (csemantic ())) &&
 
40229
//    execution ("% ...::class_spec(...)") : before () {
 
40230
//    if (tjp->that ()->_introducer) {
 
40231
//      Puma::CT_ClassDef *cd =
 
40232
//        (Puma::CT_ClassDef*)tjp->that ()->current_scope->Structure ()->Tree ();
 
40233
//      Puma::Builder &builder = tjp->that ()->builder ();
 
40234
//      tjp->that ()->_introducer->class_end (cd,
 
40235
//        builder.get_node (builder.nodes () - 1));
 
40236
//    }
 
40237
//  }
34255
40238
  
34256
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40239
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34257
40240
 
34258
40241
public: template<class JoinPoint> void __a9_before 
34259
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40242
#line 231 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34260
40243
 
34261
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40244
#line 231 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34262
40245
(JoinPoint *tjp)
34263
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40246
#line 231 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34264
40247
 {
34265
 
#line 34266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40248
#line 40249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34266
40249
 
34267
40250
  typedef typename JoinPoint::That __JP_That;
34268
40251
  typedef typename JoinPoint::Target __JP_Target;
34269
40252
  typedef typename JoinPoint::Result __JP_Result;
34270
40253
 
34271
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40254
#line 231 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34272
40255
 
34273
40256
    if (tjp->that ()->_introducer) {
34274
 
      CT_ClassDef *cd =
34275
 
        (CT_ClassDef*)tjp->that ()->current_scope->Structure ()->Tree ();
34276
 
      Builder &builder = tjp->that ()->builder ();
34277
 
      tjp->that ()->_introducer->class_end (cd,
34278
 
        builder.get_node (builder.nodes () - 1));
 
40257
      Puma::CT_ClassDef *cd = (Puma::CT_ClassDef*)
 
40258
        tjp->that ()->current_scope->Structure ()->Tree ();
 
40259
      tjp->that ()->_introducer->class_end (cd);
34279
40260
    }
34280
40261
  }
34281
 
#line 34282 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40262
#line 40263 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34282
40263
 
34283
40264
protected:
34284
40265
 
34285
 
#line 233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
34286
 
 
34287
 
 
 
40266
#line 237 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40267
 
 
40268
  
34288
40269
  // perform an additional check on base classes with aspects
34289
40270
  
34290
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40271
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34291
40272
 
34292
40273
public: template<class JoinPoint> void __a10_after 
34293
 
#line 237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40274
#line 241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34294
40275
 
34295
 
#line 237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40276
#line 241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34296
40277
(JoinPoint *tjp)
34297
 
#line 237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40278
#line 241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34298
40279
 {
34299
 
#line 34300 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40280
#line 40281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34300
40281
 
34301
40282
  typedef typename JoinPoint::That __JP_That;
34302
40283
  typedef typename JoinPoint::Target __JP_Target;
34303
40284
  typedef typename JoinPoint::Result __JP_Result;
34304
40285
 
34305
 
#line 237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40286
#line 241 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34306
40287
 
34307
40288
 
34308
40289
    // obtain the first argument
34309
 
    CTree *cs = *tjp->template arg<0>();
 
40290
    Puma::CT_ClassDef *cd = (Puma::CT_ClassDef*)*tjp->template arg<0>();
34310
40291
    
 
40292
    // if necessary introduce base classes here
 
40293
    if (tjp->that ()->_introducer) {
 
40294
      tjp->that ()->_introducer->base_clause_end (cd,
 
40295
        tjp->that ()->syntax ().provider ()->current ());
 
40296
    }
 
40297
 
 
40298
    // semantically handle introduced base classes
 
40299
    Puma::CT_BaseSpecList *bl = (Puma::CT_BaseSpecList*)cd->BaseIntros ();
 
40300
    if (cd->Object () && bl) {
 
40301
      int num = bl->Entries ();
 
40302
      for (int i = 0; i < num; i++)
 
40303
        tjp->that ()->addBaseClass (cd->Object ()->ClassInfo (),
 
40304
          (Puma::CT_BaseSpec*)bl->Entry (i));
 
40305
    }
 
40306
 
34311
40307
    // handle it
34312
 
    tjp->that ()->add_base_classes_post (cs);
34313
 
  }
34314
 
#line 34315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
34315
 
 
34316
 
protected:
34317
 
 
34318
 
#line 244 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40308
    tjp->that ()->add_base_classes_post (cd);
 
40309
  }
 
40310
#line 40311 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
40311
 
 
40312
protected:
 
40313
 
 
40314
#line 263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40315
 
 
40316
 
 
40317
  // extend the translation unit handling -> finalization
 
40318
  
 
40319
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40320
 
 
40321
public: template<class JoinPoint> void __a11_after 
 
40322
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40323
 
 
40324
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40325
(JoinPoint *tjp)
 
40326
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40327
 {
 
40328
#line 40329 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
40329
 
 
40330
  typedef typename JoinPoint::That __JP_That;
 
40331
  typedef typename JoinPoint::Target __JP_Target;
 
40332
  typedef typename JoinPoint::Result __JP_Result;
 
40333
 
 
40334
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40335
 
 
40336
    if (tjp->that ()->_introducer) {
 
40337
      tjp->that ()->_introducer->trans_unit_end ((Puma::CT_Program*)*tjp->result ());
 
40338
    }
 
40339
  }
 
40340
#line 40341 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
40341
 
 
40342
protected:
 
40343
 
 
40344
#line 271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40345
 
34319
40346
 
34320
40347
};
34321
 
#line 34322 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40348
#line 40349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34322
40349
 
34323
40350
namespace AC {
34324
40351
  template <class JoinPoint>
34325
 
  inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp) {
 
40352
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp) {
34326
40353
    ::ExtAC::aspectof()->__a0_before (tjp);
34327
40354
  }
34328
40355
  template <class JoinPoint>
34329
 
  inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp) {
 
40356
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp) {
34330
40357
    ::ExtAC::aspectof()->__a1_after (tjp);
34331
40358
  }
34332
40359
  template <class JoinPoint>
34333
 
  inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp) {
 
40360
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp) {
34334
40361
    ::ExtAC::aspectof()->__a2_around (tjp);
34335
40362
  }
34336
40363
  template <class JoinPoint>
34337
 
  inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp) {
 
40364
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp) {
34338
40365
    ::ExtAC::aspectof()->__a3_around (tjp);
34339
40366
  }
34340
40367
  template <class JoinPoint>
34341
 
  inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp) {
 
40368
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp) {
34342
40369
    ::ExtAC::aspectof()->__a4_after (tjp);
34343
40370
  }
34344
 
  template <class JoinPoint, class Binding>
34345
 
  inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp) {
34346
 
    typedef typename Binding::template Arg<0> Arg0;
 
40371
  template <class JoinPoint>
 
40372
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp) {
 
40373
    typedef typename JoinPoint::Binding_ExtAC_ExtAC_a5_around::template Arg<0> Arg0;
34347
40374
    ::ExtAC::aspectof()->__a5_around (tjp, (bool &)Arg0::val (tjp));
34348
40375
  }
34349
40376
  template <class JoinPoint>
34350
 
  inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp) {
 
40377
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp) {
34351
40378
    ::ExtAC::aspectof()->__a6_after (tjp);
34352
40379
  }
34353
 
  template <class JoinPoint, class Binding>
34354
 
  inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp) {
34355
 
    typedef typename Binding::template Arg<0> Arg0;
 
40380
  template <class JoinPoint>
 
40381
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp) {
 
40382
    typedef typename JoinPoint::Binding_ExtAC_ExtAC_a7_around::template Arg<0> Arg0;
34356
40383
    ::ExtAC::aspectof()->__a7_around (tjp, (bool &)Arg0::val (tjp));
34357
40384
  }
34358
40385
  template <class JoinPoint>
34359
 
  inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp) {
 
40386
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp) {
34360
40387
    ::ExtAC::aspectof()->__a8_after (tjp);
34361
40388
  }
34362
40389
  template <class JoinPoint>
34363
 
  inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp) {
 
40390
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp) {
34364
40391
    ::ExtAC::aspectof()->__a9_before (tjp);
34365
40392
  }
34366
40393
  template <class JoinPoint>
34367
 
  inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp) {
 
40394
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp) {
34368
40395
    ::ExtAC::aspectof()->__a10_after (tjp);
34369
40396
  }
 
40397
  template <class JoinPoint>
 
40398
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a11_after (JoinPoint *tjp) {
 
40399
    ::ExtAC::aspectof()->__a11_after (tjp);
 
40400
  }
34370
40401
34371
40402
 
34372
 
#line 245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40403
#line 273 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34373
40404
 
34374
40405
 
34375
40406
 
34378
40409
// ***************************
34379
40410
 
34380
40411
 
34381
 
#line 285 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
34382
 
 
34383
 
 
34384
 
 
34385
 
#line 298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
34386
 
 
34387
 
 
34388
 
 
34389
 
#line 325 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
34390
 
 
34391
 
 
34392
 
 
34393
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
34394
 
 
34395
 
 
34396
 
 
34397
 
 
34398
 
#line 478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
34399
 
 
34400
 
 
34401
 
 
34402
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
34403
 
 
34404
 
 
34405
 
 
34406
 
#line 609 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
34407
 
 
34408
 
 
34409
 
 
34410
 
#line 634 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
34411
 
 
34412
 
 
34413
 
 
34414
 
#line 644 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
34415
 
 
34416
 
 
34417
 
 
34418
 
 
34419
 
#line 651 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40412
#line 314 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40413
 
 
40414
 
 
40415
 
 
40416
#line 334 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40417
 
 
40418
 
 
40419
 
 
40420
#line 360 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40421
 
 
40422
 
 
40423
 
 
40424
#line 388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40425
 
 
40426
 
 
40427
 
 
40428
#line 447 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40429
 
 
40430
 
 
40431
 
 
40432
 
 
40433
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40434
 
 
40435
 
 
40436
 
 
40437
#line 565 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40438
 
 
40439
 
 
40440
 
 
40441
#line 672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40442
 
 
40443
 
 
40444
 
 
40445
#line 698 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40446
 
 
40447
 
 
40448
 
 
40449
#line 708 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
 
40450
 
 
40451
 
 
40452
 
 
40453
 
 
40454
#line 715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtAC.ah"
34420
40455
 
34421
40456
 
34422
40457
#endif /* __ext_ac_h__ */
34423
40458
 
34424
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
34425
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
34426
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
34427
 
 
34428
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
34429
 
// This file is part of PUMA.
34430
 
// Copyright (C) 1999-2003  The PUMA developer team.
34431
 
//                                                                
34432
 
// This program is free software;  you can redistribute it and/or 
34433
 
// modify it under the terms of the GNU General Public License as 
34434
 
// published by the Free Software Foundation; either version 2 of 
34435
 
// the License, or (at your option) any later version.            
34436
 
//                                                                
34437
 
// This program is distributed in the hope that it will be useful,
34438
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
34439
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
34440
 
// GNU General Public License for more details.                   
34441
 
//                                                                
34442
 
// You should have received a copy of the GNU General Public      
34443
 
// License along with this program; if not, write to the Free     
34444
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
34445
 
// MA  02111-1307  USA                                            
34446
 
 
34447
 
#ifndef __CClassDatabase_h__
34448
 
#define __CClassDatabase_h__
34449
 
 
34450
 
 
34451
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
34452
 
 
34453
 
#line 34454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
34454
 
 
34455
 
#ifndef __ac_fwd_ExtACKeywords__
34456
 
#define __ac_fwd_ExtACKeywords__
34457
 
class ExtACKeywords;
34458
 
namespace AC {
34459
 
  template <class JoinPoint, class Binding>
34460
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
34461
 
  template <class JoinPoint, class Binding>
34462
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
34463
 
  template <class JoinPoint>
34464
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
34465
 
}
34466
 
#endif
34467
 
 
34468
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
34469
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
34470
 
#endif
34471
 
 
34472
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
34473
 
// This file is part of PUMA.
34474
 
// Copyright (C) 1999-2003  The PUMA developer team.
34475
 
//                                                                
34476
 
// This program is free software;  you can redistribute it and/or 
34477
 
// modify it under the terms of the GNU General Public License as 
34478
 
// published by the Free Software Foundation; either version 2 of 
34479
 
// the License, or (at your option) any later version.            
34480
 
//                                                                
34481
 
// This program is distributed in the hope that it will be useful,
34482
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
34483
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
34484
 
// GNU General Public License for more details.                   
34485
 
//                                                                
34486
 
// You should have received a copy of the GNU General Public      
34487
 
// License along with this program; if not, write to the Free     
34488
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
34489
 
// MA  02111-1307  USA                                            
34490
 
 
34491
 
#ifndef __CProject_h__
34492
 
#define __CProject_h__
34493
 
 
34494
 
// Special project derivation for C++ sources.
34495
 
 
34496
 
#include "Puma/Config.h"
34497
 
#include "Puma/Project.h"
34498
 
#include "Puma/CScanner.h"
34499
 
#include "Puma/ErrorStream.h"
34500
 
 
34501
 
namespace Puma {
34502
 
 
34503
 
 
34504
 
class Source;
34505
 
class CTypeInfo;
34506
 
 
34507
 
 
34508
 
#line 34509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
34509
 
} // closed Puma
34510
 
class WinIfExists;
34511
 
class WinImportHandler;
34512
 
class WinMacros;
34513
 
class CMatchSyntax;
34514
 
class ExtGnu;
34515
 
class ExtAC;
34516
 
class ExtACBuilderCoupling;
34517
 
class ExtACSyntaxCoupling;
34518
 
class ExtACTree;
34519
 
class ExtACKeywords;
34520
 
class WinAsm;
34521
 
class WinDeclSpecs;
34522
 
class WinMemberExplSpec;
34523
 
class WinTypeKeywords;
34524
 
class PragmaOnceUnitState;
34525
 
class PragmaOnce;
34526
 
class CCExprResolve;
34527
 
class CExprResolve;
34528
 
namespace Puma {
34529
 
 
34530
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
34531
 
class CProject : public Project {
34532
 
#line 34533 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
34533
 
  friend class ::WinIfExists;
34534
 
  friend class ::WinImportHandler;
34535
 
  friend class ::WinMacros;
34536
 
  friend class ::CMatchSyntax;
34537
 
  friend class ::ExtGnu;
34538
 
  friend class ::ExtAC;
34539
 
  friend class ::ExtACBuilderCoupling;
34540
 
  friend class ::ExtACSyntaxCoupling;
34541
 
  friend class ::ExtACTree;
34542
 
  friend class ::ExtACKeywords;
34543
 
  friend class ::WinAsm;
34544
 
  friend class ::WinDeclSpecs;
34545
 
  friend class ::WinMemberExplSpec;
34546
 
  friend class ::WinTypeKeywords;
34547
 
  friend class ::PragmaOnceUnitState;
34548
 
  friend class ::PragmaOnce;
34549
 
  friend class ::CCExprResolve;
34550
 
  friend class ::CExprResolve;
34551
 
 
34552
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
34553
 
 
34554
 
  Config _config;
34555
 
  CScanner _scanner;
34556
 
 
34557
 
public:
34558
 
  CProject (ErrorStream &e);
34559
 
 
34560
 
  // Constructor: Add some source directories.
34561
 
  CProject (ErrorStream &, const char *defs, 
34562
 
               const char *decls = (const char*)0); 
34563
 
 
34564
 
  // Constructor: Setup preprocessor configuration according to
34565
 
  // command line parameter and the global config file and
34566
 
  // add some source directories.
34567
 
  CProject (ErrorStream &, int &argc, char **&argv, 
34568
 
            const char *defs = (const char*)0, 
34569
 
            const char *decls = (const char*)0);
34570
 
 
34571
 
public: // Project configuration 
34572
 
  // Get the preprocessor configuration.
34573
 
  Config &config ();
34574
 
 
34575
 
  // Configure the project from the command line or a file.
34576
 
  virtual void configure (Config &);
34577
 
 
34578
 
  // Add a new file to the project.
34579
 
  Unit *addFile (Filename file);
34580
 
 
34581
 
public: // Scanner interface
34582
 
  // Get the scanner.
34583
 
  CScanner &scanner ();
34584
 
 
34585
 
  // Scan the file `file' or the source if given. When
34586
 
  // scanning a source the resulting unit gets the name `file'.
34587
 
  
34588
 
#line 34589 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
34589
 
public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
34590
 
 
34591
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
34592
 
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
34593
 
                          bool isFile = true);
34594
 
        
34595
 
  // Scan a string. The resulting unit gets the name `name'.
34596
 
  // (and will not be registered at the unit manager!)
34597
 
  virtual Unit *scanString (const char *str, 
34598
 
                            const char *name = (const char*)0);
34599
 
 
34600
 
public: // Miscellaneous Functions
34601
 
 
34602
 
  // Give the filename needed to include a particular header file
34603
 
  Filename getInclString (Filename filename);
34604
 
 
34605
 
private:
34606
 
  // Map the type string from --size-type and --ptrdiff-type
34607
 
  // to real Puma type.
34608
 
  CTypeInfo *mapType (const char *) const;
34609
 
};
34610
 
 
34611
 
inline Config &CProject::config () 
34612
 
 { return _config; }
34613
 
inline CScanner &CProject::scanner () 
34614
 
 { return _scanner; }
34615
 
 
34616
 
 
34617
 
} // namespace Puma
34618
 
 
34619
 
#endif /* __CProject_h__ */
34620
 
 
34621
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
34622
 
using namespace std;
34623
 
 
34624
 
namespace Puma {
34625
 
 
34626
 
 
34627
 
class CObjectInfo;
34628
 
class CClassInfo;
34629
 
class CUnionInfo;
34630
 
class CEnumInfo;
34631
 
class CTypedefInfo;
34632
 
class CTemplateParamInfo;
34633
 
class CTypeInfo;
34634
 
class CFileInfo;
34635
 
class Token;
34636
 
 
34637
 
/** \file 
34638
 
 *  Database of all semantic objects (infos) of a project. 
34639
 
 *  \see Puma::CClassDatabase */
34640
 
 
34641
 
/** \class CClassDatabase CClassDatabase.h Puma/infos/CClassDatabase.h
34642
 
 *  A CClassDatabase object is a database of all semantic objects
34643
 
 *  (infos) of a project. */
34644
 
 
34645
 
#line 34646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
34646
 
} // closed Puma
34647
 
class WinIfExists;
34648
 
class WinImportHandler;
34649
 
class WinMacros;
34650
 
class CMatchSyntax;
34651
 
class ExtGnu;
34652
 
class ExtAC;
34653
 
class ExtACBuilderCoupling;
34654
 
class ExtACSyntaxCoupling;
34655
 
class ExtACTree;
34656
 
class ExtACKeywords;
34657
 
class WinAsm;
34658
 
class WinDeclSpecs;
34659
 
class WinMemberExplSpec;
34660
 
class WinTypeKeywords;
34661
 
class PragmaOnceUnitState;
34662
 
class PragmaOnce;
34663
 
class CCExprResolve;
34664
 
class CExprResolve;
34665
 
namespace Puma {
34666
 
 
34667
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
34668
 
class CClassDatabase  :public ACClassDatabase {
34669
 
#line 34670 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
34670
 
  friend class ::WinIfExists;
34671
 
  friend class ::WinImportHandler;
34672
 
  friend class ::WinMacros;
34673
 
  friend class ::CMatchSyntax;
34674
 
  friend class ::ExtGnu;
34675
 
  friend class ::ExtAC;
34676
 
  friend class ::ExtACBuilderCoupling;
34677
 
  friend class ::ExtACSyntaxCoupling;
34678
 
  friend class ::ExtACTree;
34679
 
  friend class ::ExtACKeywords;
34680
 
  friend class ::WinAsm;
34681
 
  friend class ::WinDeclSpecs;
34682
 
  friend class ::WinMemberExplSpec;
34683
 
  friend class ::WinTypeKeywords;
34684
 
  friend class ::PragmaOnceUnitState;
34685
 
  friend class ::PragmaOnce;
34686
 
  friend class ::CCExprResolve;
34687
 
  friend class ::CExprResolve;
34688
 
 
34689
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
34690
 
 
34691
 
  
34692
 
  Array<CObjectInfo*> _Classes;   // index of classes
34693
 
  Array<CObjectInfo*> _Unions;    // index of unions
34694
 
  Array<CObjectInfo*> _Enums;     // index of enums
34695
 
  Array<CObjectInfo*> _Typedefs;  // index of typedefs
34696
 
  Array<CObjectInfo*> _Functions; // index of functions
34697
 
  Array<CObjectInfo*> _Files;     // index of files
 
40459
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
40460
#endif
 
40461
namespace Puma {
 
40462
 
 
40463
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
40464
class CClassDatabase : public Puma :: ACClassDatabase 
 
40465
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
40466
{
 
40467
#line 40468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
40468
  friend class ::CCExprResolve;
 
40469
  friend class ::CExprResolve;
 
40470
  friend class ::WinIfExists;
 
40471
  friend class ::WinImportHandler;
 
40472
  friend class ::WinMacros;
 
40473
  friend class ::WinAsm;
 
40474
  friend class ::WinDeclSpecs;
 
40475
  friend class ::WinMemberExplSpec;
 
40476
  friend class ::WinTypeKeywords;
 
40477
  friend class ::WinFriend;
 
40478
  friend class ::ExtAC;
 
40479
  friend class ::ExtACBuilderCoupling;
 
40480
  friend class ::ExtACSyntaxCoupling;
 
40481
  friend class ::ExtACTree;
 
40482
  friend class ::ExtACKeywords;
 
40483
  friend class ::ExtGnu;
 
40484
  friend class ::PragmaOnceUnitState;
 
40485
  friend class ::PragmaOnce;
 
40486
  friend class ::CMatchSyntax;
 
40487
 
 
40488
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
40489
 
 
40490
  
 
40491
  Array<CObjectInfo*> _Classes;    // index of classes
 
40492
  Array<CObjectInfo*> _Unions;     // index of unions
 
40493
  Array<CObjectInfo*> _Enums;      // index of enums
 
40494
  Array<CObjectInfo*> _Typedefs;   // index of typedefs
 
40495
  Array<CObjectInfo*> _Functions;  // index of functions
 
40496
  Array<CObjectInfo*> _Files;      // index of files
34698
40497
 
34699
40498
  CProject *_Project; // associated project
34700
40499
  
 
40500
  multimap<int,CFunctionInfo*> _builtin_ops; // map for built-in operator lookup
 
40501
 
34701
40502
public:
34702
40503
  /** Construct a class database object.
34703
40504
   *  \param prj The corresponding project.
34721
40522
  unsigned TypedefInfos () const;
34722
40523
  /** Get the number of function infos. */
34723
40524
  unsigned FunctionInfos () const;
34724
 
  /** Get the number of file infos. */
 
40525
  /** Get the number of on-demand generated built-in operator functions. */
34725
40526
  unsigned FileInfos () const;
34726
40527
  /** Get the n-th semantic object info.
34727
40528
   *  \param n The number of the info.
34747
40548
   *  \param n The number of the info.
34748
40549
   *  \return The info or \c NULL if \e n is invalid. */
34749
40550
  CFunctionInfo *FunctionInfo (unsigned n) const;
34750
 
  /** Get the n-th file info.
 
40551
  /** Get the n-th on-demand generated built-in operator info.
34751
40552
   *  \param n The number of the info.
34752
40553
   *  \return The info or \c NULL if \e n is invalid. */
34753
40554
  CFileInfo *FileInfo (unsigned n) const;
34772
40573
  /** Remove the given semantic object from the database.
34773
40574
   *  \param info The semantic object info to remove. */
34774
40575
  void Remove (CObjectInfo *info);
34775
 
 
 
40576
  /** Get a function info object for a built-in operator.
 
40577
   *  \param name Operator name.
 
40578
   *  \param tok Operator token type, used as a key for fast lookup.
 
40579
   *  \param rtype result type of the operator. Not used for lookup,
 
40580
   *         only for object creation.
 
40581
   *  \param t0 first argument type.
 
40582
   *  \param t1 second argument type or \c NULL.
 
40583
   *  \return on-demand generated operator function object. */
 
40584
  CFunctionInfo *BuiltinOperator (const char *name, int tok, CTypeInfo *rtype,
 
40585
    CTypeInfo *t0, CTypeInfo *t1);
34776
40586
  /** Dump the contents of the database. The dump is indented as
34777
40587
   *  tree corresponding to the nesting of the semantic objects.
34778
40588
   *  \param out The output stream to dump to.
34779
40589
   *  \param depth The max. depth in the tree to be dumped. */
34780
40590
  
34781
 
#line 34782 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
34782
 
public: inline void __exec_old_Dump(::std::ostream & out,int depth) const;
 
40591
#line 40592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
40592
public: __attribute__((always_inline)) inline void __exec_old_Dump(::std::ostream & out,int depth) const;
34783
40593
 
34784
 
#line 137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
40594
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
34785
40595
void Dump (ostream &out, int depth = 0) const;
34786
40596
 
34787
40597
  /** Get the project info delivered to the constructor of the database. */
34788
40598
  CProject *Project () const;
34789
40599
 
34790
 
private: 
 
40600
private:
 
40601
  void CreateParameter (CFunctionInfo *fi, CTypeInfo *type) const;
 
40602
 
34791
40603
  void Dump (ostream &, CStructure *, int, int) const;
34792
40604
  void DumpType (ostream &, CObjectInfo *, int) const;
34793
40605
  void DumpUsing (ostream &, CUsingInfo *, int) const;
34845
40657
 
34846
40658
#endif /* __CClassDatabase_h__ */
34847
40659
 
34848
 
#line 34849 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
34849
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
34850
 
 
34851
 
#line 198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
34852
 
 
34853
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Semantic.h"
 
40660
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Semantic.h"
34854
40661
namespace Puma {
34855
40662
 
34856
40663
 
34866
40673
/*DEBUG*/extern int TRACE_SCOPES;
34867
40674
 
34868
40675
 
34869
 
#line 34870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40676
#line 40677 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
34870
40677
} // closed Puma
 
40678
class CCExprResolve;
 
40679
class CExprResolve;
34871
40680
class WinIfExists;
34872
40681
class WinImportHandler;
34873
40682
class WinMacros;
34874
 
class CMatchSyntax;
34875
 
class ExtGnu;
 
40683
class WinAsm;
 
40684
class WinDeclSpecs;
 
40685
class WinMemberExplSpec;
 
40686
class WinTypeKeywords;
 
40687
class WinFriend;
34876
40688
class ExtAC;
34877
40689
class ExtACBuilderCoupling;
34878
40690
class ExtACSyntaxCoupling;
34879
40691
class ExtACTree;
34880
40692
class ExtACKeywords;
34881
 
class WinAsm;
34882
 
class WinDeclSpecs;
34883
 
class WinMemberExplSpec;
34884
 
class WinTypeKeywords;
 
40693
class ExtGnu;
34885
40694
class PragmaOnceUnitState;
34886
40695
class PragmaOnce;
34887
 
class CCExprResolve;
34888
 
class CExprResolve;
 
40696
class CMatchSyntax;
34889
40697
namespace Puma {
34890
40698
 
34891
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Semantic.h"
 
40699
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Semantic.h"
34892
40700
class Semantic : public PtrStack<CObjectInfo> {
34893
 
#line 34894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40701
#line 40702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
40702
  friend class ::CCExprResolve;
 
40703
  friend class ::CExprResolve;
34894
40704
  friend class ::WinIfExists;
34895
40705
  friend class ::WinImportHandler;
34896
40706
  friend class ::WinMacros;
34897
 
  friend class ::CMatchSyntax;
34898
 
  friend class ::ExtGnu;
 
40707
  friend class ::WinAsm;
 
40708
  friend class ::WinDeclSpecs;
 
40709
  friend class ::WinMemberExplSpec;
 
40710
  friend class ::WinTypeKeywords;
 
40711
  friend class ::WinFriend;
34899
40712
  friend class ::ExtAC;
34900
40713
  friend class ::ExtACBuilderCoupling;
34901
40714
  friend class ::ExtACSyntaxCoupling;
34902
40715
  friend class ::ExtACTree;
34903
40716
  friend class ::ExtACKeywords;
34904
 
  friend class ::WinAsm;
34905
 
  friend class ::WinDeclSpecs;
34906
 
  friend class ::WinMemberExplSpec;
34907
 
  friend class ::WinTypeKeywords;
 
40717
  friend class ::ExtGnu;
34908
40718
  friend class ::PragmaOnceUnitState;
34909
40719
  friend class ::PragmaOnce;
34910
 
  friend class ::CCExprResolve;
34911
 
  friend class ::CExprResolve;
 
40720
  friend class ::CMatchSyntax;
34912
40721
 
34913
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Semantic.h"
 
40722
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Semantic.h"
34914
40723
 
34915
40724
protected:
34916
40725
  CClassDatabase *_db;
34943
40752
  void forget_state ();
34944
40753
  void restore_state ();
34945
40754
 
 
40755
  CFileInfo* getFile ();
 
40756
 
34946
40757
public:
34947
40758
  // Scope information
34948
40759
  void enter_local_scope ();
34976
40787
  virtual void reenter_scope (CStructure *);
34977
40788
};
34978
40789
 
 
40790
inline CFileInfo* Semantic::getFile ()
 
40791
 { return _file; }
 
40792
 
34979
40793
inline void Semantic::save_state () 
34980
40794
 { New (); }
34981
40795
inline void Semantic::forget_state () 
35006
40820
 
35007
40821
#endif /* __Semantic_h__ */
35008
40822
 
35009
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
40823
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
35010
40824
 
35011
 
#line 35012 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40825
#line 40826 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
35012
40826
 
35013
40827
#ifndef __ac_fwd_ExtACKeywords__
35014
40828
#define __ac_fwd_ExtACKeywords__
35015
40829
class ExtACKeywords;
35016
40830
namespace AC {
35017
 
  template <class JoinPoint, class Binding>
35018
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
35019
 
  template <class JoinPoint, class Binding>
35020
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
35021
 
  template <class JoinPoint>
35022
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
40831
  template <class JoinPoint>
 
40832
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
40833
  template <class JoinPoint>
 
40834
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
40835
  template <class JoinPoint>
 
40836
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
35023
40837
}
35024
40838
#endif
35025
40839
 
35026
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
35027
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
40840
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
40841
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
35028
40842
#endif
35029
40843
 
35030
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
40844
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
35031
40845
// This file is part of PUMA.
35032
40846
// Copyright (C) 1999-2003  The PUMA developer team.
35033
40847
//                                                                
35063
40877
class CTypeInfo;
35064
40878
 
35065
40879
 
35066
 
#line 35067 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40880
#line 40881 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
35067
40881
} // closed Puma
 
40882
class CCExprResolve;
 
40883
class CExprResolve;
35068
40884
class WinIfExists;
35069
40885
class WinImportHandler;
35070
40886
class WinMacros;
35071
 
class CMatchSyntax;
35072
 
class ExtGnu;
 
40887
class WinAsm;
 
40888
class WinDeclSpecs;
 
40889
class WinMemberExplSpec;
 
40890
class WinTypeKeywords;
 
40891
class WinFriend;
35073
40892
class ExtAC;
35074
40893
class ExtACBuilderCoupling;
35075
40894
class ExtACSyntaxCoupling;
35076
40895
class ExtACTree;
35077
40896
class ExtACKeywords;
35078
 
class WinAsm;
35079
 
class WinDeclSpecs;
35080
 
class WinMemberExplSpec;
35081
 
class WinTypeKeywords;
 
40897
class ExtGnu;
35082
40898
class PragmaOnceUnitState;
35083
40899
class PragmaOnce;
35084
 
class CCExprResolve;
35085
 
class CExprResolve;
 
40900
class CMatchSyntax;
35086
40901
namespace Puma {
35087
40902
 
35088
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
40903
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
35089
40904
class CProject : public Project {
35090
 
#line 35091 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
40905
#line 40906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
40906
  friend class ::CCExprResolve;
 
40907
  friend class ::CExprResolve;
35091
40908
  friend class ::WinIfExists;
35092
40909
  friend class ::WinImportHandler;
35093
40910
  friend class ::WinMacros;
35094
 
  friend class ::CMatchSyntax;
35095
 
  friend class ::ExtGnu;
 
40911
  friend class ::WinAsm;
 
40912
  friend class ::WinDeclSpecs;
 
40913
  friend class ::WinMemberExplSpec;
 
40914
  friend class ::WinTypeKeywords;
 
40915
  friend class ::WinFriend;
35096
40916
  friend class ::ExtAC;
35097
40917
  friend class ::ExtACBuilderCoupling;
35098
40918
  friend class ::ExtACSyntaxCoupling;
35099
40919
  friend class ::ExtACTree;
35100
40920
  friend class ::ExtACKeywords;
35101
 
  friend class ::WinAsm;
35102
 
  friend class ::WinDeclSpecs;
35103
 
  friend class ::WinMemberExplSpec;
35104
 
  friend class ::WinTypeKeywords;
 
40921
  friend class ::ExtGnu;
35105
40922
  friend class ::PragmaOnceUnitState;
35106
40923
  friend class ::PragmaOnce;
35107
 
  friend class ::CCExprResolve;
35108
 
  friend class ::CExprResolve;
 
40924
  friend class ::CMatchSyntax;
35109
40925
 
35110
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
40926
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
35111
40927
 
35112
40928
  Config _config;
35113
40929
  CScanner _scanner;
35143
40959
  // Scan the file `file' or the source if given. When
35144
40960
  // scanning a source the resulting unit gets the name `file'.
35145
40961
  
35146
 
#line 35147 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
35147
 
public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
40962
#line 40963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
40963
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
35148
40964
 
35149
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
40965
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
35150
40966
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
35151
40967
                          bool isFile = true);
35152
40968
        
35176
40992
 
35177
40993
#endif /* __CProject_h__ */
35178
40994
 
35179
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Parser.h"
 
40995
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Parser.h"
35180
40996
namespace Puma {
35181
40997
 
35182
40998
 
35183
40999
class CTranslationUnit;
35184
41000
 
35185
41001
 
35186
 
#line 35187 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
41002
#line 41003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
35187
41003
} // closed Puma
 
41004
class CCExprResolve;
 
41005
class CExprResolve;
35188
41006
class WinIfExists;
35189
41007
class WinImportHandler;
35190
41008
class WinMacros;
35191
 
class CMatchSyntax;
35192
 
class ExtGnu;
 
41009
class WinAsm;
 
41010
class WinDeclSpecs;
 
41011
class WinMemberExplSpec;
 
41012
class WinTypeKeywords;
 
41013
class WinFriend;
35193
41014
class ExtAC;
35194
41015
class ExtACBuilderCoupling;
35195
41016
class ExtACSyntaxCoupling;
35196
41017
class ExtACTree;
35197
41018
class ExtACKeywords;
35198
 
class WinAsm;
35199
 
class WinDeclSpecs;
35200
 
class WinMemberExplSpec;
35201
 
class WinTypeKeywords;
 
41019
class ExtGnu;
35202
41020
class PragmaOnceUnitState;
35203
41021
class PragmaOnce;
35204
 
class CCExprResolve;
35205
 
class CExprResolve;
 
41022
class CMatchSyntax;
35206
41023
namespace Puma {
35207
41024
 
35208
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Parser.h"
 
41025
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Parser.h"
35209
41026
class Parser {
35210
 
#line 35211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
41027
#line 41028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
41028
  friend class ::CCExprResolve;
 
41029
  friend class ::CExprResolve;
35211
41030
  friend class ::WinIfExists;
35212
41031
  friend class ::WinImportHandler;
35213
41032
  friend class ::WinMacros;
35214
 
  friend class ::CMatchSyntax;
35215
 
  friend class ::ExtGnu;
 
41033
  friend class ::WinAsm;
 
41034
  friend class ::WinDeclSpecs;
 
41035
  friend class ::WinMemberExplSpec;
 
41036
  friend class ::WinTypeKeywords;
 
41037
  friend class ::WinFriend;
35216
41038
  friend class ::ExtAC;
35217
41039
  friend class ::ExtACBuilderCoupling;
35218
41040
  friend class ::ExtACSyntaxCoupling;
35219
41041
  friend class ::ExtACTree;
35220
41042
  friend class ::ExtACKeywords;
35221
 
  friend class ::WinAsm;
35222
 
  friend class ::WinDeclSpecs;
35223
 
  friend class ::WinMemberExplSpec;
35224
 
  friend class ::WinTypeKeywords;
 
41043
  friend class ::ExtGnu;
35225
41044
  friend class ::PragmaOnceUnitState;
35226
41045
  friend class ::PragmaOnce;
35227
 
  friend class ::CCExprResolve;
35228
 
  friend class ::CExprResolve;
 
41046
  friend class ::CMatchSyntax;
35229
41047
 
35230
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Parser.h"
 
41048
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Parser.h"
35231
41049
 
35232
41050
  Syntax *syntax;
35233
41051
  Builder *builder;
35238
41056
    syntax (&x), builder (&b), semantic (&s) {}
35239
41057
 
35240
41058
  
35241
 
#line 35242 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
35242
 
public: inline ::Puma::CTranslationUnit * __exec_old_parse(::Puma::Unit & ,::Puma::CProject & ,int );
 
41059
#line 41060 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
41060
public: __attribute__((always_inline)) inline ::Puma::CTranslationUnit * __exec_old_parse(::Puma::Unit & ,::Puma::CProject & ,int );
35243
41061
 
35244
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Parser.h"
 
41062
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Parser.h"
35245
41063
CTranslationUnit *parse (Unit &, CProject &, int = 0);
35246
41064
 
35247
41065
  void configure (Config &);
35252
41070
 
35253
41071
#endif /* __Parser__ */
35254
41072
 
35255
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenStream.h"
 
41073
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenStream.h"
35256
41074
// This file is part of PUMA.
35257
41075
// Copyright (C) 1999-2003  The PUMA developer team.
35258
41076
//                                                                
35279
41097
// input files. 
35280
41098
 
35281
41099
 
35282
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
 
41100
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
35283
41101
// This file is part of PUMA.
35284
41102
// Copyright (C) 1999-2003  The PUMA developer team.
35285
41103
//                                                                
35302
41120
#define __Unit_Token_Src__
35303
41121
 
35304
41122
 
35305
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
 
41123
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
35306
41124
namespace Puma {
35307
41125
 
35308
41126
 
35309
41127
 
35310
 
#line 35311 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
41128
#line 41129 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
35311
41129
} // closed Puma
 
41130
class CCExprResolve;
 
41131
class CExprResolve;
35312
41132
class WinIfExists;
35313
41133
class WinImportHandler;
35314
41134
class WinMacros;
35315
 
class CMatchSyntax;
35316
 
class ExtGnu;
 
41135
class WinAsm;
 
41136
class WinDeclSpecs;
 
41137
class WinMemberExplSpec;
 
41138
class WinTypeKeywords;
 
41139
class WinFriend;
35317
41140
class ExtAC;
35318
41141
class ExtACBuilderCoupling;
35319
41142
class ExtACSyntaxCoupling;
35320
41143
class ExtACTree;
35321
41144
class ExtACKeywords;
35322
 
class WinAsm;
35323
 
class WinDeclSpecs;
35324
 
class WinMemberExplSpec;
35325
 
class WinTypeKeywords;
 
41145
class ExtGnu;
35326
41146
class PragmaOnceUnitState;
35327
41147
class PragmaOnce;
35328
 
class CCExprResolve;
35329
 
class CExprResolve;
 
41148
class CMatchSyntax;
35330
41149
namespace Puma {
35331
41150
 
35332
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
 
41151
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
35333
41152
class UnitTokenSrc : public PumaTokenSource {
35334
 
#line 35335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
41153
#line 41154 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
41154
  friend class ::CCExprResolve;
 
41155
  friend class ::CExprResolve;
35335
41156
  friend class ::WinIfExists;
35336
41157
  friend class ::WinImportHandler;
35337
41158
  friend class ::WinMacros;
35338
 
  friend class ::CMatchSyntax;
35339
 
  friend class ::ExtGnu;
 
41159
  friend class ::WinAsm;
 
41160
  friend class ::WinDeclSpecs;
 
41161
  friend class ::WinMemberExplSpec;
 
41162
  friend class ::WinTypeKeywords;
 
41163
  friend class ::WinFriend;
35340
41164
  friend class ::ExtAC;
35341
41165
  friend class ::ExtACBuilderCoupling;
35342
41166
  friend class ::ExtACSyntaxCoupling;
35343
41167
  friend class ::ExtACTree;
35344
41168
  friend class ::ExtACKeywords;
35345
 
  friend class ::WinAsm;
35346
 
  friend class ::WinDeclSpecs;
35347
 
  friend class ::WinMemberExplSpec;
35348
 
  friend class ::WinTypeKeywords;
 
41169
  friend class ::ExtGnu;
35349
41170
  friend class ::PragmaOnceUnitState;
35350
41171
  friend class ::PragmaOnce;
35351
 
  friend class ::CCExprResolve;
35352
 
  friend class ::CExprResolve;
 
41172
  friend class ::CMatchSyntax;
35353
41173
 
35354
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
 
41174
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitTokenSrc.h"
35355
41175
 
35356
41176
  Unit &_unit;
35357
41177
  Token *_curr;
35386
41206
 
35387
41207
#endif /* __Unit_Token_Src__ */
35388
41208
 
35389
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenStream.h"
 
41209
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenStream.h"
35390
41210
namespace Puma {
35391
41211
 
35392
41212
 
35393
41213
 
35394
 
#line 35395 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
41214
#line 41215 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
35395
41215
} // closed Puma
 
41216
class CCExprResolve;
 
41217
class CExprResolve;
35396
41218
class WinIfExists;
35397
41219
class WinImportHandler;
35398
41220
class WinMacros;
35399
 
class CMatchSyntax;
35400
 
class ExtGnu;
 
41221
class WinAsm;
 
41222
class WinDeclSpecs;
 
41223
class WinMemberExplSpec;
 
41224
class WinTypeKeywords;
 
41225
class WinFriend;
35401
41226
class ExtAC;
35402
41227
class ExtACBuilderCoupling;
35403
41228
class ExtACSyntaxCoupling;
35404
41229
class ExtACTree;
35405
41230
class ExtACKeywords;
35406
 
class WinAsm;
35407
 
class WinDeclSpecs;
35408
 
class WinMemberExplSpec;
35409
 
class WinTypeKeywords;
 
41231
class ExtGnu;
35410
41232
class PragmaOnceUnitState;
35411
41233
class PragmaOnce;
35412
 
class CCExprResolve;
35413
 
class CExprResolve;
 
41234
class CMatchSyntax;
35414
41235
namespace Puma {
35415
41236
 
35416
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenStream.h"
 
41237
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenStream.h"
35417
41238
class TokenStream : public PumaTokenSource, public Array<UnitTokenSrc*> {
35418
 
#line 35419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
41239
#line 41240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
41240
  friend class ::CCExprResolve;
 
41241
  friend class ::CExprResolve;
35419
41242
  friend class ::WinIfExists;
35420
41243
  friend class ::WinImportHandler;
35421
41244
  friend class ::WinMacros;
35422
 
  friend class ::CMatchSyntax;
35423
 
  friend class ::ExtGnu;
 
41245
  friend class ::WinAsm;
 
41246
  friend class ::WinDeclSpecs;
 
41247
  friend class ::WinMemberExplSpec;
 
41248
  friend class ::WinTypeKeywords;
 
41249
  friend class ::WinFriend;
35424
41250
  friend class ::ExtAC;
35425
41251
  friend class ::ExtACBuilderCoupling;
35426
41252
  friend class ::ExtACSyntaxCoupling;
35427
41253
  friend class ::ExtACTree;
35428
41254
  friend class ::ExtACKeywords;
35429
 
  friend class ::WinAsm;
35430
 
  friend class ::WinDeclSpecs;
35431
 
  friend class ::WinMemberExplSpec;
35432
 
  friend class ::WinTypeKeywords;
 
41255
  friend class ::ExtGnu;
35433
41256
  friend class ::PragmaOnceUnitState;
35434
41257
  friend class ::PragmaOnce;
35435
 
  friend class ::CCExprResolve;
35436
 
  friend class ::CExprResolve;
 
41258
  friend class ::CMatchSyntax;
35437
41259
 
35438
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/TokenStream.h"
 
41260
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/TokenStream.h"
35439
41261
 
35440
41262
public:
35441
41263
  TokenStream () : Array<UnitTokenSrc*> (20) {}
35456
41278
 
35457
41279
#endif /* __TokenStream__ */
35458
41280
 
35459
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
35460
 
 
35461
 
#line 35462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
41281
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
41282
 
 
41283
#line 41284 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
41284
 
 
41285
#ifndef __ac_fwd_PragmaOnceUnitState__
 
41286
#define __ac_fwd_PragmaOnceUnitState__
 
41287
class PragmaOnceUnitState;
 
41288
namespace AC {
 
41289
  template <class JoinPoint>
 
41290
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
41291
  template <class JoinPoint>
 
41292
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
41293
}
 
41294
#endif
 
41295
 
 
41296
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
41297
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
41298
#endif
 
41299
 
 
41300
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
41301
// This file is part of PUMA.
 
41302
// Copyright (C) 1999-2003  The PUMA developer team.
 
41303
//                                                                
 
41304
// This program is free software;  you can redistribute it and/or 
 
41305
// modify it under the terms of the GNU General Public License as 
 
41306
// published by the Free Software Foundation; either version 2 of 
 
41307
// the License, or (at your option) any later version.            
 
41308
//                                                                
 
41309
// This program is distributed in the hope that it will be useful,
 
41310
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
41311
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
41312
// GNU General Public License for more details.                   
 
41313
//                                                                
 
41314
// You should have received a copy of the GNU General Public      
 
41315
// License along with this program; if not, write to the Free     
 
41316
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
41317
// MA  02111-1307  USA                                            
 
41318
 
 
41319
#ifndef __UnitManager__
 
41320
#define __UnitManager__
 
41321
 
 
41322
// Class UnitManager helps you to have control of all units built.
 
41323
 
 
41324
#include <iostream>
 
41325
#include <list>
 
41326
#include <map>
 
41327
#include <string>
 
41328
using namespace std;
 
41329
#include "Puma/ErrorStream.h"
 
41330
 
 
41331
namespace Puma {
 
41332
 
 
41333
 
 
41334
class Unit;
 
41335
class Source;
 
41336
class Tokenizer;
 
41337
 
 
41338
 
 
41339
#line 41340 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
41340
} // closed Puma
 
41341
class CCExprResolve;
 
41342
class CExprResolve;
 
41343
class WinIfExists;
 
41344
class WinImportHandler;
 
41345
class WinMacros;
 
41346
class WinAsm;
 
41347
class WinDeclSpecs;
 
41348
class WinMemberExplSpec;
 
41349
class WinTypeKeywords;
 
41350
class WinFriend;
 
41351
class ExtAC;
 
41352
class ExtACBuilderCoupling;
 
41353
class ExtACSyntaxCoupling;
 
41354
class ExtACTree;
 
41355
class ExtACKeywords;
 
41356
class ExtGnu;
 
41357
class PragmaOnceUnitState;
 
41358
class PragmaOnce;
 
41359
class CMatchSyntax;
 
41360
namespace Puma {
 
41361
 
 
41362
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
41363
class UnitManager {
 
41364
#line 41365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
41365
  friend class ::CCExprResolve;
 
41366
  friend class ::CExprResolve;
 
41367
  friend class ::WinIfExists;
 
41368
  friend class ::WinImportHandler;
 
41369
  friend class ::WinMacros;
 
41370
  friend class ::WinAsm;
 
41371
  friend class ::WinDeclSpecs;
 
41372
  friend class ::WinMemberExplSpec;
 
41373
  friend class ::WinTypeKeywords;
 
41374
  friend class ::WinFriend;
 
41375
  friend class ::ExtAC;
 
41376
  friend class ::ExtACBuilderCoupling;
 
41377
  friend class ::ExtACSyntaxCoupling;
 
41378
  friend class ::ExtACTree;
 
41379
  friend class ::ExtACKeywords;
 
41380
  friend class ::ExtGnu;
 
41381
  friend class ::PragmaOnceUnitState;
 
41382
  friend class ::PragmaOnce;
 
41383
  friend class ::CMatchSyntax;
 
41384
 
 
41385
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
41386
 
 
41387
public:
 
41388
  typedef map<string, Unit*> UMap;
 
41389
private:
 
41390
  ErrorStream *_err;        // For error messages.
 
41391
  list<Unit*> _nonames;     // Noname units list.
 
41392
  mutable UMap _umap;       // Named units, map supports fast lookup by name
 
41393
  typedef UMap::value_type UMapPair;
 
41394
  Tokenizer *_tokenizer;    // File scanner.
 
41395
 
 
41396
public:
 
41397
  UnitManager (ErrorStream &err) : _err (&err), _tokenizer (0) {}
 
41398
        
 
41399
  // Destructor: Delete all units.
 
41400
  virtual ~UnitManager ();
 
41401
        
 
41402
  // Get the unit hash table.
 
41403
  UMap &getTable () const { return _umap; }
 
41404
  typedef UMap::iterator UMapIter;
 
41405
        
 
41406
  // Get/Set the file scanner that is used by newUnit
 
41407
  Tokenizer *tokenizer () const { return _tokenizer; }
 
41408
  void tokenizer (Tokenizer *t) { _tokenizer = t; }
 
41409
 
 
41410
  // Add a unit to manager.
 
41411
  void addUnit (Unit *unit);
 
41412
        
 
41413
  // Remove (and destroy) a unit from hash table. If the name
 
41414
  // is NULL remove all (but not the nonames).
 
41415
  void removeUnit (const char *name = (const char*) 0, bool = false, 
 
41416
                   bool destroy = true) const;
 
41417
 
 
41418
  // Empty a unit. Don't remove from hash table.
 
41419
  // Preserve the last save location information.
 
41420
  void closeUnit (const char *name = (const char*) 0, bool = false) const;
 
41421
 
 
41422
  // Build and add a new unit. 
 
41423
  Unit *newUnit (const char *, Source *in = (Source*) 0, bool = false);
 
41424
        
 
41425
  // Get a unit by name. 
 
41426
  Unit *getUnit (const char *name, bool = false) const;
 
41427
                        
 
41428
  // Print given unit to the given outstream. If no
 
41429
  // name is given, print all units.
 
41430
  void print (const char *name = (const char*) 0, bool = false, 
 
41431
              ostream &out = cout) const;
 
41432
 
 
41433
  // Destroy all noname units.
 
41434
  void removeNonames ();
 
41435
      
 
41436
  // Initialize the unit manager and the managed 
 
41437
  // units for the next parse process.
 
41438
  
 
41439
#line 41440 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
41440
public: __attribute__((always_inline)) inline void __exec_old_init();
 
41441
 
 
41442
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
41443
void init ();
 
41444
};
 
41445
 
 
41446
 
 
41447
} // namespace Puma
 
41448
 
 
41449
#endif /* __UnitManager__ */
 
41450
 
 
41451
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
41452
 
 
41453
#line 41454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
35462
41454
 
35463
41455
#ifndef __ac_fwd_ExtAC__
35464
41456
#define __ac_fwd_ExtAC__
35465
41457
class ExtAC;
35466
41458
namespace AC {
35467
41459
  template <class JoinPoint>
35468
 
  inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp);
35469
 
  template <class JoinPoint>
35470
 
  inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp);
35471
 
  template <class JoinPoint>
35472
 
  inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp);
35473
 
  template <class JoinPoint>
35474
 
  inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp);
35475
 
  template <class JoinPoint>
35476
 
  inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp);
35477
 
  template <class JoinPoint, class Binding>
35478
 
  inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp);
35479
 
  template <class JoinPoint>
35480
 
  inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp);
35481
 
  template <class JoinPoint, class Binding>
35482
 
  inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp);
35483
 
  template <class JoinPoint>
35484
 
  inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp);
35485
 
  template <class JoinPoint>
35486
 
  inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp);
35487
 
  template <class JoinPoint>
35488
 
  inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp);
 
41460
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp);
 
41461
  template <class JoinPoint>
 
41462
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp);
 
41463
  template <class JoinPoint>
 
41464
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp);
 
41465
  template <class JoinPoint>
 
41466
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp);
 
41467
  template <class JoinPoint>
 
41468
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp);
 
41469
  template <class JoinPoint>
 
41470
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp);
 
41471
  template <class JoinPoint>
 
41472
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp);
 
41473
  template <class JoinPoint>
 
41474
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp);
 
41475
  template <class JoinPoint>
 
41476
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp);
 
41477
  template <class JoinPoint>
 
41478
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp);
 
41479
  template <class JoinPoint>
 
41480
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp);
 
41481
  template <class JoinPoint>
 
41482
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a11_after (JoinPoint *tjp);
35489
41483
}
35490
41484
#endif
35491
41485
 
35492
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
35493
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
 
41486
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
41487
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
35494
41488
#endif
35495
41489
 
35496
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
35497
 
 
35498
 
#line 35499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
35499
 
 
35500
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
35501
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
35502
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
35503
 
 
35504
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
41490
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
35505
41491
// This file is part of PUMA.
35506
41492
// Copyright (C) 1999-2003  The PUMA developer team.
35507
41493
//                                                                
35526
41512
#include "Puma/CScopeInfo.h"
35527
41513
#include "Puma/CProject.h"
35528
41514
#include <iostream>
 
41515
#include <map>
35529
41516
using namespace std;
35530
41517
 
35531
41518
namespace Puma {
35549
41536
 *  A CClassDatabase object is a database of all semantic objects
35550
41537
 *  (infos) of a project. */
35551
41538
 
35552
 
#line 35553 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
41539
#line 41540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
35553
41540
} // closed Puma
 
41541
class CCExprResolve;
 
41542
class CExprResolve;
35554
41543
class WinIfExists;
35555
41544
class WinImportHandler;
35556
41545
class WinMacros;
35557
 
class CMatchSyntax;
35558
 
class ExtGnu;
 
41546
class WinAsm;
 
41547
class WinDeclSpecs;
 
41548
class WinMemberExplSpec;
 
41549
class WinTypeKeywords;
 
41550
class WinFriend;
35559
41551
class ExtAC;
35560
41552
class ExtACBuilderCoupling;
35561
41553
class ExtACSyntaxCoupling;
35562
41554
class ExtACTree;
35563
41555
class ExtACKeywords;
35564
 
class WinAsm;
35565
 
class WinDeclSpecs;
35566
 
class WinMemberExplSpec;
35567
 
class WinTypeKeywords;
 
41556
class ExtGnu;
35568
41557
class PragmaOnceUnitState;
35569
41558
class PragmaOnce;
35570
 
class CCExprResolve;
35571
 
class CExprResolve;
35572
 
namespace Puma {
35573
 
 
35574
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
35575
 
class CClassDatabase  :public ACClassDatabase {
35576
 
#line 35577 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
41559
class CMatchSyntax;
 
41560
namespace Puma {
 
41561
 
 
41562
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
41563
 
 
41564
#line 41565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
41565
} // closed Puma
 
41566
 
 
41567
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
41568
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
41569
#include "ExtAC.ah"
 
41570
#endif
 
41571
namespace Puma {
 
41572
 
 
41573
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
41574
class CClassDatabase : public Puma :: ACClassDatabase 
 
41575
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
41576
{
 
41577
#line 41578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
41578
  friend class ::CCExprResolve;
 
41579
  friend class ::CExprResolve;
35577
41580
  friend class ::WinIfExists;
35578
41581
  friend class ::WinImportHandler;
35579
41582
  friend class ::WinMacros;
35580
 
  friend class ::CMatchSyntax;
35581
 
  friend class ::ExtGnu;
 
41583
  friend class ::WinAsm;
 
41584
  friend class ::WinDeclSpecs;
 
41585
  friend class ::WinMemberExplSpec;
 
41586
  friend class ::WinTypeKeywords;
 
41587
  friend class ::WinFriend;
35582
41588
  friend class ::ExtAC;
35583
41589
  friend class ::ExtACBuilderCoupling;
35584
41590
  friend class ::ExtACSyntaxCoupling;
35585
41591
  friend class ::ExtACTree;
35586
41592
  friend class ::ExtACKeywords;
35587
 
  friend class ::WinAsm;
35588
 
  friend class ::WinDeclSpecs;
35589
 
  friend class ::WinMemberExplSpec;
35590
 
  friend class ::WinTypeKeywords;
 
41593
  friend class ::ExtGnu;
35591
41594
  friend class ::PragmaOnceUnitState;
35592
41595
  friend class ::PragmaOnce;
35593
 
  friend class ::CCExprResolve;
35594
 
  friend class ::CExprResolve;
 
41596
  friend class ::CMatchSyntax;
35595
41597
 
35596
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
41598
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
35597
41599
 
35598
41600
  
35599
 
  Array<CObjectInfo*> _Classes;   // index of classes
35600
 
  Array<CObjectInfo*> _Unions;    // index of unions
35601
 
  Array<CObjectInfo*> _Enums;     // index of enums
35602
 
  Array<CObjectInfo*> _Typedefs;  // index of typedefs
35603
 
  Array<CObjectInfo*> _Functions; // index of functions
35604
 
  Array<CObjectInfo*> _Files;     // index of files
 
41601
  Array<CObjectInfo*> _Classes;    // index of classes
 
41602
  Array<CObjectInfo*> _Unions;     // index of unions
 
41603
  Array<CObjectInfo*> _Enums;      // index of enums
 
41604
  Array<CObjectInfo*> _Typedefs;   // index of typedefs
 
41605
  Array<CObjectInfo*> _Functions;  // index of functions
 
41606
  Array<CObjectInfo*> _Files;      // index of files
35605
41607
 
35606
41608
  CProject *_Project; // associated project
35607
41609
  
 
41610
  multimap<int,CFunctionInfo*> _builtin_ops; // map for built-in operator lookup
 
41611
 
35608
41612
public:
35609
41613
  /** Construct a class database object.
35610
41614
   *  \param prj The corresponding project.
35628
41632
  unsigned TypedefInfos () const;
35629
41633
  /** Get the number of function infos. */
35630
41634
  unsigned FunctionInfos () const;
35631
 
  /** Get the number of file infos. */
 
41635
  /** Get the number of on-demand generated built-in operator functions. */
35632
41636
  unsigned FileInfos () const;
35633
41637
  /** Get the n-th semantic object info.
35634
41638
   *  \param n The number of the info.
35654
41658
   *  \param n The number of the info.
35655
41659
   *  \return The info or \c NULL if \e n is invalid. */
35656
41660
  CFunctionInfo *FunctionInfo (unsigned n) const;
35657
 
  /** Get the n-th file info.
 
41661
  /** Get the n-th on-demand generated built-in operator info.
35658
41662
   *  \param n The number of the info.
35659
41663
   *  \return The info or \c NULL if \e n is invalid. */
35660
41664
  CFileInfo *FileInfo (unsigned n) const;
35679
41683
  /** Remove the given semantic object from the database.
35680
41684
   *  \param info The semantic object info to remove. */
35681
41685
  void Remove (CObjectInfo *info);
35682
 
 
 
41686
  /** Get a function info object for a built-in operator.
 
41687
   *  \param name Operator name.
 
41688
   *  \param tok Operator token type, used as a key for fast lookup.
 
41689
   *  \param rtype result type of the operator. Not used for lookup,
 
41690
   *         only for object creation.
 
41691
   *  \param t0 first argument type.
 
41692
   *  \param t1 second argument type or \c NULL.
 
41693
   *  \return on-demand generated operator function object. */
 
41694
  CFunctionInfo *BuiltinOperator (const char *name, int tok, CTypeInfo *rtype,
 
41695
    CTypeInfo *t0, CTypeInfo *t1);
35683
41696
  /** Dump the contents of the database. The dump is indented as
35684
41697
   *  tree corresponding to the nesting of the semantic objects.
35685
41698
   *  \param out The output stream to dump to.
35686
41699
   *  \param depth The max. depth in the tree to be dumped. */
35687
41700
  
35688
 
#line 35689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
35689
 
public: inline void __exec_old_Dump(::std::ostream & out,int depth) const;
 
41701
#line 41702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
41702
public: __attribute__((always_inline)) inline void __exec_old_Dump(::std::ostream & out,int depth) const;
35690
41703
 
35691
 
#line 137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
41704
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
35692
41705
void Dump (ostream &out, int depth = 0) const;
35693
41706
 
35694
41707
  /** Get the project info delivered to the constructor of the database. */
35695
41708
  CProject *Project () const;
35696
41709
 
35697
 
private: 
 
41710
private:
 
41711
  void CreateParameter (CFunctionInfo *fi, CTypeInfo *type) const;
 
41712
 
35698
41713
  void Dump (ostream &, CStructure *, int, int) const;
35699
41714
  void DumpType (ostream &, CObjectInfo *, int) const;
35700
41715
  void DumpUsing (ostream &, CUsingInfo *, int) const;
35752
41767
 
35753
41768
#endif /* __CClassDatabase_h__ */
35754
41769
 
35755
 
#line 35756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
35756
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
35757
 
 
35758
 
#line 198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
35759
 
 
35760
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
 
41770
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
35761
41771
// This file is part of PUMA.
35762
41772
// Copyright (C) 1999-2003  The PUMA developer team.
35763
41773
//                                                                
35782
41792
// The macro manager manages all defined macros.
35783
41793
 
35784
41794
 
35785
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacro.h"
 
41795
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacro.h"
35786
41796
// This file is part of PUMA.
35787
41797
// Copyright (C) 1999-2003  The PUMA developer team.
35788
41798
//                                                                
35811
41821
// of arguments.
35812
41822
 
35813
41823
 
35814
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacro.h"
 
41824
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacro.h"
35815
41825
namespace Puma {
35816
41826
 
35817
41827
 
35819
41829
class CScanner;
35820
41830
 
35821
41831
 
35822
 
#line 35823 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
41832
#line 41833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
35823
41833
} // closed Puma
 
41834
class CCExprResolve;
 
41835
class CExprResolve;
35824
41836
class WinIfExists;
35825
41837
class WinImportHandler;
35826
41838
class WinMacros;
35827
 
class CMatchSyntax;
35828
 
class ExtGnu;
 
41839
class WinAsm;
 
41840
class WinDeclSpecs;
 
41841
class WinMemberExplSpec;
 
41842
class WinTypeKeywords;
 
41843
class WinFriend;
35829
41844
class ExtAC;
35830
41845
class ExtACBuilderCoupling;
35831
41846
class ExtACSyntaxCoupling;
35832
41847
class ExtACTree;
35833
41848
class ExtACKeywords;
35834
 
class WinAsm;
35835
 
class WinDeclSpecs;
35836
 
class WinMemberExplSpec;
35837
 
class WinTypeKeywords;
 
41849
class ExtGnu;
35838
41850
class PragmaOnceUnitState;
35839
41851
class PragmaOnce;
35840
 
class CCExprResolve;
35841
 
class CExprResolve;
 
41852
class CMatchSyntax;
35842
41853
namespace Puma {
35843
41854
 
35844
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacro.h"
 
41855
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacro.h"
35845
41856
class PreMacro : public Chain {
35846
 
#line 35847 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
41857
#line 41858 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
41858
  friend class ::CCExprResolve;
 
41859
  friend class ::CExprResolve;
35847
41860
  friend class ::WinIfExists;
35848
41861
  friend class ::WinImportHandler;
35849
41862
  friend class ::WinMacros;
35850
 
  friend class ::CMatchSyntax;
35851
 
  friend class ::ExtGnu;
 
41863
  friend class ::WinAsm;
 
41864
  friend class ::WinDeclSpecs;
 
41865
  friend class ::WinMemberExplSpec;
 
41866
  friend class ::WinTypeKeywords;
 
41867
  friend class ::WinFriend;
35852
41868
  friend class ::ExtAC;
35853
41869
  friend class ::ExtACBuilderCoupling;
35854
41870
  friend class ::ExtACSyntaxCoupling;
35855
41871
  friend class ::ExtACTree;
35856
41872
  friend class ::ExtACKeywords;
35857
 
  friend class ::WinAsm;
35858
 
  friend class ::WinDeclSpecs;
35859
 
  friend class ::WinMemberExplSpec;
35860
 
  friend class ::WinTypeKeywords;
 
41873
  friend class ::ExtGnu;
35861
41874
  friend class ::PragmaOnceUnitState;
35862
41875
  friend class ::PragmaOnce;
35863
 
  friend class ::CCExprResolve;
35864
 
  friend class ::CExprResolve;
 
41876
  friend class ::CMatchSyntax;
35865
41877
 
35866
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacro.h"
 
41878
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacro.h"
35867
41879
 
35868
41880
public:
35869
41881
  typedef Array<const char *> MacroArgs;
35931
41943
 
35932
41944
#endif /* __pre_macro__ */
35933
41945
 
35934
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
 
41946
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
35935
41947
using namespace std;
35936
41948
 
35937
41949
#ifdef __puma
35946
41958
class ErrorStream;
35947
41959
 
35948
41960
 
35949
 
#line 35950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
41961
#line 41962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
35950
41962
} // closed Puma
 
41963
class CCExprResolve;
 
41964
class CExprResolve;
35951
41965
class WinIfExists;
35952
41966
class WinImportHandler;
35953
41967
class WinMacros;
35954
 
class CMatchSyntax;
35955
 
class ExtGnu;
 
41968
class WinAsm;
 
41969
class WinDeclSpecs;
 
41970
class WinMemberExplSpec;
 
41971
class WinTypeKeywords;
 
41972
class WinFriend;
35956
41973
class ExtAC;
35957
41974
class ExtACBuilderCoupling;
35958
41975
class ExtACSyntaxCoupling;
35959
41976
class ExtACTree;
35960
41977
class ExtACKeywords;
35961
 
class WinAsm;
35962
 
class WinDeclSpecs;
35963
 
class WinMemberExplSpec;
35964
 
class WinTypeKeywords;
 
41978
class ExtGnu;
35965
41979
class PragmaOnceUnitState;
35966
41980
class PragmaOnce;
35967
 
class CCExprResolve;
35968
 
class CExprResolve;
 
41981
class CMatchSyntax;
35969
41982
namespace Puma {
35970
41983
 
35971
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
 
41984
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
35972
41985
class PreMacroManager {
35973
 
#line 35974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
41986
#line 41987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
41987
  friend class ::CCExprResolve;
 
41988
  friend class ::CExprResolve;
35974
41989
  friend class ::WinIfExists;
35975
41990
  friend class ::WinImportHandler;
35976
41991
  friend class ::WinMacros;
35977
 
  friend class ::CMatchSyntax;
35978
 
  friend class ::ExtGnu;
 
41992
  friend class ::WinAsm;
 
41993
  friend class ::WinDeclSpecs;
 
41994
  friend class ::WinMemberExplSpec;
 
41995
  friend class ::WinTypeKeywords;
 
41996
  friend class ::WinFriend;
35979
41997
  friend class ::ExtAC;
35980
41998
  friend class ::ExtACBuilderCoupling;
35981
41999
  friend class ::ExtACSyntaxCoupling;
35982
42000
  friend class ::ExtACTree;
35983
42001
  friend class ::ExtACKeywords;
35984
 
  friend class ::WinAsm;
35985
 
  friend class ::WinDeclSpecs;
35986
 
  friend class ::WinMemberExplSpec;
35987
 
  friend class ::WinTypeKeywords;
 
42002
  friend class ::ExtGnu;
35988
42003
  friend class ::PragmaOnceUnitState;
35989
42004
  friend class ::PragmaOnce;
35990
 
  friend class ::CCExprResolve;
35991
 
  friend class ::CExprResolve;
 
42005
  friend class ::CMatchSyntax;
35992
42006
 
35993
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
 
42007
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroManager.h"
35994
42008
 
35995
42009
  PreMacro *_Line;
35996
42010
  PreMacro *_Date;
36040
42054
 
36041
42055
#endif /* __pre_macro_manager__ */
36042
42056
 
36043
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
 
42057
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
36044
42058
// This file is part of PUMA.
36045
42059
// Copyright (C) 1999-2003  The PUMA developer team.
36046
42060
//                                                                
36063
42077
#define __CTranslationUnit__
36064
42078
 
36065
42079
 
36066
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
42080
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
36067
42081
 
36068
 
#line 36069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
42082
#line 42083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
36069
42083
 
36070
42084
#ifndef __ac_fwd_ExtAC__
36071
42085
#define __ac_fwd_ExtAC__
36072
42086
class ExtAC;
36073
42087
namespace AC {
36074
42088
  template <class JoinPoint>
36075
 
  inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp);
36076
 
  template <class JoinPoint>
36077
 
  inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp);
36078
 
  template <class JoinPoint>
36079
 
  inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp);
36080
 
  template <class JoinPoint>
36081
 
  inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp);
36082
 
  template <class JoinPoint>
36083
 
  inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp);
36084
 
  template <class JoinPoint, class Binding>
36085
 
  inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp);
36086
 
  template <class JoinPoint>
36087
 
  inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp);
36088
 
  template <class JoinPoint, class Binding>
36089
 
  inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp);
36090
 
  template <class JoinPoint>
36091
 
  inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp);
36092
 
  template <class JoinPoint>
36093
 
  inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp);
36094
 
  template <class JoinPoint>
36095
 
  inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp);
 
42089
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a0_before (JoinPoint *tjp);
 
42090
  template <class JoinPoint>
 
42091
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a1_after (JoinPoint *tjp);
 
42092
  template <class JoinPoint>
 
42093
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a2_around (JoinPoint *tjp);
 
42094
  template <class JoinPoint>
 
42095
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a3_around (JoinPoint *tjp);
 
42096
  template <class JoinPoint>
 
42097
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a4_after (JoinPoint *tjp);
 
42098
  template <class JoinPoint>
 
42099
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a5_around (JoinPoint *tjp);
 
42100
  template <class JoinPoint>
 
42101
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a6_after (JoinPoint *tjp);
 
42102
  template <class JoinPoint>
 
42103
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a7_around (JoinPoint *tjp);
 
42104
  template <class JoinPoint>
 
42105
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a8_after (JoinPoint *tjp);
 
42106
  template <class JoinPoint>
 
42107
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a9_before (JoinPoint *tjp);
 
42108
  template <class JoinPoint>
 
42109
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a10_after (JoinPoint *tjp);
 
42110
  template <class JoinPoint>
 
42111
  __attribute((always_inline)) inline void invoke_ExtAC_ExtAC_a11_after (JoinPoint *tjp);
36096
42112
}
36097
42113
#endif
36098
42114
 
36099
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
36100
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
 
42115
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
42116
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
36101
42117
#endif
36102
42118
 
36103
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
36104
 
 
36105
 
#line 36106 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36106
 
 
36107
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
36108
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
36109
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
36110
 
 
36111
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
42119
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
36112
42120
// This file is part of PUMA.
36113
42121
// Copyright (C) 1999-2003  The PUMA developer team.
36114
42122
//                                                                
36133
42141
#include "Puma/CScopeInfo.h"
36134
42142
#include "Puma/CProject.h"
36135
42143
#include <iostream>
 
42144
#include <map>
36136
42145
using namespace std;
36137
42146
 
36138
42147
namespace Puma {
36156
42165
 *  A CClassDatabase object is a database of all semantic objects
36157
42166
 *  (infos) of a project. */
36158
42167
 
36159
 
#line 36160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
42168
#line 42169 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
36160
42169
} // closed Puma
 
42170
class CCExprResolve;
 
42171
class CExprResolve;
36161
42172
class WinIfExists;
36162
42173
class WinImportHandler;
36163
42174
class WinMacros;
36164
 
class CMatchSyntax;
36165
 
class ExtGnu;
 
42175
class WinAsm;
 
42176
class WinDeclSpecs;
 
42177
class WinMemberExplSpec;
 
42178
class WinTypeKeywords;
 
42179
class WinFriend;
36166
42180
class ExtAC;
36167
42181
class ExtACBuilderCoupling;
36168
42182
class ExtACSyntaxCoupling;
36169
42183
class ExtACTree;
36170
42184
class ExtACKeywords;
36171
 
class WinAsm;
36172
 
class WinDeclSpecs;
36173
 
class WinMemberExplSpec;
36174
 
class WinTypeKeywords;
 
42185
class ExtGnu;
36175
42186
class PragmaOnceUnitState;
36176
42187
class PragmaOnce;
36177
 
class CCExprResolve;
36178
 
class CExprResolve;
36179
 
namespace Puma {
36180
 
 
36181
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
36182
 
class CClassDatabase  :public ACClassDatabase {
36183
 
#line 36184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
42188
class CMatchSyntax;
 
42189
namespace Puma {
 
42190
 
 
42191
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
42192
 
 
42193
#line 42194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
42194
} // closed Puma
 
42195
 
 
42196
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
42197
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
42198
#include "ExtAC.ah"
 
42199
#endif
 
42200
namespace Puma {
 
42201
 
 
42202
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
42203
class CClassDatabase : public Puma :: ACClassDatabase 
 
42204
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
42205
{
 
42206
#line 42207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
42207
  friend class ::CCExprResolve;
 
42208
  friend class ::CExprResolve;
36184
42209
  friend class ::WinIfExists;
36185
42210
  friend class ::WinImportHandler;
36186
42211
  friend class ::WinMacros;
36187
 
  friend class ::CMatchSyntax;
36188
 
  friend class ::ExtGnu;
 
42212
  friend class ::WinAsm;
 
42213
  friend class ::WinDeclSpecs;
 
42214
  friend class ::WinMemberExplSpec;
 
42215
  friend class ::WinTypeKeywords;
 
42216
  friend class ::WinFriend;
36189
42217
  friend class ::ExtAC;
36190
42218
  friend class ::ExtACBuilderCoupling;
36191
42219
  friend class ::ExtACSyntaxCoupling;
36192
42220
  friend class ::ExtACTree;
36193
42221
  friend class ::ExtACKeywords;
36194
 
  friend class ::WinAsm;
36195
 
  friend class ::WinDeclSpecs;
36196
 
  friend class ::WinMemberExplSpec;
36197
 
  friend class ::WinTypeKeywords;
 
42222
  friend class ::ExtGnu;
36198
42223
  friend class ::PragmaOnceUnitState;
36199
42224
  friend class ::PragmaOnce;
36200
 
  friend class ::CCExprResolve;
36201
 
  friend class ::CExprResolve;
 
42225
  friend class ::CMatchSyntax;
36202
42226
 
36203
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
42227
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
36204
42228
 
36205
42229
  
36206
 
  Array<CObjectInfo*> _Classes;   // index of classes
36207
 
  Array<CObjectInfo*> _Unions;    // index of unions
36208
 
  Array<CObjectInfo*> _Enums;     // index of enums
36209
 
  Array<CObjectInfo*> _Typedefs;  // index of typedefs
36210
 
  Array<CObjectInfo*> _Functions; // index of functions
36211
 
  Array<CObjectInfo*> _Files;     // index of files
 
42230
  Array<CObjectInfo*> _Classes;    // index of classes
 
42231
  Array<CObjectInfo*> _Unions;     // index of unions
 
42232
  Array<CObjectInfo*> _Enums;      // index of enums
 
42233
  Array<CObjectInfo*> _Typedefs;   // index of typedefs
 
42234
  Array<CObjectInfo*> _Functions;  // index of functions
 
42235
  Array<CObjectInfo*> _Files;      // index of files
36212
42236
 
36213
42237
  CProject *_Project; // associated project
36214
42238
  
 
42239
  multimap<int,CFunctionInfo*> _builtin_ops; // map for built-in operator lookup
 
42240
 
36215
42241
public:
36216
42242
  /** Construct a class database object.
36217
42243
   *  \param prj The corresponding project.
36235
42261
  unsigned TypedefInfos () const;
36236
42262
  /** Get the number of function infos. */
36237
42263
  unsigned FunctionInfos () const;
36238
 
  /** Get the number of file infos. */
 
42264
  /** Get the number of on-demand generated built-in operator functions. */
36239
42265
  unsigned FileInfos () const;
36240
42266
  /** Get the n-th semantic object info.
36241
42267
   *  \param n The number of the info.
36261
42287
   *  \param n The number of the info.
36262
42288
   *  \return The info or \c NULL if \e n is invalid. */
36263
42289
  CFunctionInfo *FunctionInfo (unsigned n) const;
36264
 
  /** Get the n-th file info.
 
42290
  /** Get the n-th on-demand generated built-in operator info.
36265
42291
   *  \param n The number of the info.
36266
42292
   *  \return The info or \c NULL if \e n is invalid. */
36267
42293
  CFileInfo *FileInfo (unsigned n) const;
36286
42312
  /** Remove the given semantic object from the database.
36287
42313
   *  \param info The semantic object info to remove. */
36288
42314
  void Remove (CObjectInfo *info);
36289
 
 
 
42315
  /** Get a function info object for a built-in operator.
 
42316
   *  \param name Operator name.
 
42317
   *  \param tok Operator token type, used as a key for fast lookup.
 
42318
   *  \param rtype result type of the operator. Not used for lookup,
 
42319
   *         only for object creation.
 
42320
   *  \param t0 first argument type.
 
42321
   *  \param t1 second argument type or \c NULL.
 
42322
   *  \return on-demand generated operator function object. */
 
42323
  CFunctionInfo *BuiltinOperator (const char *name, int tok, CTypeInfo *rtype,
 
42324
    CTypeInfo *t0, CTypeInfo *t1);
36290
42325
  /** Dump the contents of the database. The dump is indented as
36291
42326
   *  tree corresponding to the nesting of the semantic objects.
36292
42327
   *  \param out The output stream to dump to.
36293
42328
   *  \param depth The max. depth in the tree to be dumped. */
36294
42329
  
36295
 
#line 36296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36296
 
public: inline void __exec_old_Dump(::std::ostream & out,int depth) const;
 
42330
#line 42331 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
42331
public: __attribute__((always_inline)) inline void __exec_old_Dump(::std::ostream & out,int depth) const;
36297
42332
 
36298
 
#line 137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
 
42333
#line 149 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
36299
42334
void Dump (ostream &out, int depth = 0) const;
36300
42335
 
36301
42336
  /** Get the project info delivered to the constructor of the database. */
36302
42337
  CProject *Project () const;
36303
42338
 
36304
 
private: 
 
42339
private:
 
42340
  void CreateParameter (CFunctionInfo *fi, CTypeInfo *type) const;
 
42341
 
36305
42342
  void Dump (ostream &, CStructure *, int, int) const;
36306
42343
  void DumpType (ostream &, CObjectInfo *, int) const;
36307
42344
  void DumpUsing (ostream &, CUsingInfo *, int) const;
36359
42396
 
36360
42397
#endif /* __CClassDatabase_h__ */
36361
42398
 
36362
 
#line 36363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36363
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CClassDatabase_h__
36364
 
 
36365
 
#line 198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CClassDatabase.h"
36366
 
 
36367
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
36368
 
 
36369
 
#line 36370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
42399
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
42400
 
 
42401
#line 42402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
42402
 
 
42403
#ifndef __ac_fwd_PragmaOnceUnitState__
 
42404
#define __ac_fwd_PragmaOnceUnitState__
 
42405
class PragmaOnceUnitState;
 
42406
namespace AC {
 
42407
  template <class JoinPoint>
 
42408
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a0_after (JoinPoint *tjp);
 
42409
  template <class JoinPoint>
 
42410
  __attribute((always_inline)) inline void invoke_PragmaOnceUnitState_PragmaOnceUnitState_a1_after (JoinPoint *tjp);
 
42411
}
 
42412
#endif
 
42413
 
 
42414
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
42415
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
42416
#endif
 
42417
 
 
42418
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
42419
// This file is part of PUMA.
 
42420
// Copyright (C) 1999-2003  The PUMA developer team.
 
42421
//                                                                
 
42422
// This program is free software;  you can redistribute it and/or 
 
42423
// modify it under the terms of the GNU General Public License as 
 
42424
// published by the Free Software Foundation; either version 2 of 
 
42425
// the License, or (at your option) any later version.            
 
42426
//                                                                
 
42427
// This program is distributed in the hope that it will be useful,
 
42428
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
42429
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
42430
// GNU General Public License for more details.                   
 
42431
//                                                                
 
42432
// You should have received a copy of the GNU General Public      
 
42433
// License along with this program; if not, write to the Free     
 
42434
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
42435
// MA  02111-1307  USA                                            
 
42436
 
 
42437
#ifndef __UnitManager__
 
42438
#define __UnitManager__
 
42439
 
 
42440
// Class UnitManager helps you to have control of all units built.
 
42441
 
 
42442
#include <iostream>
 
42443
#include <list>
 
42444
#include <map>
 
42445
#include <string>
 
42446
using namespace std;
 
42447
#include "Puma/ErrorStream.h"
 
42448
 
 
42449
namespace Puma {
 
42450
 
 
42451
 
 
42452
class Unit;
 
42453
class Source;
 
42454
class Tokenizer;
 
42455
 
 
42456
 
 
42457
#line 42458 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
42458
} // closed Puma
 
42459
class CCExprResolve;
 
42460
class CExprResolve;
 
42461
class WinIfExists;
 
42462
class WinImportHandler;
 
42463
class WinMacros;
 
42464
class WinAsm;
 
42465
class WinDeclSpecs;
 
42466
class WinMemberExplSpec;
 
42467
class WinTypeKeywords;
 
42468
class WinFriend;
 
42469
class ExtAC;
 
42470
class ExtACBuilderCoupling;
 
42471
class ExtACSyntaxCoupling;
 
42472
class ExtACTree;
 
42473
class ExtACKeywords;
 
42474
class ExtGnu;
 
42475
class PragmaOnceUnitState;
 
42476
class PragmaOnce;
 
42477
class CMatchSyntax;
 
42478
namespace Puma {
 
42479
 
 
42480
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
42481
class UnitManager {
 
42482
#line 42483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
42483
  friend class ::CCExprResolve;
 
42484
  friend class ::CExprResolve;
 
42485
  friend class ::WinIfExists;
 
42486
  friend class ::WinImportHandler;
 
42487
  friend class ::WinMacros;
 
42488
  friend class ::WinAsm;
 
42489
  friend class ::WinDeclSpecs;
 
42490
  friend class ::WinMemberExplSpec;
 
42491
  friend class ::WinTypeKeywords;
 
42492
  friend class ::WinFriend;
 
42493
  friend class ::ExtAC;
 
42494
  friend class ::ExtACBuilderCoupling;
 
42495
  friend class ::ExtACSyntaxCoupling;
 
42496
  friend class ::ExtACTree;
 
42497
  friend class ::ExtACKeywords;
 
42498
  friend class ::ExtGnu;
 
42499
  friend class ::PragmaOnceUnitState;
 
42500
  friend class ::PragmaOnce;
 
42501
  friend class ::CMatchSyntax;
 
42502
 
 
42503
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
42504
 
 
42505
public:
 
42506
  typedef map<string, Unit*> UMap;
 
42507
private:
 
42508
  ErrorStream *_err;        // For error messages.
 
42509
  list<Unit*> _nonames;     // Noname units list.
 
42510
  mutable UMap _umap;       // Named units, map supports fast lookup by name
 
42511
  typedef UMap::value_type UMapPair;
 
42512
  Tokenizer *_tokenizer;    // File scanner.
 
42513
 
 
42514
public:
 
42515
  UnitManager (ErrorStream &err) : _err (&err), _tokenizer (0) {}
 
42516
        
 
42517
  // Destructor: Delete all units.
 
42518
  virtual ~UnitManager ();
 
42519
        
 
42520
  // Get the unit hash table.
 
42521
  UMap &getTable () const { return _umap; }
 
42522
  typedef UMap::iterator UMapIter;
 
42523
        
 
42524
  // Get/Set the file scanner that is used by newUnit
 
42525
  Tokenizer *tokenizer () const { return _tokenizer; }
 
42526
  void tokenizer (Tokenizer *t) { _tokenizer = t; }
 
42527
 
 
42528
  // Add a unit to manager.
 
42529
  void addUnit (Unit *unit);
 
42530
        
 
42531
  // Remove (and destroy) a unit from hash table. If the name
 
42532
  // is NULL remove all (but not the nonames).
 
42533
  void removeUnit (const char *name = (const char*) 0, bool = false, 
 
42534
                   bool destroy = true) const;
 
42535
 
 
42536
  // Empty a unit. Don't remove from hash table.
 
42537
  // Preserve the last save location information.
 
42538
  void closeUnit (const char *name = (const char*) 0, bool = false) const;
 
42539
 
 
42540
  // Build and add a new unit. 
 
42541
  Unit *newUnit (const char *, Source *in = (Source*) 0, bool = false);
 
42542
        
 
42543
  // Get a unit by name. 
 
42544
  Unit *getUnit (const char *name, bool = false) const;
 
42545
                        
 
42546
  // Print given unit to the given outstream. If no
 
42547
  // name is given, print all units.
 
42548
  void print (const char *name = (const char*) 0, bool = false, 
 
42549
              ostream &out = cout) const;
 
42550
 
 
42551
  // Destroy all noname units.
 
42552
  void removeNonames ();
 
42553
      
 
42554
  // Initialize the unit manager and the managed 
 
42555
  // units for the next parse process.
 
42556
  
 
42557
#line 42558 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
42558
public: __attribute__((always_inline)) inline void __exec_old_init();
 
42559
 
 
42560
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/UnitManager.h"
 
42561
void init ();
 
42562
};
 
42563
 
 
42564
 
 
42565
} // namespace Puma
 
42566
 
 
42567
#endif /* __UnitManager__ */
 
42568
 
 
42569
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
42570
 
 
42571
#line 42572 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
36370
42572
 
36371
42573
#ifndef __ac_fwd_ExtACKeywords__
36372
42574
#define __ac_fwd_ExtACKeywords__
36373
42575
class ExtACKeywords;
36374
42576
namespace AC {
36375
 
  template <class JoinPoint, class Binding>
36376
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
36377
 
  template <class JoinPoint, class Binding>
36378
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
36379
 
  template <class JoinPoint>
36380
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
42577
  template <class JoinPoint>
 
42578
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
42579
  template <class JoinPoint>
 
42580
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
42581
  template <class JoinPoint>
 
42582
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
36381
42583
}
36382
42584
#endif
36383
42585
 
36384
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
36385
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
42586
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
42587
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
36386
42588
#endif
36387
42589
 
36388
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
42590
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
36389
42591
// This file is part of PUMA.
36390
42592
// Copyright (C) 1999-2003  The PUMA developer team.
36391
42593
//                                                                
36421
42623
class CTypeInfo;
36422
42624
 
36423
42625
 
36424
 
#line 36425 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
42626
#line 42627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
36425
42627
} // closed Puma
 
42628
class CCExprResolve;
 
42629
class CExprResolve;
36426
42630
class WinIfExists;
36427
42631
class WinImportHandler;
36428
42632
class WinMacros;
36429
 
class CMatchSyntax;
36430
 
class ExtGnu;
 
42633
class WinAsm;
 
42634
class WinDeclSpecs;
 
42635
class WinMemberExplSpec;
 
42636
class WinTypeKeywords;
 
42637
class WinFriend;
36431
42638
class ExtAC;
36432
42639
class ExtACBuilderCoupling;
36433
42640
class ExtACSyntaxCoupling;
36434
42641
class ExtACTree;
36435
42642
class ExtACKeywords;
36436
 
class WinAsm;
36437
 
class WinDeclSpecs;
36438
 
class WinMemberExplSpec;
36439
 
class WinTypeKeywords;
 
42643
class ExtGnu;
36440
42644
class PragmaOnceUnitState;
36441
42645
class PragmaOnce;
36442
 
class CCExprResolve;
36443
 
class CExprResolve;
 
42646
class CMatchSyntax;
36444
42647
namespace Puma {
36445
42648
 
36446
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
42649
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
36447
42650
class CProject : public Project {
36448
 
#line 36449 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
42651
#line 42652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
42652
  friend class ::CCExprResolve;
 
42653
  friend class ::CExprResolve;
36449
42654
  friend class ::WinIfExists;
36450
42655
  friend class ::WinImportHandler;
36451
42656
  friend class ::WinMacros;
36452
 
  friend class ::CMatchSyntax;
36453
 
  friend class ::ExtGnu;
 
42657
  friend class ::WinAsm;
 
42658
  friend class ::WinDeclSpecs;
 
42659
  friend class ::WinMemberExplSpec;
 
42660
  friend class ::WinTypeKeywords;
 
42661
  friend class ::WinFriend;
36454
42662
  friend class ::ExtAC;
36455
42663
  friend class ::ExtACBuilderCoupling;
36456
42664
  friend class ::ExtACSyntaxCoupling;
36457
42665
  friend class ::ExtACTree;
36458
42666
  friend class ::ExtACKeywords;
36459
 
  friend class ::WinAsm;
36460
 
  friend class ::WinDeclSpecs;
36461
 
  friend class ::WinMemberExplSpec;
36462
 
  friend class ::WinTypeKeywords;
 
42667
  friend class ::ExtGnu;
36463
42668
  friend class ::PragmaOnceUnitState;
36464
42669
  friend class ::PragmaOnce;
36465
 
  friend class ::CCExprResolve;
36466
 
  friend class ::CExprResolve;
 
42670
  friend class ::CMatchSyntax;
36467
42671
 
36468
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
42672
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
36469
42673
 
36470
42674
  Config _config;
36471
42675
  CScanner _scanner;
36501
42705
  // Scan the file `file' or the source if given. When
36502
42706
  // scanning a source the resulting unit gets the name `file'.
36503
42707
  
36504
 
#line 36505 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36505
 
public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
42708
#line 42709 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
42709
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
36506
42710
 
36507
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
 
42711
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
36508
42712
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
36509
42713
                          bool isFile = true);
36510
42714
        
36534
42738
 
36535
42739
#endif /* __CProject_h__ */
36536
42740
 
36537
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
 
42741
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
36538
42742
namespace Puma {
36539
42743
 
36540
42744
 
36542
42746
class PreTree;
36543
42747
 
36544
42748
 
36545
 
#line 36546 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
42749
#line 42750 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
36546
42750
} // closed Puma
 
42751
class CCExprResolve;
 
42752
class CExprResolve;
36547
42753
class WinIfExists;
36548
42754
class WinImportHandler;
36549
42755
class WinMacros;
36550
 
class CMatchSyntax;
36551
 
class ExtGnu;
 
42756
class WinAsm;
 
42757
class WinDeclSpecs;
 
42758
class WinMemberExplSpec;
 
42759
class WinTypeKeywords;
 
42760
class WinFriend;
36552
42761
class ExtAC;
36553
42762
class ExtACBuilderCoupling;
36554
42763
class ExtACSyntaxCoupling;
36555
42764
class ExtACTree;
36556
42765
class ExtACKeywords;
36557
 
class WinAsm;
36558
 
class WinDeclSpecs;
36559
 
class WinMemberExplSpec;
36560
 
class WinTypeKeywords;
 
42766
class ExtGnu;
36561
42767
class PragmaOnceUnitState;
36562
42768
class PragmaOnce;
36563
 
class CCExprResolve;
36564
 
class CExprResolve;
 
42769
class CMatchSyntax;
36565
42770
namespace Puma {
36566
42771
 
36567
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
 
42772
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
36568
42773
class CTranslationUnit {
36569
 
#line 36570 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
42774
#line 42775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
42775
  friend class ::CCExprResolve;
 
42776
  friend class ::CExprResolve;
36570
42777
  friend class ::WinIfExists;
36571
42778
  friend class ::WinImportHandler;
36572
42779
  friend class ::WinMacros;
36573
 
  friend class ::CMatchSyntax;
36574
 
  friend class ::ExtGnu;
 
42780
  friend class ::WinAsm;
 
42781
  friend class ::WinDeclSpecs;
 
42782
  friend class ::WinMemberExplSpec;
 
42783
  friend class ::WinTypeKeywords;
 
42784
  friend class ::WinFriend;
36575
42785
  friend class ::ExtAC;
36576
42786
  friend class ::ExtACBuilderCoupling;
36577
42787
  friend class ::ExtACSyntaxCoupling;
36578
42788
  friend class ::ExtACTree;
36579
42789
  friend class ::ExtACKeywords;
36580
 
  friend class ::WinAsm;
36581
 
  friend class ::WinDeclSpecs;
36582
 
  friend class ::WinMemberExplSpec;
36583
 
  friend class ::WinTypeKeywords;
 
42790
  friend class ::ExtGnu;
36584
42791
  friend class ::PragmaOnceUnitState;
36585
42792
  friend class ::PragmaOnce;
36586
 
  friend class ::CCExprResolve;
36587
 
  friend class ::CExprResolve;
 
42793
  friend class ::CMatchSyntax;
36588
42794
 
36589
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
 
42795
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTranslationUnit.h"
36590
42796
 
36591
42797
  Unit *_unit;
36592
42798
  CTree *_syntax_tree;
36624
42830
 
36625
42831
#endif /* __CTranslationUnit__ */
36626
42832
 
36627
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
42833
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
36628
42834
 
36629
 
#line 36630 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
42835
#line 42836 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
36630
42836
 
36631
42837
#ifndef __ac_fwd_WinIfExists__
36632
42838
#define __ac_fwd_WinIfExists__
36633
42839
class WinIfExists;
36634
42840
namespace AC {
36635
42841
  template <class JoinPoint>
36636
 
  inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
 
42842
  __attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp);
36637
42843
}
36638
42844
#endif
36639
42845
 
36640
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
36641
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
42846
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
42847
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
36642
42848
#endif
36643
42849
 
36644
42850
#ifndef __ac_fwd_WinImportHandler__
36645
42851
#define __ac_fwd_WinImportHandler__
36646
42852
class WinImportHandler;
36647
42853
namespace AC {
36648
 
  template <class JoinPoint, class Binding>
36649
 
  inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
36650
 
}
36651
 
#endif
36652
 
 
36653
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
36654
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
42854
  template <class JoinPoint>
 
42855
  __attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp);
 
42856
}
 
42857
#endif
 
42858
 
 
42859
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
42860
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
42861
#endif
 
42862
 
 
42863
#ifndef __ac_fwd_WinMacros__
 
42864
#define __ac_fwd_WinMacros__
 
42865
class WinMacros;
 
42866
namespace AC {
 
42867
  template <class JoinPoint>
 
42868
  __attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
 
42869
}
 
42870
#endif
 
42871
 
 
42872
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
42873
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
36655
42874
#endif
36656
42875
 
36657
42876
#ifndef __ac_fwd_PragmaOnce__
36659
42878
class PragmaOnce;
36660
42879
namespace AC {
36661
42880
  template <class JoinPoint>
36662
 
  inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
36663
 
  template <class JoinPoint>
36664
 
  inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
36665
 
  template <class JoinPoint, class Binding>
36666
 
  inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
36667
 
  template <class JoinPoint>
36668
 
  inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
36669
 
}
36670
 
#endif
36671
 
 
36672
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
36673
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
36674
 
#endif
36675
 
 
36676
 
#ifndef __ac_fwd_WinMacros__
36677
 
#define __ac_fwd_WinMacros__
36678
 
class WinMacros;
36679
 
namespace AC {
36680
 
  template <class JoinPoint, class Binding>
36681
 
  inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp);
36682
 
}
36683
 
#endif
36684
 
 
36685
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
36686
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
36687
 
#endif
36688
 
 
36689
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
36690
 
 
36691
 
#line 36692 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36692
 
 
36693
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36694
 
// This file is part of PUMA.
36695
 
// Copyright (C) 1999-2003  The PUMA developer team.
36696
 
//                                                                
36697
 
// This program is free software;  you can redistribute it and/or 
36698
 
// modify it under the terms of the GNU General Public License as 
36699
 
// published by the Free Software Foundation; either version 2 of 
36700
 
// the License, or (at your option) any later version.            
36701
 
//                                                                
36702
 
// This program is distributed in the hope that it will be useful,
36703
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
36704
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
36705
 
// GNU General Public License for more details.                   
36706
 
//                                                                
36707
 
// You should have received a copy of the GNU General Public      
36708
 
// License along with this program; if not, write to the Free     
36709
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
36710
 
// MA  02111-1307  USA                                            
36711
 
 
36712
 
#ifndef __WinIfExists__
36713
 
#define __WinIfExists__
36714
 
 
36715
 
/********************************************************/
36716
 
/* Win __if_exists and __if_not_exists support aspect   */
36717
 
/********************************************************/
36718
 
 
36719
 
 
36720
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36721
 
using namespace Puma;
36722
 
 
36723
 
namespace Puma {
36724
 
  
36725
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36726
 
 
36727
 
}
36728
 
 
36729
 
 
36730
 
#line 36731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36731
 
class WinImportHandler;
36732
 
class WinMacros;
36733
 
class CMatchSyntax;
36734
 
class ExtGnu;
36735
 
class ExtAC;
36736
 
class ExtACBuilderCoupling;
36737
 
class ExtACSyntaxCoupling;
36738
 
class ExtACTree;
36739
 
class ExtACKeywords;
36740
 
class WinAsm;
36741
 
class WinDeclSpecs;
36742
 
class WinMemberExplSpec;
36743
 
class WinTypeKeywords;
36744
 
class PragmaOnceUnitState;
36745
 
class PragmaOnce;
36746
 
class CCExprResolve;
36747
 
class CExprResolve;
36748
 
 
36749
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36750
 
class WinIfExists {
36751
 
#line 36752 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36752
 
 
36753
 
public:
36754
 
  static WinIfExists *aspectof () {
36755
 
    static WinIfExists __instance;
36756
 
    return &__instance;
36757
 
  }
36758
 
  static WinIfExists *aspectOf () {
36759
 
    return aspectof ();
36760
 
  }
36761
 
private:
36762
 
 
36763
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36764
 
 
36765
 
#line 36766 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36766
 
  friend class ::WinImportHandler;
36767
 
  friend class ::WinMacros;
36768
 
  friend class ::CMatchSyntax;
36769
 
  friend class ::ExtGnu;
36770
 
  friend class ::ExtAC;
36771
 
  friend class ::ExtACBuilderCoupling;
36772
 
  friend class ::ExtACSyntaxCoupling;
36773
 
  friend class ::ExtACTree;
36774
 
  friend class ::ExtACKeywords;
36775
 
  friend class ::WinAsm;
36776
 
  friend class ::WinDeclSpecs;
36777
 
  friend class ::WinMemberExplSpec;
36778
 
  friend class ::WinTypeKeywords;
36779
 
  friend class ::PragmaOnceUnitState;
36780
 
  friend class ::PragmaOnce;
36781
 
  friend class ::CCExprResolve;
36782
 
  friend class ::CExprResolve;
36783
 
 
36784
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36785
 
 
36786
 
  /********************************************************/
36787
 
  /* Win __if_exists and __if_not_exists                  */
36788
 
  /********************************************************/
36789
 
 
36790
 
  // pointcut definitions
36791
 
  
36792
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36793
 
 
36794
 
 
36795
 
  // structural extensions
36796
 
  
36797
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36798
 
 
36799
 
 
36800
 
  // preprocess __if_exists and __if_not_exists statements
36801
 
  
36802
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36803
 
 
36804
 
public: template<class JoinPoint> void __a0_around 
36805
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36806
 
 
36807
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36808
 
(JoinPoint *tjp)
36809
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36810
 
 {
36811
 
#line 36812 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36812
 
 
36813
 
  JoinPoint *&thisJoinPoint = tjp;
36814
 
 
36815
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36816
 
 
36817
 
#line 36818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36818
 
 
36819
 
  typedef typename JoinPoint::That __JP_That;
36820
 
  typedef typename JoinPoint::Target __JP_Target;
36821
 
  typedef typename JoinPoint::Result __JP_Result;
36822
 
 
36823
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36824
 
 
36825
 
    Token *token;
36826
 
    int type;
36827
 
    __JP_That
36828
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36829
 
 *preparser;
36830
 
  
36831
 
        preparser = tjp->that ();
36832
 
    tjp->proceed (); // get the next token
36833
 
    token = *tjp->result ();
36834
 
    if (token) {
36835
 
      type = token->type ();
36836
 
      // __if_exists (...) { ... }
36837
 
      if (type == TOK_IF_EXISTS) {
36838
 
        preparser->skip_up_to (TOK_CLOSE_CURLY);
36839
 
                    *(Token**)thisJoinPoint->result () = preparser->next ();
36840
 
                    return;
36841
 
        // __if_not_exists (...) { ... }
36842
 
      } else if (type == TOK_IF_NOT_EXISTS) {
36843
 
        preparser->skip_up_to (TOK_OPEN_CURLY);
36844
 
        preparser->_depth.push (1);
36845
 
                    *(Token**)thisJoinPoint->result () = preparser->next ();
36846
 
                    return;
36847
 
      }
36848
 
      // skip closing `}' of __if_not_exists
36849
 
      if (preparser->_depth.length ()) {
36850
 
        if (type == TOK_OPEN_CURLY) 
36851
 
          preparser->_depth.top () = preparser->_depth.top () + 1;
36852
 
        else if (type == TOK_CLOSE_CURLY) { 
36853
 
          preparser->_depth.top () = preparser->_depth.top () - 1;
36854
 
                    if (preparser->_depth.top () == 0) {
36855
 
                  preparser->_depth.pop ();
36856
 
                  *(Token**)thisJoinPoint->result () = preparser->next ();
36857
 
                  return;
36858
 
                    }
36859
 
        }
36860
 
      }
36861
 
    }
36862
 
  }
36863
 
#line 36864 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36864
 
 
36865
 
private:
36866
 
 
36867
 
#line 84 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36868
 
 
36869
 
 
36870
 
protected:
36871
 
  WinIfExists () {}
36872
 
};
36873
 
#line 36874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36874
 
 
36875
 
namespace AC {
36876
 
  template <class JoinPoint>
36877
 
  inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
36878
 
    ::WinIfExists::aspectof()->__a0_around (tjp);
36879
 
  }
36880
 
36881
 
 
36882
 
#line 88 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36883
 
 
36884
 
 
36885
 
namespace Puma {
36886
 
  
36887
 
#line 97 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36888
 
 
36889
 
    
36890
 
  // skip __if_exists resp. __if_not_exists statement
36891
 
  
36892
 
#line 137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
36893
 
 
36894
 
}
36895
 
 
36896
 
#endif /* __WinIfExists__ */
36897
 
 
36898
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
36899
 
// This file is part of PUMA.
36900
 
// Copyright (C) 1999-2003  The PUMA developer team.
36901
 
//                                                                
36902
 
// This program is free software;  you can redistribute it and/or 
36903
 
// modify it under the terms of the GNU General Public License as 
36904
 
// published by the Free Software Foundation; either version 2 of 
36905
 
// the License, or (at your option) any later version.            
36906
 
//                                                                
36907
 
// This program is distributed in the hope that it will be useful,
36908
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
36909
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
36910
 
// GNU General Public License for more details.                   
36911
 
//                                                                
36912
 
// You should have received a copy of the GNU General Public      
36913
 
// License along with this program; if not, write to the Free     
36914
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
36915
 
// MA  02111-1307  USA                                            
36916
 
 
36917
 
#ifndef __WinImportHandler__
36918
 
#define __WinImportHandler__
36919
 
 
36920
 
/********************************************************/
36921
 
/* Win #import directive support                        */
36922
 
/********************************************************/
36923
 
 
36924
 
 
36925
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
36926
 
using namespace Puma;
36927
 
 
36928
 
 
36929
 
 
36930
 
#line 36931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36931
 
class WinIfExists;
36932
 
class WinMacros;
36933
 
class CMatchSyntax;
36934
 
class ExtGnu;
36935
 
class ExtAC;
36936
 
class ExtACBuilderCoupling;
36937
 
class ExtACSyntaxCoupling;
36938
 
class ExtACTree;
36939
 
class ExtACKeywords;
36940
 
class WinAsm;
36941
 
class WinDeclSpecs;
36942
 
class WinMemberExplSpec;
36943
 
class WinTypeKeywords;
36944
 
class PragmaOnceUnitState;
36945
 
class PragmaOnce;
36946
 
class CCExprResolve;
36947
 
class CExprResolve;
36948
 
 
36949
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
36950
 
class WinImportHandler {
36951
 
#line 36952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36952
 
 
36953
 
public:
36954
 
  static WinImportHandler *aspectof () {
36955
 
    static WinImportHandler __instance;
36956
 
    return &__instance;
36957
 
  }
36958
 
  static WinImportHandler *aspectOf () {
36959
 
    return aspectof ();
36960
 
  }
36961
 
private:
36962
 
 
36963
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
36964
 
 
36965
 
#line 36966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
36966
 
  friend class ::WinIfExists;
36967
 
  friend class ::WinMacros;
36968
 
  friend class ::CMatchSyntax;
36969
 
  friend class ::ExtGnu;
36970
 
  friend class ::ExtAC;
36971
 
  friend class ::ExtACBuilderCoupling;
36972
 
  friend class ::ExtACSyntaxCoupling;
36973
 
  friend class ::ExtACTree;
36974
 
  friend class ::ExtACKeywords;
36975
 
  friend class ::WinAsm;
36976
 
  friend class ::WinDeclSpecs;
36977
 
  friend class ::WinMemberExplSpec;
36978
 
  friend class ::WinTypeKeywords;
36979
 
  friend class ::PragmaOnceUnitState;
36980
 
  friend class ::PragmaOnce;
36981
 
  friend class ::CCExprResolve;
36982
 
  friend class ::CExprResolve;
36983
 
 
36984
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
36985
 
 
36986
 
  /********************************************************/
36987
 
  /* Win #import directive                                */
36988
 
  /********************************************************/
36989
 
 
36990
 
  // pointcuts
36991
 
  
36992
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
36993
 
 
36994
 
  
36995
 
  // add access method for _importHandler data member
36996
 
  
36997
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
36998
 
 
36999
 
 
37000
 
  // handle --import-handler option
37001
 
  
37002
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
37003
 
 
37004
 
public: template<class JoinPoint> void __a0_before 
37005
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
37006
 
 
37007
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
37008
 
(JoinPoint *tjp, const Config &config, bool process_includes)
37009
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
37010
 
 {
37011
 
#line 37012 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37012
 
 
37013
 
  JoinPoint *&thisJoinPoint = tjp;
37014
 
 
37015
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
37016
 
 
37017
 
#line 37018 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37018
 
 
37019
 
  typedef typename JoinPoint::That __JP_That;
37020
 
  typedef typename JoinPoint::Target __JP_Target;
37021
 
  typedef typename JoinPoint::Result __JP_Result;
37022
 
 
37023
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
37024
 
 
37025
 
    const ConfOption *opt;
37026
 
    char *tmp;
37027
 
    
37028
 
    if (process_includes) {
37029
 
      opt = config.Option ("--import-handler");
37030
 
      if (opt && opt->Arguments ()) {
37031
 
        // delete old import handler
37032
 
        if (thisJoinPoint->that ()->_importHandler)
37033
 
          delete[] thisJoinPoint->that ()->_importHandler;
37034
 
        
37035
 
        // get new import handler
37036
 
        tmp = new char[strlen (opt->Argument (0))+1];
37037
 
        strcpy (tmp, opt->Argument (0));
37038
 
        thisJoinPoint->that ()->_importHandler = tmp;
37039
 
      }
37040
 
    }
37041
 
  }
37042
 
#line 37043 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37043
 
 
37044
 
private:
37045
 
 
37046
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
37047
 
 
37048
 
 
37049
 
protected:
37050
 
  WinImportHandler () {}
37051
 
};
37052
 
#line 37053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37053
 
 
37054
 
namespace AC {
37055
 
  template <class JoinPoint, class Binding>
37056
 
  inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
37057
 
    typedef typename Binding::template Arg<0> Arg0;
37058
 
    typedef typename Binding::template Arg<1> Arg1;
37059
 
    ::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
37060
 
  }
37061
 
37062
 
 
37063
 
#line 70 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
37064
 
 
37065
 
 
37066
 
 
37067
 
#endif /* __WinImportHandler__ */
37068
 
 
37069
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37070
 
// This file is part of PUMA.
37071
 
// Copyright (C) 1999-2003  The PUMA developer team.
37072
 
//                                                                
37073
 
// This program is free software;  you can redistribute it and/or 
37074
 
// modify it under the terms of the GNU General Public License as 
37075
 
// published by the Free Software Foundation; either version 2 of 
37076
 
// the License, or (at your option) any later version.            
37077
 
//                                                                
37078
 
// This program is distributed in the hope that it will be useful,
37079
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
37080
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
37081
 
// GNU General Public License for more details.                   
37082
 
//                                                                
37083
 
// You should have received a copy of the GNU General Public      
37084
 
// License along with this program; if not, write to the Free     
37085
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
37086
 
// MA  02111-1307  USA                                            
37087
 
 
37088
 
#ifndef __PragmaOnce__
37089
 
#define __PragmaOnce__
37090
 
 
37091
 
/********************************************************/
37092
 
/* Win #pragma once support aspect                      */
37093
 
/********************************************************/
37094
 
 
37095
 
 
37096
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37097
 
using std::cout;
37098
 
using std::endl;
37099
 
 
37100
 
 
37101
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37102
 
using namespace Puma;
37103
 
 
37104
 
 
37105
 
 
37106
 
#line 37107 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37107
 
class WinIfExists;
37108
 
class WinImportHandler;
37109
 
class WinMacros;
37110
 
class CMatchSyntax;
37111
 
class ExtGnu;
37112
 
class ExtAC;
37113
 
class ExtACBuilderCoupling;
37114
 
class ExtACSyntaxCoupling;
37115
 
class ExtACTree;
37116
 
class ExtACKeywords;
37117
 
class WinAsm;
37118
 
class WinDeclSpecs;
37119
 
class WinMemberExplSpec;
37120
 
class WinTypeKeywords;
37121
 
class PragmaOnceUnitState;
37122
 
class CCExprResolve;
37123
 
class CExprResolve;
37124
 
 
37125
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37126
 
class PragmaOnce {
37127
 
#line 37128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37128
 
 
37129
 
public:
37130
 
  static PragmaOnce *aspectof () {
37131
 
    static PragmaOnce __instance;
37132
 
    return &__instance;
37133
 
  }
37134
 
  static PragmaOnce *aspectOf () {
37135
 
    return aspectof ();
37136
 
  }
37137
 
private:
37138
 
 
37139
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37140
 
 
37141
 
#line 37142 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37142
 
  friend class ::WinIfExists;
37143
 
  friend class ::WinImportHandler;
37144
 
  friend class ::WinMacros;
37145
 
  friend class ::CMatchSyntax;
37146
 
  friend class ::ExtGnu;
37147
 
  friend class ::ExtAC;
37148
 
  friend class ::ExtACBuilderCoupling;
37149
 
  friend class ::ExtACSyntaxCoupling;
37150
 
  friend class ::ExtACTree;
37151
 
  friend class ::ExtACKeywords;
37152
 
  friend class ::WinAsm;
37153
 
  friend class ::WinDeclSpecs;
37154
 
  friend class ::WinMemberExplSpec;
37155
 
  friend class ::WinTypeKeywords;
37156
 
  friend class ::PragmaOnceUnitState;
37157
 
  friend class ::CCExprResolve;
37158
 
  friend class ::CExprResolve;
37159
 
 
37160
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37161
 
 
37162
 
  /******************************************************/
37163
 
  /* detect #pragma once in the token stream of cpp     */
37164
 
  /******************************************************/
37165
 
 
37166
 
  // pointcut definitions
37167
 
  
37168
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37169
 
 
37170
 
  
37171
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37172
 
 
37173
 
  
37174
 
  // extend the preprocessor parser by the filter state
37175
 
  
37176
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37177
 
 
37178
 
 
37179
 
  // initialize the filter state
37180
 
  
37181
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37182
 
 
37183
 
public: template<class JoinPoint> void __a0_after 
37184
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37185
 
 
37186
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37187
 
(JoinPoint *tjp)
37188
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37189
 
 {
37190
 
#line 37191 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37191
 
 
37192
 
  typedef typename JoinPoint::That __JP_That;
37193
 
  typedef typename JoinPoint::Target __JP_Target;
37194
 
  typedef typename JoinPoint::Result __JP_Result;
37195
 
 
37196
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37197
 
 
37198
 
    // TODO: it would be better to have construction advice -> but in lem file
37199
 
    tjp->that ()->_pragma_token = 0;
37200
 
  }
37201
 
#line 37202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37202
 
 
37203
 
private:
37204
 
 
37205
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37206
 
 
37207
 
  
37208
 
  // filter #pragma once
37209
 
  
37210
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37211
 
 
37212
 
public: template<class JoinPoint> void __a1_after 
37213
 
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37214
 
 
37215
 
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37216
 
(JoinPoint *tjp)
37217
 
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37218
 
 {
37219
 
#line 37220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37220
 
 
37221
 
  typedef typename JoinPoint::That __JP_That;
37222
 
  typedef typename JoinPoint::Target __JP_Target;
37223
 
  typedef typename JoinPoint::Result __JP_Result;
37224
 
 
37225
 
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37226
 
 
37227
 
    Token *tok = *tjp->result ();
37228
 
    __JP_That
37229
 
#line 56 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37230
 
 &that = *tjp->that ();
37231
 
    if (!tok || !tok->is_directive ()) {
37232
 
      that._pragma_token = 0;
37233
 
      return;
37234
 
    }
37235
 
    if (strcmp ("#pragma", tok->text ()) == 0) {
37236
 
      that._pragma_token = tok;
37237
 
    }
37238
 
    else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
37239
 
      Unit *unit = (Unit*)tok->belonging_to ();
37240
 
      assert (unit);
37241
 
      unit->state ().onlyOnce (true);
37242
 
    }
37243
 
  }
37244
 
#line 37245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37245
 
 
37246
 
private:
37247
 
 
37248
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37249
 
 
37250
 
  
37251
 
  /********************************************************/
37252
 
  /* block the handling of pragma once files              */
37253
 
  /********************************************************/
37254
 
 
37255
 
  // don't let file includer include files twice
37256
 
  // to be precise: the file is included again, but the inclusion produces
37257
 
  // no tokens
37258
 
  
37259
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37260
 
 
37261
 
public: template<class JoinPoint> void __a2_around 
37262
 
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37263
 
 
37264
 
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37265
 
(JoinPoint *tjp, Unit *unit)
37266
 
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37267
 
 {
37268
 
#line 37269 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37269
 
 
37270
 
  typedef typename JoinPoint::That __JP_That;
37271
 
  typedef typename JoinPoint::Target __JP_Target;
37272
 
  typedef typename JoinPoint::Result __JP_Result;
37273
 
 
37274
 
#line 80 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37275
 
 
37276
 
    if (! unit || ! unit->state ().onlyOnce ())
37277
 
      tjp->proceed ();
37278
 
  }
37279
 
#line 37280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37280
 
 
37281
 
private:
37282
 
 
37283
 
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37284
 
 
37285
 
 
37286
 
  // includeFile shall return 0 if the file was not included
37287
 
  
37288
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37289
 
 
37290
 
public: template<class JoinPoint> void __a3_after 
37291
 
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37292
 
 
37293
 
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37294
 
(JoinPoint *tjp)
37295
 
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37296
 
 {
37297
 
#line 37298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37298
 
 
37299
 
  typedef typename JoinPoint::That __JP_That;
37300
 
  typedef typename JoinPoint::Target __JP_Target;
37301
 
  typedef typename JoinPoint::Result __JP_Result;
37302
 
 
37303
 
#line 87 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37304
 
 
37305
 
    Unit *&unit = *tjp->result ();
37306
 
    if (unit && unit->state ().onlyOnce ())
37307
 
      unit = 0;
37308
 
  }
37309
 
#line 37310 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37310
 
 
37311
 
private:
37312
 
 
37313
 
#line 91 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37314
 
 
37315
 
    
37316
 
protected:
37317
 
  // this aspect should never be instantiated directly
37318
 
  PragmaOnce () {}
37319
 
};
37320
 
#line 37321 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37321
 
 
37322
 
namespace AC {
37323
 
  template <class JoinPoint>
37324
 
  inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
37325
 
    ::PragmaOnce::aspectof()->__a0_after (tjp);
37326
 
  }
37327
 
  template <class JoinPoint>
37328
 
  inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
37329
 
    ::PragmaOnce::aspectof()->__a1_after (tjp);
37330
 
  }
37331
 
  template <class JoinPoint, class Binding>
37332
 
  inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
37333
 
    typedef typename Binding::template Arg<0> Arg0;
37334
 
    ::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
37335
 
  }
37336
 
  template <class JoinPoint>
37337
 
  inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
37338
 
    ::PragmaOnce::aspectof()->__a3_after (tjp);
37339
 
  }
37340
 
37341
 
 
37342
 
#line 96 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
37343
 
 
37344
 
 
37345
 
 
37346
 
#endif /* __PragmaOnce__ */
37347
 
 
37348
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
37349
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
37350
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
37351
 
 
37352
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
42881
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp);
 
42882
  template <class JoinPoint>
 
42883
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp);
 
42884
  template <class JoinPoint>
 
42885
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp);
 
42886
  template <class JoinPoint>
 
42887
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp);
 
42888
}
 
42889
#endif
 
42890
 
 
42891
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
42892
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
42893
#endif
 
42894
 
 
42895
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
37353
42896
// This file is part of PUMA.
37354
42897
// Copyright (C) 1999-2003  The PUMA developer team.
37355
42898
//                                                                
37375
42918
// be added last to the composite parser of a translation unit !!!
37376
42919
 
37377
42920
 
37378
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
42921
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
37379
42922
 
37380
 
#line 37381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
42923
#line 42924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
37381
42924
 
37382
42925
#ifndef __ac_fwd_ExtACKeywords__
37383
42926
#define __ac_fwd_ExtACKeywords__
37384
42927
class ExtACKeywords;
37385
42928
namespace AC {
37386
 
  template <class JoinPoint, class Binding>
37387
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
37388
 
  template <class JoinPoint, class Binding>
37389
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
37390
 
  template <class JoinPoint>
37391
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
42929
  template <class JoinPoint>
 
42930
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
42931
  template <class JoinPoint>
 
42932
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
42933
  template <class JoinPoint>
 
42934
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
37392
42935
}
37393
42936
#endif
37394
42937
 
37395
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
37396
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
42938
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
42939
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
37397
42940
#endif
37398
42941
 
37399
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
42942
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
37400
42943
// This file is part of PUMA.
37401
42944
// Copyright (C) 1999-2003  The PUMA developer team.
37402
42945
//                                                                
37433
42976
class Token;
37434
42977
 
37435
42978
 
37436
 
#line 37437 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
42979
#line 42980 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
37437
42980
} // closed Puma
 
42981
class CCExprResolve;
 
42982
class CExprResolve;
37438
42983
class WinIfExists;
37439
42984
class WinImportHandler;
37440
42985
class WinMacros;
37441
 
class CMatchSyntax;
37442
 
class ExtGnu;
 
42986
class WinAsm;
 
42987
class WinDeclSpecs;
 
42988
class WinMemberExplSpec;
 
42989
class WinTypeKeywords;
 
42990
class WinFriend;
37443
42991
class ExtAC;
37444
42992
class ExtACBuilderCoupling;
37445
42993
class ExtACSyntaxCoupling;
37446
42994
class ExtACTree;
37447
42995
class ExtACKeywords;
37448
 
class WinAsm;
37449
 
class WinDeclSpecs;
37450
 
class WinMemberExplSpec;
37451
 
class WinTypeKeywords;
 
42996
class ExtGnu;
37452
42997
class PragmaOnceUnitState;
37453
42998
class PragmaOnce;
37454
 
class CCExprResolve;
37455
 
class CExprResolve;
 
42999
class CMatchSyntax;
37456
43000
namespace Puma {
37457
43001
 
37458
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
43002
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
37459
43003
class CScanner : public CRecognizer, public Tokenizer {
37460
 
#line 37461 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
43004
#line 43005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43005
  friend class ::CCExprResolve;
 
43006
  friend class ::CExprResolve;
37461
43007
  friend class ::WinIfExists;
37462
43008
  friend class ::WinImportHandler;
37463
43009
  friend class ::WinMacros;
37464
 
  friend class ::CMatchSyntax;
37465
 
  friend class ::ExtGnu;
 
43010
  friend class ::WinAsm;
 
43011
  friend class ::WinDeclSpecs;
 
43012
  friend class ::WinMemberExplSpec;
 
43013
  friend class ::WinTypeKeywords;
 
43014
  friend class ::WinFriend;
37466
43015
  friend class ::ExtAC;
37467
43016
  friend class ::ExtACBuilderCoupling;
37468
43017
  friend class ::ExtACSyntaxCoupling;
37469
43018
  friend class ::ExtACTree;
37470
43019
  friend class ::ExtACKeywords;
37471
 
  friend class ::WinAsm;
37472
 
  friend class ::WinDeclSpecs;
37473
 
  friend class ::WinMemberExplSpec;
37474
 
  friend class ::WinTypeKeywords;
 
43020
  friend class ::ExtGnu;
37475
43021
  friend class ::PragmaOnceUnitState;
37476
43022
  friend class ::PragmaOnce;
37477
 
  friend class ::CCExprResolve;
37478
 
  friend class ::CExprResolve;
 
43023
  friend class ::CMatchSyntax;
37479
43024
 
37480
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
43025
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
37481
43026
 
37482
43027
  Location loc;
37483
43028
  ErrorSink &err;
37492
43037
  virtual ~CScanner () {}
37493
43038
  void configure (const Config &);
37494
43039
  
37495
 
#line 37496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37496
 
public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
43040
#line 43041 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43041
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
37497
43042
 
37498
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
43043
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
37499
43044
void fill_unit (Source &in, Unit &unit);
37500
43045
  
37501
 
#line 37502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37502
 
public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
43046
#line 43047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43047
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
37503
43048
 
37504
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
43049
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
37505
43050
void fill_unit (const char *in, Unit &unit);
37506
43051
};
37507
43052
 
37510
43055
 
37511
43056
#endif /* __c_scanner_h__ */
37512
43057
 
37513
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CUnit.h"
 
43058
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CUnit.h"
37514
43059
// This file is part of PUMA.
37515
43060
// Copyright (C) 1999-2003  The PUMA developer team.
37516
43061
//                                                                
37533
43078
#define __c_unit_h__
37534
43079
 
37535
43080
 
37536
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
43081
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
37537
43082
 
37538
 
#line 37539 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
43083
#line 43084 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
37539
43084
 
37540
43085
#ifndef __ac_fwd_ExtACKeywords__
37541
43086
#define __ac_fwd_ExtACKeywords__
37542
43087
class ExtACKeywords;
37543
43088
namespace AC {
37544
 
  template <class JoinPoint, class Binding>
37545
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
37546
 
  template <class JoinPoint, class Binding>
37547
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
37548
 
  template <class JoinPoint>
37549
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
 
43089
  template <class JoinPoint>
 
43090
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
43091
  template <class JoinPoint>
 
43092
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
43093
  template <class JoinPoint>
 
43094
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
37550
43095
}
37551
43096
#endif
37552
43097
 
37553
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
37554
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
43098
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
43099
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
37555
43100
#endif
37556
43101
 
37557
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
43102
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
37558
43103
// This file is part of PUMA.
37559
43104
// Copyright (C) 1999-2003  The PUMA developer team.
37560
43105
//                                                                
37591
43136
class Token;
37592
43137
 
37593
43138
 
37594
 
#line 37595 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
43139
#line 43140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
37595
43140
} // closed Puma
 
43141
class CCExprResolve;
 
43142
class CExprResolve;
37596
43143
class WinIfExists;
37597
43144
class WinImportHandler;
37598
43145
class WinMacros;
37599
 
class CMatchSyntax;
37600
 
class ExtGnu;
 
43146
class WinAsm;
 
43147
class WinDeclSpecs;
 
43148
class WinMemberExplSpec;
 
43149
class WinTypeKeywords;
 
43150
class WinFriend;
37601
43151
class ExtAC;
37602
43152
class ExtACBuilderCoupling;
37603
43153
class ExtACSyntaxCoupling;
37604
43154
class ExtACTree;
37605
43155
class ExtACKeywords;
37606
 
class WinAsm;
37607
 
class WinDeclSpecs;
37608
 
class WinMemberExplSpec;
37609
 
class WinTypeKeywords;
 
43156
class ExtGnu;
37610
43157
class PragmaOnceUnitState;
37611
43158
class PragmaOnce;
37612
 
class CCExprResolve;
37613
 
class CExprResolve;
 
43159
class CMatchSyntax;
37614
43160
namespace Puma {
37615
43161
 
37616
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
43162
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
37617
43163
class CScanner : public CRecognizer, public Tokenizer {
37618
 
#line 37619 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
43164
#line 43165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43165
  friend class ::CCExprResolve;
 
43166
  friend class ::CExprResolve;
37619
43167
  friend class ::WinIfExists;
37620
43168
  friend class ::WinImportHandler;
37621
43169
  friend class ::WinMacros;
37622
 
  friend class ::CMatchSyntax;
37623
 
  friend class ::ExtGnu;
 
43170
  friend class ::WinAsm;
 
43171
  friend class ::WinDeclSpecs;
 
43172
  friend class ::WinMemberExplSpec;
 
43173
  friend class ::WinTypeKeywords;
 
43174
  friend class ::WinFriend;
37624
43175
  friend class ::ExtAC;
37625
43176
  friend class ::ExtACBuilderCoupling;
37626
43177
  friend class ::ExtACSyntaxCoupling;
37627
43178
  friend class ::ExtACTree;
37628
43179
  friend class ::ExtACKeywords;
37629
 
  friend class ::WinAsm;
37630
 
  friend class ::WinDeclSpecs;
37631
 
  friend class ::WinMemberExplSpec;
37632
 
  friend class ::WinTypeKeywords;
 
43180
  friend class ::ExtGnu;
37633
43181
  friend class ::PragmaOnceUnitState;
37634
43182
  friend class ::PragmaOnce;
37635
 
  friend class ::CCExprResolve;
37636
 
  friend class ::CExprResolve;
 
43183
  friend class ::CMatchSyntax;
37637
43184
 
37638
 
#line 36 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
43185
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
37639
43186
 
37640
43187
  Location loc;
37641
43188
  ErrorSink &err;
37650
43197
  virtual ~CScanner () {}
37651
43198
  void configure (const Config &);
37652
43199
  
37653
 
#line 37654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37654
 
public: inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
 
43200
#line 43201 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43201
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(::Puma::Source & in,::Puma::Unit & unit);
37655
43202
 
37656
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
43203
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
37657
43204
void fill_unit (Source &in, Unit &unit);
37658
43205
  
37659
 
#line 37660 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
37660
 
public: inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
 
43206
#line 43207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43207
public: __attribute__((always_inline)) inline void __exec_old_fill_unit(const char * in,::Puma::Unit & unit);
37661
43208
 
37662
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CScanner.h"
 
43209
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CScanner.h"
37663
43210
void fill_unit (const char *in, Unit &unit);
37664
43211
};
37665
43212
 
37668
43215
 
37669
43216
#endif /* __c_scanner_h__ */
37670
43217
 
37671
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CUnit.h"
 
43218
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CUnit.h"
37672
43219
using namespace std;
37673
43220
 
37674
43221
namespace Puma {
37675
43222
 
37676
43223
 
37677
43224
 
37678
 
#line 37679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
43225
#line 43226 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
37679
43226
} // closed Puma
 
43227
class CCExprResolve;
 
43228
class CExprResolve;
37680
43229
class WinIfExists;
37681
43230
class WinImportHandler;
37682
43231
class WinMacros;
37683
 
class CMatchSyntax;
37684
 
class ExtGnu;
 
43232
class WinAsm;
 
43233
class WinDeclSpecs;
 
43234
class WinMemberExplSpec;
 
43235
class WinTypeKeywords;
 
43236
class WinFriend;
37685
43237
class ExtAC;
37686
43238
class ExtACBuilderCoupling;
37687
43239
class ExtACSyntaxCoupling;
37688
43240
class ExtACTree;
37689
43241
class ExtACKeywords;
37690
 
class WinAsm;
37691
 
class WinDeclSpecs;
37692
 
class WinMemberExplSpec;
37693
 
class WinTypeKeywords;
 
43242
class ExtGnu;
37694
43243
class PragmaOnceUnitState;
37695
43244
class PragmaOnce;
37696
 
class CCExprResolve;
37697
 
class CExprResolve;
 
43245
class CMatchSyntax;
37698
43246
namespace Puma {
37699
43247
 
37700
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CUnit.h"
 
43248
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CUnit.h"
37701
43249
class CUnit : public Unit, public std::ostringstream {
37702
 
#line 37703 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
43250
#line 43251 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43251
  friend class ::CCExprResolve;
 
43252
  friend class ::CExprResolve;
37703
43253
  friend class ::WinIfExists;
37704
43254
  friend class ::WinImportHandler;
37705
43255
  friend class ::WinMacros;
37706
 
  friend class ::CMatchSyntax;
37707
 
  friend class ::ExtGnu;
 
43256
  friend class ::WinAsm;
 
43257
  friend class ::WinDeclSpecs;
 
43258
  friend class ::WinMemberExplSpec;
 
43259
  friend class ::WinTypeKeywords;
 
43260
  friend class ::WinFriend;
37708
43261
  friend class ::ExtAC;
37709
43262
  friend class ::ExtACBuilderCoupling;
37710
43263
  friend class ::ExtACSyntaxCoupling;
37711
43264
  friend class ::ExtACTree;
37712
43265
  friend class ::ExtACKeywords;
37713
 
  friend class ::WinAsm;
37714
 
  friend class ::WinDeclSpecs;
37715
 
  friend class ::WinMemberExplSpec;
37716
 
  friend class ::WinTypeKeywords;
 
43266
  friend class ::ExtGnu;
37717
43267
  friend class ::PragmaOnceUnitState;
37718
43268
  friend class ::PragmaOnce;
37719
 
  friend class ::CCExprResolve;
37720
 
  friend class ::CExprResolve;
 
43269
  friend class ::CMatchSyntax;
37721
43270
 
37722
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CUnit.h"
 
43271
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CUnit.h"
37723
43272
 
37724
43273
  CScanner _scanner;
37725
43274
 
37741
43290
 
37742
43291
#endif /* __c_unit_h__ */
37743
43292
 
37744
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
43293
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
37745
43294
// This file is part of PUMA.
37746
43295
// Copyright (C) 1999-2003  The PUMA developer team.
37747
43296
//                                                                
37767
43316
// all macros of a given string or unit.
37768
43317
 
37769
43318
 
37770
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
43319
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
37771
43320
using std::set;
37772
43321
 
37773
43322
 
37774
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
 
43323
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
37775
43324
// This file is part of PUMA.
37776
43325
// Copyright (C) 1999-2003  The PUMA developer team.
37777
43326
//                                                                
37794
43343
#define __pre_arg_desc__
37795
43344
 
37796
43345
 
37797
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
 
43346
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
37798
43347
// This file is part of PUMA.
37799
43348
// Copyright (C) 1999-2003  The PUMA developer team.
37800
43349
//                                                                
37819
43368
// Special unit for macro expansions
37820
43369
 
37821
43370
 
37822
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
 
43371
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
37823
43372
namespace Puma {
37824
43373
 
37825
43374
 
37826
43375
 
37827
 
#line 37828 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
43376
#line 43377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
37828
43377
} // closed Puma
 
43378
class CCExprResolve;
 
43379
class CExprResolve;
37829
43380
class WinIfExists;
37830
43381
class WinImportHandler;
37831
43382
class WinMacros;
37832
 
class CMatchSyntax;
37833
 
class ExtGnu;
 
43383
class WinAsm;
 
43384
class WinDeclSpecs;
 
43385
class WinMemberExplSpec;
 
43386
class WinTypeKeywords;
 
43387
class WinFriend;
37834
43388
class ExtAC;
37835
43389
class ExtACBuilderCoupling;
37836
43390
class ExtACSyntaxCoupling;
37837
43391
class ExtACTree;
37838
43392
class ExtACKeywords;
37839
 
class WinAsm;
37840
 
class WinDeclSpecs;
37841
 
class WinMemberExplSpec;
37842
 
class WinTypeKeywords;
 
43393
class ExtGnu;
37843
43394
class PragmaOnceUnitState;
37844
43395
class PragmaOnce;
37845
 
class CCExprResolve;
37846
 
class CExprResolve;
 
43396
class CMatchSyntax;
37847
43397
namespace Puma {
37848
43398
 
37849
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
 
43399
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
37850
43400
class MacroUnit : public Unit {
37851
 
#line 37852 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
43401
#line 43402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43402
  friend class ::CCExprResolve;
 
43403
  friend class ::CExprResolve;
37852
43404
  friend class ::WinIfExists;
37853
43405
  friend class ::WinImportHandler;
37854
43406
  friend class ::WinMacros;
37855
 
  friend class ::CMatchSyntax;
37856
 
  friend class ::ExtGnu;
 
43407
  friend class ::WinAsm;
 
43408
  friend class ::WinDeclSpecs;
 
43409
  friend class ::WinMemberExplSpec;
 
43410
  friend class ::WinTypeKeywords;
 
43411
  friend class ::WinFriend;
37857
43412
  friend class ::ExtAC;
37858
43413
  friend class ::ExtACBuilderCoupling;
37859
43414
  friend class ::ExtACSyntaxCoupling;
37860
43415
  friend class ::ExtACTree;
37861
43416
  friend class ::ExtACKeywords;
37862
 
  friend class ::WinAsm;
37863
 
  friend class ::WinDeclSpecs;
37864
 
  friend class ::WinMemberExplSpec;
37865
 
  friend class ::WinTypeKeywords;
 
43417
  friend class ::ExtGnu;
37866
43418
  friend class ::PragmaOnceUnitState;
37867
43419
  friend class ::PragmaOnce;
37868
 
  friend class ::CCExprResolve;
37869
 
  friend class ::CExprResolve;
 
43420
  friend class ::CMatchSyntax;
37870
43421
 
37871
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
 
43422
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/MacroUnit.h"
37872
43423
 
37873
43424
  Unit *_CallingUnit;
37874
43425
  Token *_StartToken;
37905
43456
 
37906
43457
#endif /* __MacroUnit__ */
37907
43458
 
37908
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
 
43459
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
37909
43460
namespace Puma {
37910
43461
 
37911
43462
 
37912
43463
 
37913
 
#line 37914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
43464
#line 43465 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
37914
43465
} // closed Puma
 
43466
class CCExprResolve;
 
43467
class CExprResolve;
37915
43468
class WinIfExists;
37916
43469
class WinImportHandler;
37917
43470
class WinMacros;
37918
 
class CMatchSyntax;
37919
 
class ExtGnu;
 
43471
class WinAsm;
 
43472
class WinDeclSpecs;
 
43473
class WinMemberExplSpec;
 
43474
class WinTypeKeywords;
 
43475
class WinFriend;
37920
43476
class ExtAC;
37921
43477
class ExtACBuilderCoupling;
37922
43478
class ExtACSyntaxCoupling;
37923
43479
class ExtACTree;
37924
43480
class ExtACKeywords;
37925
 
class WinAsm;
37926
 
class WinDeclSpecs;
37927
 
class WinMemberExplSpec;
37928
 
class WinTypeKeywords;
 
43481
class ExtGnu;
37929
43482
class PragmaOnceUnitState;
37930
43483
class PragmaOnce;
37931
 
class CCExprResolve;
37932
 
class CExprResolve;
 
43484
class CMatchSyntax;
37933
43485
namespace Puma {
37934
43486
 
37935
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
 
43487
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
37936
43488
class PreArgDesc {
37937
 
#line 37938 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
43489
#line 43490 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43490
  friend class ::CCExprResolve;
 
43491
  friend class ::CExprResolve;
37938
43492
  friend class ::WinIfExists;
37939
43493
  friend class ::WinImportHandler;
37940
43494
  friend class ::WinMacros;
37941
 
  friend class ::CMatchSyntax;
37942
 
  friend class ::ExtGnu;
 
43495
  friend class ::WinAsm;
 
43496
  friend class ::WinDeclSpecs;
 
43497
  friend class ::WinMemberExplSpec;
 
43498
  friend class ::WinTypeKeywords;
 
43499
  friend class ::WinFriend;
37943
43500
  friend class ::ExtAC;
37944
43501
  friend class ::ExtACBuilderCoupling;
37945
43502
  friend class ::ExtACSyntaxCoupling;
37946
43503
  friend class ::ExtACTree;
37947
43504
  friend class ::ExtACKeywords;
37948
 
  friend class ::WinAsm;
37949
 
  friend class ::WinDeclSpecs;
37950
 
  friend class ::WinMemberExplSpec;
37951
 
  friend class ::WinTypeKeywords;
 
43505
  friend class ::ExtGnu;
37952
43506
  friend class ::PragmaOnceUnitState;
37953
43507
  friend class ::PragmaOnce;
37954
 
  friend class ::CCExprResolve;
37955
 
  friend class ::CExprResolve;
 
43508
  friend class ::CMatchSyntax;
37956
43509
 
37957
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
 
43510
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreArgDesc.h"
37958
43511
 
37959
43512
  // Collected arguments of a function-like macro.
37960
43513
  Array<MacroUnit> m_Args;
37983
43536
 
37984
43537
#endif /* __pre_arg_desc__ */
37985
43538
 
37986
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
43539
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
37987
43540
namespace Puma {
37988
43541
 
37989
43542
 
37996
43549
class PreMacro;
37997
43550
 
37998
43551
 
37999
 
#line 38000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
43552
#line 43553 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
38000
43553
} // closed Puma
 
43554
class CCExprResolve;
 
43555
class CExprResolve;
38001
43556
class WinIfExists;
38002
43557
class WinImportHandler;
38003
43558
class WinMacros;
38004
 
class CMatchSyntax;
38005
 
class ExtGnu;
 
43559
class WinAsm;
 
43560
class WinDeclSpecs;
 
43561
class WinMemberExplSpec;
 
43562
class WinTypeKeywords;
 
43563
class WinFriend;
38006
43564
class ExtAC;
38007
43565
class ExtACBuilderCoupling;
38008
43566
class ExtACSyntaxCoupling;
38009
43567
class ExtACTree;
38010
43568
class ExtACKeywords;
38011
 
class WinAsm;
38012
 
class WinDeclSpecs;
38013
 
class WinMemberExplSpec;
38014
 
class WinTypeKeywords;
 
43569
class ExtGnu;
38015
43570
class PragmaOnceUnitState;
38016
43571
class PragmaOnce;
38017
 
class CCExprResolve;
38018
 
class CExprResolve;
 
43572
class CMatchSyntax;
38019
43573
namespace Puma {
38020
43574
 
38021
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
43575
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
38022
43576
class PreMacroExpander {
38023
 
#line 38024 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
43577
#line 43578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43578
  friend class ::CCExprResolve;
 
43579
  friend class ::CExprResolve;
38024
43580
  friend class ::WinIfExists;
38025
43581
  friend class ::WinImportHandler;
38026
43582
  friend class ::WinMacros;
38027
 
  friend class ::CMatchSyntax;
38028
 
  friend class ::ExtGnu;
 
43583
  friend class ::WinAsm;
 
43584
  friend class ::WinDeclSpecs;
 
43585
  friend class ::WinMemberExplSpec;
 
43586
  friend class ::WinTypeKeywords;
 
43587
  friend class ::WinFriend;
38029
43588
  friend class ::ExtAC;
38030
43589
  friend class ::ExtACBuilderCoupling;
38031
43590
  friend class ::ExtACSyntaxCoupling;
38032
43591
  friend class ::ExtACTree;
38033
43592
  friend class ::ExtACKeywords;
38034
 
  friend class ::WinAsm;
38035
 
  friend class ::WinDeclSpecs;
38036
 
  friend class ::WinMemberExplSpec;
38037
 
  friend class ::WinTypeKeywords;
 
43593
  friend class ::ExtGnu;
38038
43594
  friend class ::PragmaOnceUnitState;
38039
43595
  friend class ::PragmaOnce;
38040
 
  friend class ::CCExprResolve;
38041
 
  friend class ::CExprResolve;
 
43596
  friend class ::CMatchSyntax;
38042
43597
 
38043
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
 
43598
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreMacroExpander.h"
38044
43599
 
38045
43600
  TokenStream        *_scanner;
38046
43601
  PreMacroManager    *_macroManager;
38105
43660
  // Push unit on token stream.
38106
43661
  void pushUnit (TokenStream &, Unit *) const;
38107
43662
 
 
43663
  // Get the next non-whitespace non-comment token
 
43664
  Token* nextPreprocessingToken (Token*, Unit*) const;
 
43665
 
 
43666
  // Get the previous non-whitespace non-comment token
 
43667
  Token* prevPreprocessingToken (Token*, Unit*) const;
 
43668
 
 
43669
  // Check if the given unit contains only spaces and comments.
 
43670
  bool onlySpacesAndComments (MacroUnit&) const;
 
43671
 
38108
43672
public:
38109
43673
  // Special constructor. Call reset() before using the expander.
38110
43674
  PreMacroExpander ();
38131
43695
 
38132
43696
#endif /* __pre_macro_expander__ */
38133
43697
 
38134
 
#line 33 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
43698
#line 33 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
38135
43699
using namespace std;
38136
43700
 
38137
43701
namespace Puma {
38148
43712
class PrePredicateManager;
38149
43713
 
38150
43714
 
38151
 
#line 38152 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38152
 
} // closed Puma
38153
 
class WinIfExists;
38154
 
class WinImportHandler;
38155
 
class WinMacros;
38156
 
class CMatchSyntax;
38157
 
class ExtGnu;
38158
 
class ExtAC;
38159
 
class ExtACBuilderCoupling;
38160
 
class ExtACSyntaxCoupling;
38161
 
class ExtACTree;
38162
 
class ExtACKeywords;
38163
 
class WinAsm;
38164
 
class WinDeclSpecs;
38165
 
class WinMemberExplSpec;
38166
 
class WinTypeKeywords;
38167
 
class PragmaOnceUnitState;
38168
 
class PragmaOnce;
38169
 
class CCExprResolve;
38170
 
class CExprResolve;
38171
 
namespace Puma {
38172
 
 
38173
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
43715
#line 43716 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43716
} // closed Puma
 
43717
class CCExprResolve;
 
43718
class CExprResolve;
 
43719
class WinIfExists;
 
43720
class WinImportHandler;
 
43721
class WinMacros;
 
43722
class WinAsm;
 
43723
class WinDeclSpecs;
 
43724
class WinMemberExplSpec;
 
43725
class WinTypeKeywords;
 
43726
class WinFriend;
 
43727
class ExtAC;
 
43728
class ExtACBuilderCoupling;
 
43729
class ExtACSyntaxCoupling;
 
43730
class ExtACTree;
 
43731
class ExtACKeywords;
 
43732
class ExtGnu;
 
43733
class PragmaOnceUnitState;
 
43734
class PragmaOnce;
 
43735
class CMatchSyntax;
 
43736
namespace Puma {
 
43737
 
 
43738
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
43739
 
 
43740
#line 43741 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43741
} // closed Puma
 
43742
 
 
43743
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
43744
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
43745
 
 
43746
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43747
// This file is part of PUMA.
 
43748
// Copyright (C) 1999-2003  The PUMA developer team.
 
43749
//                                                                
 
43750
// This program is free software;  you can redistribute it and/or 
 
43751
// modify it under the terms of the GNU General Public License as 
 
43752
// published by the Free Software Foundation; either version 2 of 
 
43753
// the License, or (at your option) any later version.            
 
43754
//                                                                
 
43755
// This program is distributed in the hope that it will be useful,
 
43756
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
43757
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
43758
// GNU General Public License for more details.                   
 
43759
//                                                                
 
43760
// You should have received a copy of the GNU General Public      
 
43761
// License along with this program; if not, write to the Free     
 
43762
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
43763
// MA  02111-1307  USA                                            
 
43764
 
 
43765
#ifndef __WinIfExists__
 
43766
#define __WinIfExists__
 
43767
 
 
43768
/********************************************************/
 
43769
/* Win __if_exists and __if_not_exists support aspect   */
 
43770
/********************************************************/
 
43771
 
 
43772
 
 
43773
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43774
namespace Puma {
 
43775
  
 
43776
#line 31 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43777
 
 
43778
}
 
43779
 
 
43780
 
 
43781
#line 43782 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43782
class CCExprResolve;
 
43783
class CExprResolve;
 
43784
class WinImportHandler;
 
43785
class WinMacros;
 
43786
class WinAsm;
 
43787
class WinDeclSpecs;
 
43788
class WinMemberExplSpec;
 
43789
class WinTypeKeywords;
 
43790
class WinFriend;
 
43791
class ExtAC;
 
43792
class ExtACBuilderCoupling;
 
43793
class ExtACSyntaxCoupling;
 
43794
class ExtACTree;
 
43795
class ExtACKeywords;
 
43796
class ExtGnu;
 
43797
class PragmaOnceUnitState;
 
43798
class PragmaOnce;
 
43799
class CMatchSyntax;
 
43800
 
 
43801
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43802
class WinIfExists {
 
43803
#line 43804 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43804
 
 
43805
public:
 
43806
  static WinIfExists *aspectof () {
 
43807
    static WinIfExists __instance;
 
43808
    return &__instance;
 
43809
  }
 
43810
  static WinIfExists *aspectOf () {
 
43811
    return aspectof ();
 
43812
  }
 
43813
private:
 
43814
 
 
43815
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43816
 
 
43817
#line 43818 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43818
  friend class ::CCExprResolve;
 
43819
  friend class ::CExprResolve;
 
43820
  friend class ::WinImportHandler;
 
43821
  friend class ::WinMacros;
 
43822
  friend class ::WinAsm;
 
43823
  friend class ::WinDeclSpecs;
 
43824
  friend class ::WinMemberExplSpec;
 
43825
  friend class ::WinTypeKeywords;
 
43826
  friend class ::WinFriend;
 
43827
  friend class ::ExtAC;
 
43828
  friend class ::ExtACBuilderCoupling;
 
43829
  friend class ::ExtACSyntaxCoupling;
 
43830
  friend class ::ExtACTree;
 
43831
  friend class ::ExtACKeywords;
 
43832
  friend class ::ExtGnu;
 
43833
  friend class ::PragmaOnceUnitState;
 
43834
  friend class ::PragmaOnce;
 
43835
  friend class ::CMatchSyntax;
 
43836
 
 
43837
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43838
 
 
43839
  /********************************************************/
 
43840
  /* Win __if_exists and __if_not_exists                  */
 
43841
  /********************************************************/
 
43842
 
 
43843
  // pointcut definitions
 
43844
  
 
43845
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43846
 
 
43847
 
 
43848
  // structural extensions
 
43849
  
 
43850
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43851
 
 
43852
 
 
43853
  // preprocess __if_exists and __if_not_exists statements
 
43854
  
 
43855
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43856
 
 
43857
public: template<class JoinPoint> void __a0_around 
 
43858
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43859
 
 
43860
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43861
(JoinPoint *tjp)
 
43862
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43863
 {
 
43864
#line 43865 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43865
 
 
43866
  JoinPoint *&thisJoinPoint = tjp;
 
43867
 
 
43868
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43869
 
 
43870
#line 43871 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43871
 
 
43872
  typedef typename JoinPoint::That __JP_That;
 
43873
  typedef typename JoinPoint::Target __JP_Target;
 
43874
  typedef typename JoinPoint::Result __JP_Result;
 
43875
 
 
43876
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43877
 
 
43878
    Puma::Token *token;
 
43879
    int type;
 
43880
    __JP_That
 
43881
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43882
 *preparser;
 
43883
  
 
43884
    preparser = tjp->that ();
 
43885
    tjp->proceed (); // get the next token
 
43886
    token = *tjp->result ();
 
43887
    if (token) {
 
43888
      type = token->type ();
 
43889
      // __if_exists (...) { ... }
 
43890
      if (type == Puma::TOK_IF_EXISTS) {
 
43891
        preparser->skip_up_to (Puma::TOK_CLOSE_CURLY);
 
43892
        *(Puma::Token**)thisJoinPoint->result () = preparser->next ();
 
43893
        return;
 
43894
        // __if_not_exists (...) { ... }
 
43895
      } else if (type == Puma::TOK_IF_NOT_EXISTS) {
 
43896
        preparser->skip_up_to (Puma::TOK_OPEN_CURLY);
 
43897
        preparser->_depth.push (1);
 
43898
        *(Puma::Token**)thisJoinPoint->result () = preparser->next ();
 
43899
        return;
 
43900
      }
 
43901
      // skip closing `}' of __if_not_exists
 
43902
      if (preparser->_depth.length ()) {
 
43903
        if (type == Puma::TOK_OPEN_CURLY) 
 
43904
          preparser->_depth.top () = preparser->_depth.top () + 1;
 
43905
        else if (type == Puma::TOK_CLOSE_CURLY) { 
 
43906
          preparser->_depth.top () = preparser->_depth.top () - 1;
 
43907
          if (preparser->_depth.top () == 0) {
 
43908
            preparser->_depth.pop ();
 
43909
            *(Puma::Token**)thisJoinPoint->result () = preparser->next ();
 
43910
            return;
 
43911
          }
 
43912
        }
 
43913
      }
 
43914
    }
 
43915
  }
 
43916
#line 43917 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43917
 
 
43918
private:
 
43919
 
 
43920
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43921
 
 
43922
 
 
43923
protected:
 
43924
  WinIfExists () {}
 
43925
};
 
43926
#line 43927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43927
 
 
43928
namespace AC {
 
43929
  template <class JoinPoint>
 
43930
  __attribute((always_inline)) inline void invoke_WinIfExists_WinIfExists_a0_around (JoinPoint *tjp) {
 
43931
    ::WinIfExists::aspectof()->__a0_around (tjp);
 
43932
  }
 
43933
 
43934
 
 
43935
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43936
 
 
43937
 
 
43938
namespace Puma {
 
43939
  
 
43940
#line 95 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43941
 
 
43942
    
 
43943
  // skip __if_exists resp. __if_not_exists statement
 
43944
  
 
43945
#line 135 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
43946
 
 
43947
}
 
43948
 
 
43949
#endif /* __WinIfExists__ */
 
43950
 
 
43951
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
43952
#endif
 
43953
namespace Puma {
 
43954
 
 
43955
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
43956
 
 
43957
#line 43958 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43958
} // closed Puma
 
43959
 
 
43960
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
43961
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
43962
 
 
43963
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
43964
// This file is part of PUMA.
 
43965
// Copyright (C) 1999-2003  The PUMA developer team.
 
43966
//                                                                
 
43967
// This program is free software;  you can redistribute it and/or 
 
43968
// modify it under the terms of the GNU General Public License as 
 
43969
// published by the Free Software Foundation; either version 2 of 
 
43970
// the License, or (at your option) any later version.            
 
43971
//                                                                
 
43972
// This program is distributed in the hope that it will be useful,
 
43973
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
43974
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
43975
// GNU General Public License for more details.                   
 
43976
//                                                                
 
43977
// You should have received a copy of the GNU General Public      
 
43978
// License along with this program; if not, write to the Free     
 
43979
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
43980
// MA  02111-1307  USA                                            
 
43981
 
 
43982
#ifndef __PragmaOnce__
 
43983
#define __PragmaOnce__
 
43984
 
 
43985
/********************************************************/
 
43986
/* Win #pragma once support aspect                      */
 
43987
/********************************************************/
 
43988
 
 
43989
 
 
43990
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
43991
 
 
43992
#line 43993 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
43993
class CCExprResolve;
 
43994
class CExprResolve;
 
43995
class WinIfExists;
 
43996
class WinImportHandler;
 
43997
class WinMacros;
 
43998
class WinAsm;
 
43999
class WinDeclSpecs;
 
44000
class WinMemberExplSpec;
 
44001
class WinTypeKeywords;
 
44002
class WinFriend;
 
44003
class ExtAC;
 
44004
class ExtACBuilderCoupling;
 
44005
class ExtACSyntaxCoupling;
 
44006
class ExtACTree;
 
44007
class ExtACKeywords;
 
44008
class ExtGnu;
 
44009
class PragmaOnceUnitState;
 
44010
class CMatchSyntax;
 
44011
 
 
44012
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44013
class PragmaOnce {
 
44014
#line 44015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44015
 
 
44016
public:
 
44017
  static PragmaOnce *aspectof () {
 
44018
    static PragmaOnce __instance;
 
44019
    return &__instance;
 
44020
  }
 
44021
  static PragmaOnce *aspectOf () {
 
44022
    return aspectof ();
 
44023
  }
 
44024
private:
 
44025
 
 
44026
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44027
 
 
44028
#line 44029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44029
  friend class ::CCExprResolve;
 
44030
  friend class ::CExprResolve;
 
44031
  friend class ::WinIfExists;
 
44032
  friend class ::WinImportHandler;
 
44033
  friend class ::WinMacros;
 
44034
  friend class ::WinAsm;
 
44035
  friend class ::WinDeclSpecs;
 
44036
  friend class ::WinMemberExplSpec;
 
44037
  friend class ::WinTypeKeywords;
 
44038
  friend class ::WinFriend;
 
44039
  friend class ::ExtAC;
 
44040
  friend class ::ExtACBuilderCoupling;
 
44041
  friend class ::ExtACSyntaxCoupling;
 
44042
  friend class ::ExtACTree;
 
44043
  friend class ::ExtACKeywords;
 
44044
  friend class ::ExtGnu;
 
44045
  friend class ::PragmaOnceUnitState;
 
44046
  friend class ::CMatchSyntax;
 
44047
 
 
44048
#line 34 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44049
 
 
44050
  /******************************************************/
 
44051
  /* detect #pragma once in the token stream of cpp     */
 
44052
  /******************************************************/
 
44053
 
 
44054
  // pointcut definitions
 
44055
  
 
44056
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44057
 
 
44058
  
 
44059
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44060
 
 
44061
  
 
44062
  // extend the preprocessor parser by the filter state
 
44063
  
 
44064
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44065
 
 
44066
 
 
44067
  // initialize the filter state
 
44068
  
 
44069
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44070
 
 
44071
public: template<class JoinPoint> void __a0_after 
 
44072
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44073
 
 
44074
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44075
(JoinPoint *tjp)
 
44076
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44077
 {
 
44078
#line 44079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44079
 
 
44080
  typedef typename JoinPoint::That __JP_That;
 
44081
  typedef typename JoinPoint::Target __JP_Target;
 
44082
  typedef typename JoinPoint::Result __JP_Result;
 
44083
 
 
44084
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44085
 
 
44086
    // TODO: it would be better to have construction advice -> but in lem file
 
44087
    tjp->that ()->_pragma_token = 0;
 
44088
  }
 
44089
#line 44090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44090
 
 
44091
private:
 
44092
 
 
44093
#line 50 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44094
 
 
44095
  
 
44096
  // filter #pragma once
 
44097
  
 
44098
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44099
 
 
44100
public: template<class JoinPoint> void __a1_after 
 
44101
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44102
 
 
44103
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44104
(JoinPoint *tjp)
 
44105
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44106
 {
 
44107
#line 44108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44108
 
 
44109
  typedef typename JoinPoint::That __JP_That;
 
44110
  typedef typename JoinPoint::Target __JP_Target;
 
44111
  typedef typename JoinPoint::Result __JP_Result;
 
44112
 
 
44113
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44114
 
 
44115
    Puma::Token *tok = *tjp->result ();
 
44116
    __JP_That
 
44117
#line 55 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44118
 &that = *tjp->that ();
 
44119
    if (!tok || !tok->is_directive ()) {
 
44120
      that._pragma_token = 0;
 
44121
      return;
 
44122
    }
 
44123
    if (strcmp ("#pragma", tok->text ()) == 0) {
 
44124
      that._pragma_token = tok;
 
44125
    }
 
44126
    else if (that._pragma_token && strcmp ("once", tok->text ()) == 0) {
 
44127
      Puma::Unit *unit = (Puma::Unit*)tok->belonging_to ();
 
44128
      assert (unit);
 
44129
      unit->state ().onlyOnce (true);
 
44130
    }
 
44131
  }
 
44132
#line 44133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44133
 
 
44134
private:
 
44135
 
 
44136
#line 68 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44137
 
 
44138
  
 
44139
  /********************************************************/
 
44140
  /* block the handling of pragma once files              */
 
44141
  /********************************************************/
 
44142
 
 
44143
  // don't let file includer include files twice
 
44144
  // to be precise: the file is included again, but the inclusion produces
 
44145
  // no tokens
 
44146
  
 
44147
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44148
 
 
44149
public: template<class JoinPoint> void __a2_around 
 
44150
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44151
 
 
44152
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44153
(JoinPoint *tjp, Puma::Unit *unit)
 
44154
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44155
 {
 
44156
#line 44157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44157
 
 
44158
  typedef typename JoinPoint::That __JP_That;
 
44159
  typedef typename JoinPoint::Target __JP_Target;
 
44160
  typedef typename JoinPoint::Result __JP_Result;
 
44161
 
 
44162
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44163
 
 
44164
    if (! unit || ! unit->state ().onlyOnce ())
 
44165
      tjp->proceed ();
 
44166
  }
 
44167
#line 44168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44168
 
 
44169
private:
 
44170
 
 
44171
#line 82 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44172
 
 
44173
 
 
44174
  // includeFile shall return 0 if the file was not included
 
44175
  
 
44176
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44177
 
 
44178
public: template<class JoinPoint> void __a3_after 
 
44179
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44180
 
 
44181
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44182
(JoinPoint *tjp)
 
44183
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44184
 {
 
44185
#line 44186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44186
 
 
44187
  typedef typename JoinPoint::That __JP_That;
 
44188
  typedef typename JoinPoint::Target __JP_Target;
 
44189
  typedef typename JoinPoint::Result __JP_Result;
 
44190
 
 
44191
#line 86 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44192
 
 
44193
    Puma::Unit *&unit = *tjp->result ();
 
44194
    if (unit && unit->state ().onlyOnce ())
 
44195
      //unit = 0;
 
44196
      tjp->that ()->_guarded = true;
 
44197
  }
 
44198
#line 44199 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44199
 
 
44200
private:
 
44201
 
 
44202
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44203
 
 
44204
    
 
44205
protected:
 
44206
  // this aspect should never be instantiated directly
 
44207
  PragmaOnce () {}
 
44208
};
 
44209
#line 44210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44210
 
 
44211
namespace AC {
 
44212
  template <class JoinPoint>
 
44213
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a0_after (JoinPoint *tjp) {
 
44214
    ::PragmaOnce::aspectof()->__a0_after (tjp);
 
44215
  }
 
44216
  template <class JoinPoint>
 
44217
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a1_after (JoinPoint *tjp) {
 
44218
    ::PragmaOnce::aspectof()->__a1_after (tjp);
 
44219
  }
 
44220
  template <class JoinPoint>
 
44221
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a2_around (JoinPoint *tjp) {
 
44222
    typedef typename JoinPoint::Binding_PragmaOnce_PragmaOnce_a2_around::template Arg<0> Arg0;
 
44223
    ::PragmaOnce::aspectof()->__a2_around (tjp, (Puma::Unit *)Arg0::val (tjp));
 
44224
  }
 
44225
  template <class JoinPoint>
 
44226
  __attribute((always_inline)) inline void invoke_PragmaOnce_PragmaOnce_a3_after (JoinPoint *tjp) {
 
44227
    ::PragmaOnce::aspectof()->__a3_after (tjp);
 
44228
  }
 
44229
 
44230
 
 
44231
#line 96 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44232
 
 
44233
 
 
44234
 
 
44235
#endif /* __PragmaOnce__ */
 
44236
 
 
44237
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
44238
#endif
 
44239
namespace Puma {
 
44240
 
 
44241
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
38174
44242
class PreprocessorParser : public PumaTokenSource {
38175
 
#line 38176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
44243
#line 44244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44244
  friend class ::CCExprResolve;
 
44245
  friend class ::CExprResolve;
38176
44246
  friend class ::WinIfExists;
38177
44247
  friend class ::WinImportHandler;
38178
44248
  friend class ::WinMacros;
38179
 
  friend class ::CMatchSyntax;
38180
 
  friend class ::ExtGnu;
 
44249
  friend class ::WinAsm;
 
44250
  friend class ::WinDeclSpecs;
 
44251
  friend class ::WinMemberExplSpec;
 
44252
  friend class ::WinTypeKeywords;
 
44253
  friend class ::WinFriend;
38181
44254
  friend class ::ExtAC;
38182
44255
  friend class ::ExtACBuilderCoupling;
38183
44256
  friend class ::ExtACSyntaxCoupling;
38184
44257
  friend class ::ExtACTree;
38185
44258
  friend class ::ExtACKeywords;
38186
 
  friend class ::WinAsm;
38187
 
  friend class ::WinDeclSpecs;
38188
 
  friend class ::WinMemberExplSpec;
38189
 
  friend class ::WinTypeKeywords;
 
44259
  friend class ::ExtGnu;
38190
44260
  friend class ::PragmaOnceUnitState;
38191
44261
  friend class ::PragmaOnce;
38192
 
  friend class ::CCExprResolve;
38193
 
  friend class ::CExprResolve;
 
44262
  friend class ::CMatchSyntax;
38194
44263
 
38195
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
44264
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
38196
44265
 
38197
44266
public:
38198
44267
  // The current mode for token preprocessing
38252
44321
  PreLevelState       *levelState () const       { return _levelState; }
38253
44322
  PreParserState      *parserState () const      { return _parserState; }
38254
44323
  PreMacroManager     *macroManager () const     { return _macroManager; }
 
44324
  void macroManager   (PreMacroManager *m)       { _macroManager = m; }
38255
44325
  PreFileIncluder     *fileIncluder () const     { return _fileIncluder; }
38256
44326
  PrePredicateManager *predicateManager () const { return _predicateManager; }
38257
44327
  UnitManager         *unitManager () const      { return _unitManager; }
38259
44329
  PreMode              pre_mode () const         { return _pre_mode; } 
38260
44330
  bool                 supportGNU () const       { return _support_gnu; }
38261
44331
  CScanner            &cscanner () const         { return (CScanner&) _scanner; }
 
44332
  const char          *importHandler () const    { return _importHandler; }
38262
44333
 
38263
44334
  // Return the preprocessor syntax tree.
38264
44335
  PreTree *syntaxTree () const;
38278
44349
        
38279
44350
  // Configure the preprocessor.
38280
44351
  
38281
 
#line 38282 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38282
 
public: inline void __exec_old_configure(const ::Puma::Config & ,bool );
 
44352
#line 44353 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44353
public: __attribute__((always_inline)) inline void __exec_old_configure(const ::Puma::Config & ,bool );
38283
44354
 
38284
 
#line 132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
44355
#line 134 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
38285
44356
void configure (const Config &, bool = true);
38286
44357
        
38287
44358
  // Get the next token to parse.
38288
44359
  
38289
 
#line 38290 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38290
 
public: inline ::Puma::Token * __exec_old_next();
 
44360
#line 44361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44361
public: __attribute__((always_inline)) inline ::Puma::Token * __exec_old_next();
38291
44362
 
38292
 
#line 135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
44363
#line 137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
38293
44364
Token *next ();
38294
44365
        
38295
44366
  TokenStream *scanner () const { return _stream; }
38321
44392
 
38322
44393
  void supportGNU (bool);
38323
44394
   private:
 
44395
 
 
44396
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/PragmaOnce.ah"
 
44397
 Puma :: Token * _pragma_token ;   private:
38324
44398
  typedef PreprocessorParser WinIfExistsCpp;
38325
44399
 
38326
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinIfExists.ah"
38327
 
 public :
38328
 
 
38329
 
Stack < unsigned > _depth ;
38330
 
 
38331
 
void skip_up_to ( int ) ;  private:
38332
 
 
38333
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinImportHandler.ah"
38334
 
 public :
38335
 
const char * importHandler ( ) const { return _importHandler ; }  private:
38336
 
 
38337
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/PragmaOnce.ah"
38338
 
 Token * _pragma_token ;
38339
 
#line 165 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
 
44400
#line 90 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinIfExists.ah"
 
44401
 public :
 
44402
 
 
44403
Puma :: Stack < unsigned > _depth ;
 
44404
 
 
44405
void skip_up_to ( int ) ;
 
44406
#line 167 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
38340
44407
};
38341
44408
 
38342
44409
 
38344
44411
 
38345
44412
#endif /* __preprocessor_parser__ */
38346
44413
 
38347
 
#line 38348 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38348
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_PreprocessorParser_h__
38349
 
 
38350
 
#line 170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/PreprocessorParser.h"
38351
 
 
38352
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
 
44414
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
38353
44415
using namespace std;
38354
44416
 
38355
44417
namespace Puma {
38361
44423
}
38362
44424
 
38363
44425
 
38364
 
#line 38365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38365
 
 
38366
 
 
38367
 
struct TJP__ZN4Puma6Parser5parseERN4PumaE4UnitRN4PumaE8CProjecti_0 {
38368
 
  typedef ::Puma::CTranslationUnit * Result;
38369
 
  typedef ::Puma::Parser That;
38370
 
  typedef ::Puma::Parser Target;
38371
 
  static const int JPID = 136;
 
44426
#line 44427 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44427
 
 
44428
 
 
44429
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma6Parser5parseERN4PumaE4UnitRN4PumaE8CProjecti_0 {
 
44430
  typedef TJP__ZN4Puma6Parser5parseERN4PumaE4UnitRN4PumaE8CProjecti_0 __TJP;
 
44431
  typedef TResult Result;
 
44432
  typedef TThat   That;
 
44433
  typedef TTarget Target;
 
44434
  enum { ARGS = TArgs::ARGS };
 
44435
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
44436
  static const int JPID = 8605;
38372
44437
  static const AC::JPType JPTYPE = (AC::JPType)8;
38373
44438
  struct Res {
38374
 
    typedef ::Puma::CTranslationUnit * Type;
38375
 
    typedef ::Puma::CTranslationUnit * ReferredType;
38376
 
  };
38377
 
  enum { ARGS = 3 };
38378
 
  template <int I, int DUMMY = 0> struct Arg {
38379
 
    typedef void Type;
38380
 
    typedef void ReferredType;
38381
 
  };
38382
 
  template <int DUMMY> struct Arg<0, DUMMY> {
38383
 
    typedef ::Puma::Unit & Type;
38384
 
    typedef ::Puma::Unit ReferredType;
38385
 
  };
38386
 
  template <int DUMMY> struct Arg<1, DUMMY> {
38387
 
    typedef ::Puma::CProject & Type;
38388
 
    typedef ::Puma::CProject ReferredType;
38389
 
  };
38390
 
  template <int DUMMY> struct Arg<2, DUMMY> {
38391
 
    typedef int Type;
38392
 
    typedef int ReferredType;
 
44439
    typedef TResult Type;
 
44440
    typedef TResult ReferredType;
38393
44441
  };
38394
44442
 
38395
 
  void **_args;
 
44443
  void *_args[ARGS];
38396
44444
 
38397
44445
  inline void *arg (int n) {return _args[n];}
38398
44446
  template <int I> typename Arg<I>::ReferredType *arg () {
38399
44447
    return (typename Arg<I>::ReferredType*)arg (I);
38400
44448
  }
38401
44449
 
38402
 
};
38403
 
struct Binding_TJP__ZN4Puma6Parser5parseERN4PumaE4UnitRN4PumaE8CProjecti_0_ExtACKeywords_ExtACKeywords_a0_before {
38404
 
  typedef TJP__ZN4Puma6Parser5parseERN4PumaE4UnitRN4PumaE8CProjecti_0 TJP;
 
44450
struct Binding_ExtACKeywords_ExtACKeywords_a0_before {
 
44451
  typedef __TJP TJP;
38405
44452
  template <int I, int DUMMY = 0> struct Arg {
38406
44453
    void val (TJP *tjp) {} // for VC7
38407
44454
  };
38408
44455
  template <int DUMMY> struct Arg<0, DUMMY> {
38409
 
    static TJP::Arg<1>::ReferredType &val (TJP *tjp) { return *tjp->template arg<1> (); }
 
44456
    static typename TJP::template Arg<1>::ReferredType &val (TJP *tjp) { return *tjp->template arg<1> (); }
38410
44457
  };
38411
44458
};
38412
 
 
38413
 
 
38414
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
 
44459
};
 
44460
 
 
44461
 
 
44462
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
38415
44463
CTranslationUnit *Parser::parse (Unit & arg0, CProject & arg1, int  arg2) 
38416
 
#line 38417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
44464
#line 44465 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
38417
44465
{
38418
 
  AC::ResultBuffer< ::Puma::CTranslationUnit *  > result;
38419
 
  void *args__ZN4Puma6Parser5parseERN4PumaE4UnitRN4PumaE8CProjecti[] = { (void*)&arg0, (void*)&arg1, (void*)&arg2 };
38420
 
  TJP__ZN4Puma6Parser5parseERN4PumaE4UnitRN4PumaE8CProjecti_0 tjp;
38421
 
  tjp._args = args__ZN4Puma6Parser5parseERN4PumaE4UnitRN4PumaE8CProjecti;
38422
 
  AC::invoke_ExtACKeywords_ExtACKeywords_a0_before<TJP__ZN4Puma6Parser5parseERN4PumaE4UnitRN4PumaE8CProjecti_0, Binding_TJP__ZN4Puma6Parser5parseERN4PumaE4UnitRN4PumaE8CProjecti_0_ExtACKeywords_ExtACKeywords_a0_before> (&tjp);
 
44466
  typedef TJP__ZN4Puma6Parser5parseERN4PumaE4UnitRN4PumaE8CProjecti_0< ::Puma::CTranslationUnit * , ::Puma::Parser , ::Puma::Parser ,  AC::TL< ::Puma::Unit & , AC::TL< ::Puma::CProject & , AC::TL< int , AC::TLE > > > > __TJP;
 
44467
  ::Puma::CTranslationUnit * result;
 
44468
  __TJP tjp;
 
44469
  tjp._args[0] = (void*)&arg0;
 
44470
  tjp._args[1] = (void*)&arg1;
 
44471
  tjp._args[2] = (void*)&arg2;
 
44472
  AC::invoke_ExtACKeywords_ExtACKeywords_a0_before<__TJP> (&tjp);
38423
44473
{
38424
44474
      ::AC::CFlow<ExtACKeywords,0> trigger0;
38425
 
  ::new (&result) ::Puma::CTranslationUnit *  (this->__exec_old_parse(arg0, arg1, arg2));
 
44475
    result = this->__exec_old_parse(arg0, arg1, arg2);
38426
44476
}
38427
44477
  return (::Puma::CTranslationUnit * &)result;
38428
44478
 
38429
44479
}
38430
 
inline ::Puma::CTranslationUnit * Puma::Parser::__exec_old_parse(::Puma::Unit & unit,::Puma::CProject & p,int pre_mode)
38431
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
 
44480
__attribute__((always_inline)) inline ::Puma::CTranslationUnit * Puma::Parser::__exec_old_parse(::Puma::Unit & unit,::Puma::CProject & p,int pre_mode)
 
44481
#line 38 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
38432
44482
{
38433
44483
  CTranslationUnit *tu = new CTranslationUnit (unit, p);
38434
44484
 
38466
44516
 
38467
44517
} // namespace Puma
38468
44518
 
38469
 
#line 38470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38470
 
 
38471
 
#ifdef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_Parser_cc__
38472
 
/*** begin of aspect includes ***/
38473
 
#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__)
38474
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinIfExists_ah__
38475
 
 
38476
 
#line 7 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
38477
 
#endif
38478
 
#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__)
38479
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinImportHandler_ah__
38480
 
 
38481
 
#line 11 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
38482
 
#endif
38483
 
#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__)
38484
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMacros_ah__
38485
 
 
38486
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
44519
#line 44520 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44520
 
 
44521
#ifdef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_Parser_cc__
 
44522
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
44523
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
44524
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
 
44525
#include "CCExprResolveCC.ah"
 
44526
#endif
 
44527
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44528
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44529
#include "ExtACTree.ah"
 
44530
#endif
 
44531
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
44532
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
44533
#include "ExtGnu.ah"
 
44534
#endif
 
44535
#endif
 
44536
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44537
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44538
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
44539
#include "CCExprResolveH.ah"
 
44540
#endif
 
44541
#endif
 
44542
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
44543
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
44544
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
 
44545
#include "CExprResolveCC.ah"
 
44546
#endif
 
44547
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44548
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44549
#include "ExtACTree.ah"
 
44550
#endif
 
44551
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
44552
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
44553
#include "ExtGnu.ah"
 
44554
#endif
 
44555
#endif
 
44556
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44557
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44558
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
44559
#include "CExprResolveH.ah"
 
44560
#endif
 
44561
#endif
 
44562
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
44563
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
44564
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinIfExists_ah__
 
44565
 
 
44566
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
 
44567
#endif
 
44568
#endif
 
44569
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
44570
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
44571
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinImportHandler_ah__
 
44572
 
 
44573
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
44574
// This file is part of PUMA.
 
44575
// Copyright (C) 1999-2003  The PUMA developer team.
 
44576
//                                                                
 
44577
// This program is free software;  you can redistribute it and/or 
 
44578
// modify it under the terms of the GNU General Public License as 
 
44579
// published by the Free Software Foundation; either version 2 of 
 
44580
// the License, or (at your option) any later version.            
 
44581
//                                                                
 
44582
// This program is distributed in the hope that it will be useful,
 
44583
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
44584
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
44585
// GNU General Public License for more details.                   
 
44586
//                                                                
 
44587
// You should have received a copy of the GNU General Public      
 
44588
// License along with this program; if not, write to the Free     
 
44589
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
44590
// MA  02111-1307  USA                                            
 
44591
 
 
44592
#ifndef __WinImportHandler__
 
44593
#define __WinImportHandler__
 
44594
 
 
44595
/********************************************************/
 
44596
/* Win #import directive support                        */
 
44597
/********************************************************/
 
44598
 
 
44599
 
 
44600
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
44601
 
 
44602
#line 44603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44603
class CCExprResolve;
 
44604
class CExprResolve;
 
44605
class WinIfExists;
 
44606
class WinMacros;
 
44607
class WinAsm;
 
44608
class WinDeclSpecs;
 
44609
class WinMemberExplSpec;
 
44610
class WinTypeKeywords;
 
44611
class WinFriend;
 
44612
class ExtAC;
 
44613
class ExtACBuilderCoupling;
 
44614
class ExtACSyntaxCoupling;
 
44615
class ExtACTree;
 
44616
class ExtACKeywords;
 
44617
class ExtGnu;
 
44618
class PragmaOnceUnitState;
 
44619
class PragmaOnce;
 
44620
class CMatchSyntax;
 
44621
 
 
44622
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
44623
class WinImportHandler {
 
44624
#line 44625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44625
 
 
44626
public:
 
44627
  static WinImportHandler *aspectof () {
 
44628
    static WinImportHandler __instance;
 
44629
    return &__instance;
 
44630
  }
 
44631
  static WinImportHandler *aspectOf () {
 
44632
    return aspectof ();
 
44633
  }
 
44634
private:
 
44635
 
 
44636
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
44637
 
 
44638
#line 44639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44639
  friend class ::CCExprResolve;
 
44640
  friend class ::CExprResolve;
 
44641
  friend class ::WinIfExists;
 
44642
  friend class ::WinMacros;
 
44643
  friend class ::WinAsm;
 
44644
  friend class ::WinDeclSpecs;
 
44645
  friend class ::WinMemberExplSpec;
 
44646
  friend class ::WinTypeKeywords;
 
44647
  friend class ::WinFriend;
 
44648
  friend class ::ExtAC;
 
44649
  friend class ::ExtACBuilderCoupling;
 
44650
  friend class ::ExtACSyntaxCoupling;
 
44651
  friend class ::ExtACTree;
 
44652
  friend class ::ExtACKeywords;
 
44653
  friend class ::ExtGnu;
 
44654
  friend class ::PragmaOnceUnitState;
 
44655
  friend class ::PragmaOnce;
 
44656
  friend class ::CMatchSyntax;
 
44657
 
 
44658
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
44659
 
 
44660
  /********************************************************/
 
44661
  /* Win #import directive                                */
 
44662
  /********************************************************/
 
44663
 
 
44664
  // pointcuts
 
44665
  
 
44666
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
44667
 
 
44668
  
 
44669
  // handle --import-handler option
 
44670
  
 
44671
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
44672
 
 
44673
public: template<class JoinPoint> void __a0_before 
 
44674
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
44675
 
 
44676
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
44677
(JoinPoint *tjp, const Puma::Config &config, bool process_includes)
 
44678
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
44679
 {
 
44680
#line 44681 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44681
 
 
44682
  JoinPoint *&thisJoinPoint = tjp;
 
44683
 
 
44684
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
44685
 
 
44686
#line 44687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44687
 
 
44688
  typedef typename JoinPoint::That __JP_That;
 
44689
  typedef typename JoinPoint::Target __JP_Target;
 
44690
  typedef typename JoinPoint::Result __JP_Result;
 
44691
 
 
44692
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
44693
 
 
44694
    const Puma::ConfOption *opt;
 
44695
    char *tmp;
 
44696
    
 
44697
    if (process_includes) {
 
44698
      opt = config.Option ("--import-handler");
 
44699
      if (opt && opt->Arguments ()) {
 
44700
        // delete old import handler
 
44701
        if (thisJoinPoint->that ()->_importHandler)
 
44702
          delete[] thisJoinPoint->that ()->_importHandler;
 
44703
        
 
44704
        // get new import handler
 
44705
        tmp = new char[strlen (opt->Argument (0))+1];
 
44706
        strcpy (tmp, opt->Argument (0));
 
44707
        thisJoinPoint->that ()->_importHandler = tmp;
 
44708
      }
 
44709
    }
 
44710
  }
 
44711
#line 44712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44712
 
 
44713
private:
 
44714
 
 
44715
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
44716
 
 
44717
 
 
44718
protected:
 
44719
  WinImportHandler () {}
 
44720
};
 
44721
#line 44722 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44722
 
 
44723
namespace AC {
 
44724
  template <class JoinPoint>
 
44725
  __attribute((always_inline)) inline void invoke_WinImportHandler_WinImportHandler_a0_before (JoinPoint *tjp) {
 
44726
    typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<0> Arg0;
 
44727
    typedef typename JoinPoint::Binding_WinImportHandler_WinImportHandler_a0_before::template Arg<1> Arg1;
 
44728
    ::WinImportHandler::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp), (bool)Arg1::val (tjp));
 
44729
  }
 
44730
 
44731
 
 
44732
#line 62 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinImportHandler.ah"
 
44733
 
 
44734
 
 
44735
 
 
44736
#endif /* __WinImportHandler__ */
 
44737
 
 
44738
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
 
44739
#endif
 
44740
#endif
 
44741
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
44742
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
44743
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMacros_ah__
 
44744
 
 
44745
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
38487
44746
// This file is part of PUMA.
38488
44747
// Copyright (C) 1999-2003  The PUMA developer team.
38489
44748
//                                                                
38510
44769
/********************************************************/
38511
44770
 
38512
44771
 
38513
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
38514
 
using namespace Puma;
38515
 
 
38516
 
 
38517
 
 
38518
 
#line 38519 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
44772
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
44773
 
 
44774
#line 44775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44775
class CCExprResolve;
 
44776
class CExprResolve;
38519
44777
class WinIfExists;
38520
44778
class WinImportHandler;
38521
 
class CMatchSyntax;
38522
 
class ExtGnu;
 
44779
class WinAsm;
 
44780
class WinDeclSpecs;
 
44781
class WinMemberExplSpec;
 
44782
class WinTypeKeywords;
 
44783
class WinFriend;
38523
44784
class ExtAC;
38524
44785
class ExtACBuilderCoupling;
38525
44786
class ExtACSyntaxCoupling;
38526
44787
class ExtACTree;
38527
44788
class ExtACKeywords;
38528
 
class WinAsm;
38529
 
class WinDeclSpecs;
38530
 
class WinMemberExplSpec;
38531
 
class WinTypeKeywords;
 
44789
class ExtGnu;
38532
44790
class PragmaOnceUnitState;
38533
44791
class PragmaOnce;
38534
 
class CCExprResolve;
38535
 
class CExprResolve;
 
44792
class CMatchSyntax;
38536
44793
 
38537
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
44794
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
38538
44795
class WinMacros {
38539
 
#line 38540 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
44796
#line 44797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
38540
44797
 
38541
44798
public:
38542
44799
  static WinMacros *aspectof () {
38548
44805
  }
38549
44806
private:
38550
44807
 
38551
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
44808
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
38552
44809
 
38553
 
#line 38554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
44810
#line 44811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44811
  friend class ::CCExprResolve;
 
44812
  friend class ::CExprResolve;
38554
44813
  friend class ::WinIfExists;
38555
44814
  friend class ::WinImportHandler;
38556
 
  friend class ::CMatchSyntax;
38557
 
  friend class ::ExtGnu;
 
44815
  friend class ::WinAsm;
 
44816
  friend class ::WinDeclSpecs;
 
44817
  friend class ::WinMemberExplSpec;
 
44818
  friend class ::WinTypeKeywords;
 
44819
  friend class ::WinFriend;
38558
44820
  friend class ::ExtAC;
38559
44821
  friend class ::ExtACBuilderCoupling;
38560
44822
  friend class ::ExtACSyntaxCoupling;
38561
44823
  friend class ::ExtACTree;
38562
44824
  friend class ::ExtACKeywords;
38563
 
  friend class ::WinAsm;
38564
 
  friend class ::WinDeclSpecs;
38565
 
  friend class ::WinMemberExplSpec;
38566
 
  friend class ::WinTypeKeywords;
 
44825
  friend class ::ExtGnu;
38567
44826
  friend class ::PragmaOnceUnitState;
38568
44827
  friend class ::PragmaOnce;
38569
 
  friend class ::CCExprResolve;
38570
 
  friend class ::CExprResolve;
 
44828
  friend class ::CMatchSyntax;
38571
44829
 
38572
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
44830
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
38573
44831
 
38574
44832
  /********************************************************/
38575
44833
  /* Win specific predefined macros                       */
38577
44835
 
38578
44836
  // predefine win specific macros
38579
44837
  
38580
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
44838
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
38581
44839
 
38582
44840
public: template<class JoinPoint> void __a0_before 
38583
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
44841
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
38584
44842
 
38585
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
38586
 
(JoinPoint *tjp, const Config &config)
38587
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
44843
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
 
44844
(JoinPoint *tjp, const Puma::Config &config)
 
44845
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
38588
44846
 {
38589
 
#line 38590 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
44847
#line 44848 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
38590
44848
 
38591
44849
  JoinPoint *&thisJoinPoint = tjp;
38592
44850
 
38593
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
44851
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
38594
44852
 
38595
 
#line 38596 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
44853
#line 44854 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
38596
44854
 
38597
44855
  typedef typename JoinPoint::That __JP_That;
38598
44856
  typedef typename JoinPoint::Target __JP_Target;
38599
44857
  typedef typename JoinPoint::Result __JP_Result;
38600
44858
 
38601
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
44859
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
38602
44860
 
38603
44861
    if (config.Option ("--vc")) {
38604
44862
      // constants
38611
44869
      thisJoinPoint->that ()->defMacro ("__noop", " ");
38612
44870
 
38613
44871
      // function-like macros
38614
 
      PreMacro::MacroArgs *args = new PreMacro::MacroArgs (1);
 
44872
      Puma::PreMacro::MacroArgs *args = new Puma::PreMacro::MacroArgs (1);
38615
44873
      args->append ("__arg0");
38616
44874
      thisJoinPoint->that ()->macroManager ()->addMacro (
38617
 
        new PreMacro ("__declspec", args, " "));
 
44875
        new Puma::PreMacro ("__declspec", args, " "));
38618
44876
    }
38619
44877
  }
38620
 
#line 38621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
44878
#line 44879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
38621
44879
 
38622
44880
private:
38623
44881
 
38624
 
#line 56 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
44882
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
38625
44883
 
38626
44884
 
38627
44885
protected:
38628
44886
  WinMacros () {}
38629
44887
};
38630
 
#line 38631 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
44888
#line 44889 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
38631
44889
 
38632
44890
namespace AC {
38633
 
  template <class JoinPoint, class Binding>
38634
 
  inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
38635
 
    typedef typename Binding::template Arg<0> Arg0;
 
44891
  template <class JoinPoint>
 
44892
  __attribute((always_inline)) inline void invoke_WinMacros_WinMacros_a0_before (JoinPoint *tjp) {
 
44893
    typedef typename JoinPoint::Binding_WinMacros_WinMacros_a0_before::template Arg<0> Arg0;
38636
44894
    ::WinMacros::aspectof()->__a0_before (tjp, (const Puma::Config &)Arg0::val (tjp));
38637
44895
  }
38638
44896
38639
44897
 
38640
 
#line 60 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/WinMacros.ah"
 
44898
#line 58 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/WinMacros.ah"
38641
44899
 
38642
44900
 
38643
44901
 
38644
44902
#endif /* __WinMacros__ */
38645
44903
 
38646
 
#line 15 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
38647
 
#endif
38648
 
#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__)
38649
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
38650
 
 
38651
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38652
 
// This file is part of PUMA.
38653
 
// Copyright (C) 1999-2003  The PUMA developer team.
38654
 
//                                                                
38655
 
// This program is free software;  you can redistribute it and/or 
38656
 
// modify it under the terms of the GNU General Public License as 
38657
 
// published by the Free Software Foundation; either version 2 of 
38658
 
// the License, or (at your option) any later version.            
38659
 
//                                                                
38660
 
// This program is distributed in the hope that it will be useful,
38661
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
38662
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
38663
 
// GNU General Public License for more details.                   
38664
 
//                                                                
38665
 
// You should have received a copy of the GNU General Public      
38666
 
// License along with this program; if not, write to the Free     
38667
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
38668
 
// MA  02111-1307  USA                                            
38669
 
 
38670
 
#ifndef __CMatchSyntax_ah__
38671
 
#define __CMatchSyntax_ah__
38672
 
 
38673
 
 
38674
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CWildcardTokens.h"
38675
 
// This file is part of PUMA.
38676
 
// Copyright (C) 1999-2003  The PUMA developer team.
38677
 
//                                                                
38678
 
// This program is free software;  you can redistribute it and/or 
38679
 
// modify it under the terms of the GNU General Public License as 
38680
 
// published by the Free Software Foundation; either version 2 of 
38681
 
// the License, or (at your option) any later version.            
38682
 
//                                                                
38683
 
// This program is distributed in the hope that it will be useful,
38684
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
38685
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
38686
 
// GNU General Public License for more details.                   
38687
 
//                                                                
38688
 
// You should have received a copy of the GNU General Public      
38689
 
// License along with this program; if not, write to the Free     
38690
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
38691
 
// MA  02111-1307  USA                                            
38692
 
 
38693
 
#ifndef __C_WILDCARD_TOKENS__
38694
 
#define __C_WILDCARD_TOKENS__
38695
 
 
38696
 
namespace Puma {
38697
 
 
38698
 
 
38699
 
enum CWildcardTokens {
38700
 
  TOK_WC_AND = 500,
38701
 
  TOK_WC_OR,
38702
 
  TOK_WC_XOR,
38703
 
  TOK_WC_SEQ,
38704
 
  TOK_WC_IF,
38705
 
  TOK_WC_ELIF,
38706
 
  TOK_WC_ENDIF,
38707
 
  TOK_WC_NOT,
38708
 
  TOK_WC_EXACT,
38709
 
  TOK_WC_FIRST,
38710
 
  TOK_WC_LAST,
38711
 
  TOK_WC_LEAF,
38712
 
  TOK_WC_PRUNE,
38713
 
  TOK_WC_COLLECT,
38714
 
  TOK_WC_NODENAME,
38715
 
  TOK_WC_ELEMENT,
38716
 
 
38717
 
  TOK_DO_EXPR,
38718
 
  TOK_DO_EXPR_LIST,
38719
 
  TOK_DO_ID_EXPR,
38720
 
  TOK_DO_IDENTIFIER,
38721
 
  TOK_DO_DECL_SPEC,
38722
 
  TOK_DO_DECL_SPEC_SEQ,
38723
 
  TOK_DO_INIT_DECLARATOR_LIST,
38724
 
  TOK_DO_INIT_DECLARATOR,
38725
 
  TOK_DO_DECLARATOR,
38726
 
  TOK_DO_INIT,
38727
 
  TOK_DO_ARG_DECL_SEQ,
38728
 
  TOK_DO_FCT_BODY,
38729
 
  TOK_DO_CLASS_SPEC,
38730
 
  TOK_DO_MEMBER_SPEC,
38731
 
  TOK_DO_MEMBER_DECL,
38732
 
  TOK_DO_BASE_CLAUSE,
38733
 
  TOK_DO_CTOR_INIT,
38734
 
  TOK_DO_MEM_INIT,
38735
 
  TOK_DO_STMT,
38736
 
  TOK_DO_STMT_SEQ,
38737
 
 
38738
 
  TOK_ANY_EXPR,
38739
 
  TOK_ANY_EXPR_LIST,
38740
 
  TOK_ANY_ID_EXPR,
38741
 
  TOK_ANY_IDENTIFIER,
38742
 
  TOK_ANY_DECL_SPEC,
38743
 
  TOK_ANY_DECL_SPEC_SEQ,
38744
 
  TOK_ANY_INIT_DECLARATOR_LIST,
38745
 
  TOK_ANY_INIT_DECLARATOR,
38746
 
  TOK_ANY_DECLARATOR,
38747
 
  TOK_ANY_INIT,
38748
 
  TOK_ANY_ARG_DECL_SEQ,
38749
 
  TOK_ANY_FCT_BODY,
38750
 
  TOK_ANY_CLASS_SPEC,
38751
 
  TOK_ANY_MEMBER_SPEC,
38752
 
  TOK_ANY_MEMBER_DECL,
38753
 
  TOK_ANY_BASE_CLAUSE,
38754
 
  TOK_ANY_CTOR_INIT,
38755
 
  TOK_ANY_MEM_INIT,
38756
 
  TOK_ANY_STMT,
38757
 
  TOK_ANY_STMT_SEQ,
38758
 
  
38759
 
  TOK_IS_CLASS,
38760
 
  TOK_IS_ENUM,
38761
 
  TOK_IS_TYPEDEF
38762
 
};
38763
 
 
38764
 
 
38765
 
} // namespace Puma
38766
 
 
38767
 
#endif /* __WILDCARD_TOKENS__ */
38768
 
 
38769
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38770
 
namespace Puma {
38771
 
  class CSyntax;
38772
 
  class CCSyntax;
38773
 
  class CBuilder;
38774
 
  class CSemantic;
38775
 
  class Container;
38776
 
  class CTree;
38777
 
  class CStrLiteral;
38778
 
  class CT_Any;
38779
 
  class CT_AnyList;
38780
 
  class CT_AnyExtension;
38781
 
  class CT_AnyCondition;
38782
 
  class CT_SimpleName;
38783
 
} // namespace Puma
38784
 
 
38785
 
 
38786
 
using namespace Puma;
38787
 
 
38788
 
namespace Puma {
38789
 
  
38790
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38791
 
 
38792
 
  
38793
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38794
 
 
38795
 
  
38796
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38797
 
 
 
44904
#line 59 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
 
44905
#endif
 
44906
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
44907
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
44908
 
 
44909
#line 63 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
 
44910
#endif
 
44911
#endif
 
44912
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
44913
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
44914
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinAsm_ah__
 
44915
#include "WinAsm.ah"
 
44916
#endif
 
44917
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44918
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44919
#include "ExtACTree.ah"
 
44920
#endif
 
44921
#endif
 
44922
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
44923
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
44924
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
 
44925
#include "WinDeclSpecs.ah"
 
44926
#endif
 
44927
#endif
 
44928
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
44929
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
44930
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
 
44931
#include "WinMemberExplSpec.ah"
 
44932
#endif
 
44933
#endif
 
44934
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
44935
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
44936
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
 
44937
#include "WinTypeKeywords.ah"
 
44938
#endif
 
44939
#endif
 
44940
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
44941
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
44942
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_WinFriend_ah__
 
44943
#include "WinFriend.ah"
 
44944
#endif
 
44945
#endif
 
44946
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
44947
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
44948
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtAC_ah__
 
44949
 
 
44950
#line 103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
 
44951
#endif
 
44952
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44953
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
44954
 
 
44955
#line 107 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
 
44956
#endif
 
44957
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
44958
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
44959
 
 
44960
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
44961
// This file is part of PUMA.
 
44962
// Copyright (C) 1999-2003  The PUMA developer team.
 
44963
//                                                                
 
44964
// This program is free software;  you can redistribute it and/or 
 
44965
// modify it under the terms of the GNU General Public License as 
 
44966
// published by the Free Software Foundation; either version 2 of 
 
44967
// the License, or (at your option) any later version.            
 
44968
//                                                                
 
44969
// This program is distributed in the hope that it will be useful,
 
44970
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
44971
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
44972
// GNU General Public License for more details.                   
 
44973
//                                                                
 
44974
// You should have received a copy of the GNU General Public      
 
44975
// License along with this program; if not, write to the Free     
 
44976
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
44977
// MA  02111-1307  USA                                            
 
44978
 
 
44979
#ifndef __ext_ac_keywords_ah__
 
44980
#define __ext_ac_keywords_ah__
 
44981
 
 
44982
 
 
44983
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
44984
 
 
44985
#line 44986 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
44986
 
 
44987
#ifndef __ac_fwd_ExtACKeywords__
 
44988
#define __ac_fwd_ExtACKeywords__
 
44989
class ExtACKeywords;
 
44990
namespace AC {
 
44991
  template <class JoinPoint>
 
44992
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
 
44993
  template <class JoinPoint>
 
44994
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
 
44995
  template <class JoinPoint>
 
44996
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
38798
44997
}
38799
 
 
38800
 
 
38801
 
#line 38802 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38802
 
class WinIfExists;
38803
 
class WinImportHandler;
38804
 
class WinMacros;
38805
 
class ExtGnu;
38806
 
class ExtAC;
38807
 
class ExtACBuilderCoupling;
38808
 
class ExtACSyntaxCoupling;
38809
 
class ExtACTree;
38810
 
class ExtACKeywords;
38811
 
class WinAsm;
38812
 
class WinDeclSpecs;
38813
 
class WinMemberExplSpec;
38814
 
class WinTypeKeywords;
38815
 
class PragmaOnceUnitState;
38816
 
class PragmaOnce;
38817
 
class CCExprResolve;
38818
 
class CExprResolve;
38819
 
 
38820
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38821
 
class CMatchSyntax {
38822
 
#line 38823 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38823
 
 
38824
 
public:
38825
 
  static CMatchSyntax *aspectof () {
38826
 
    static CMatchSyntax __instance;
 
44998
#endif
 
44999
 
 
45000
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
45001
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
45002
#endif
 
45003
 
 
45004
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
45005
// This file is part of PUMA.
 
45006
// Copyright (C) 1999-2003  The PUMA developer team.
 
45007
//                                                                
 
45008
// This program is free software;  you can redistribute it and/or 
 
45009
// modify it under the terms of the GNU General Public License as 
 
45010
// published by the Free Software Foundation; either version 2 of 
 
45011
// the License, or (at your option) any later version.            
 
45012
//                                                                
 
45013
// This program is distributed in the hope that it will be useful,
 
45014
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
45015
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
45016
// GNU General Public License for more details.                   
 
45017
//                                                                
 
45018
// You should have received a copy of the GNU General Public      
 
45019
// License along with this program; if not, write to the Free     
 
45020
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
45021
// MA  02111-1307  USA                                            
 
45022
 
 
45023
#ifndef __CProject_h__
 
45024
#define __CProject_h__
 
45025
 
 
45026
// Special project derivation for C++ sources.
 
45027
 
 
45028
#include "Puma/Config.h"
 
45029
#include "Puma/Project.h"
 
45030
#include "Puma/CScanner.h"
 
45031
#include "Puma/ErrorStream.h"
 
45032
 
 
45033
namespace Puma {
 
45034
 
 
45035
 
 
45036
class Source;
 
45037
class CTypeInfo;
 
45038
 
 
45039
 
 
45040
#line 45041 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
45041
} // closed Puma
 
45042
class CCExprResolve;
 
45043
class CExprResolve;
 
45044
class WinIfExists;
 
45045
class WinImportHandler;
 
45046
class WinMacros;
 
45047
class WinAsm;
 
45048
class WinDeclSpecs;
 
45049
class WinMemberExplSpec;
 
45050
class WinTypeKeywords;
 
45051
class WinFriend;
 
45052
class ExtAC;
 
45053
class ExtACBuilderCoupling;
 
45054
class ExtACSyntaxCoupling;
 
45055
class ExtACTree;
 
45056
class ExtACKeywords;
 
45057
class ExtGnu;
 
45058
class PragmaOnceUnitState;
 
45059
class PragmaOnce;
 
45060
class CMatchSyntax;
 
45061
namespace Puma {
 
45062
 
 
45063
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
45064
class CProject : public Project {
 
45065
#line 45066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
45066
  friend class ::CCExprResolve;
 
45067
  friend class ::CExprResolve;
 
45068
  friend class ::WinIfExists;
 
45069
  friend class ::WinImportHandler;
 
45070
  friend class ::WinMacros;
 
45071
  friend class ::WinAsm;
 
45072
  friend class ::WinDeclSpecs;
 
45073
  friend class ::WinMemberExplSpec;
 
45074
  friend class ::WinTypeKeywords;
 
45075
  friend class ::WinFriend;
 
45076
  friend class ::ExtAC;
 
45077
  friend class ::ExtACBuilderCoupling;
 
45078
  friend class ::ExtACSyntaxCoupling;
 
45079
  friend class ::ExtACTree;
 
45080
  friend class ::ExtACKeywords;
 
45081
  friend class ::ExtGnu;
 
45082
  friend class ::PragmaOnceUnitState;
 
45083
  friend class ::PragmaOnce;
 
45084
  friend class ::CMatchSyntax;
 
45085
 
 
45086
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
45087
 
 
45088
  Config _config;
 
45089
  CScanner _scanner;
 
45090
 
 
45091
public:
 
45092
  CProject (ErrorStream &e);
 
45093
 
 
45094
  // Constructor: Add some source directories.
 
45095
  CProject (ErrorStream &, const char *defs, 
 
45096
               const char *decls = (const char*)0); 
 
45097
 
 
45098
  // Constructor: Setup preprocessor configuration according to
 
45099
  // command line parameter and the global config file and
 
45100
  // add some source directories.
 
45101
  CProject (ErrorStream &, int &argc, char **&argv, 
 
45102
            const char *defs = (const char*)0, 
 
45103
            const char *decls = (const char*)0);
 
45104
 
 
45105
public: // Project configuration 
 
45106
  // Get the preprocessor configuration.
 
45107
  Config &config ();
 
45108
 
 
45109
  // Configure the project from the command line or a file.
 
45110
  virtual void configure (Config &);
 
45111
 
 
45112
  // Add a new file to the project.
 
45113
  Unit *addFile (Filename file);
 
45114
 
 
45115
public: // Scanner interface
 
45116
  // Get the scanner.
 
45117
  CScanner &scanner ();
 
45118
 
 
45119
  // Scan the file `file' or the source if given. When
 
45120
  // scanning a source the resulting unit gets the name `file'.
 
45121
  
 
45122
#line 45123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
45123
public: __attribute__((always_inline)) inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
 
45124
 
 
45125
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CProject.h"
 
45126
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
 
45127
                          bool isFile = true);
 
45128
        
 
45129
  // Scan a string. The resulting unit gets the name `name'.
 
45130
  // (and will not be registered at the unit manager!)
 
45131
  virtual Unit *scanString (const char *str, 
 
45132
                            const char *name = (const char*)0);
 
45133
 
 
45134
public: // Miscellaneous Functions
 
45135
 
 
45136
  // Give the filename needed to include a particular header file
 
45137
  Filename getInclString (Filename filename);
 
45138
 
 
45139
private:
 
45140
  // Map the type string from --size-type and --ptrdiff-type
 
45141
  // to real Puma type.
 
45142
  CTypeInfo *mapType (const char *) const;
 
45143
};
 
45144
 
 
45145
inline Config &CProject::config () 
 
45146
 { return _config; }
 
45147
inline CScanner &CProject::scanner () 
 
45148
 { return _scanner; }
 
45149
 
 
45150
 
 
45151
} // namespace Puma
 
45152
 
 
45153
#endif /* __CProject_h__ */
 
45154
 
 
45155
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
45156
// This file is part of PUMA.
 
45157
// Copyright (C) 1999-2003  The PUMA developer team.
 
45158
//                                                                
 
45159
// This program is free software;  you can redistribute it and/or 
 
45160
// modify it under the terms of the GNU General Public License as 
 
45161
// published by the Free Software Foundation; either version 2 of 
 
45162
// the License, or (at your option) any later version.            
 
45163
//                                                                
 
45164
// This program is distributed in the hope that it will be useful,
 
45165
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
45166
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
45167
// GNU General Public License for more details.                   
 
45168
//                                                                
 
45169
// You should have received a copy of the GNU General Public      
 
45170
// License along with this program; if not, write to the Free     
 
45171
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
45172
// MA  02111-1307  USA                                            
 
45173
 
 
45174
#ifndef __FileUnit__
 
45175
#define __FileUnit__
 
45176
 
 
45177
// Special Unit for files. Knows its last save location and the
 
45178
// absolute path of the corresponding file.
 
45179
 
 
45180
 
 
45181
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
45182
namespace Puma {
 
45183
 
 
45184
 
 
45185
class Project;
 
45186
 
 
45187
 
 
45188
#line 45189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
45189
} // closed Puma
 
45190
class CCExprResolve;
 
45191
class CExprResolve;
 
45192
class WinIfExists;
 
45193
class WinImportHandler;
 
45194
class WinMacros;
 
45195
class WinAsm;
 
45196
class WinDeclSpecs;
 
45197
class WinMemberExplSpec;
 
45198
class WinTypeKeywords;
 
45199
class WinFriend;
 
45200
class ExtAC;
 
45201
class ExtACBuilderCoupling;
 
45202
class ExtACSyntaxCoupling;
 
45203
class ExtACTree;
 
45204
class ExtACKeywords;
 
45205
class ExtGnu;
 
45206
class PragmaOnceUnitState;
 
45207
class PragmaOnce;
 
45208
class CMatchSyntax;
 
45209
namespace Puma {
 
45210
 
 
45211
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
45212
class FileUnit : public Unit {
 
45213
#line 45214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
45214
  friend class ::CCExprResolve;
 
45215
  friend class ::CExprResolve;
 
45216
  friend class ::WinIfExists;
 
45217
  friend class ::WinImportHandler;
 
45218
  friend class ::WinMacros;
 
45219
  friend class ::WinAsm;
 
45220
  friend class ::WinDeclSpecs;
 
45221
  friend class ::WinMemberExplSpec;
 
45222
  friend class ::WinTypeKeywords;
 
45223
  friend class ::WinFriend;
 
45224
  friend class ::ExtAC;
 
45225
  friend class ::ExtACBuilderCoupling;
 
45226
  friend class ::ExtACSyntaxCoupling;
 
45227
  friend class ::ExtACTree;
 
45228
  friend class ::ExtACKeywords;
 
45229
  friend class ::ExtGnu;
 
45230
  friend class ::PragmaOnceUnitState;
 
45231
  friend class ::PragmaOnce;
 
45232
  friend class ::CMatchSyntax;
 
45233
 
 
45234
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/FileUnit.h"
 
45235
 
 
45236
  char *_lastLocation; 
 
45237
  char *_absolutePath;
 
45238
  
 
45239
  Project *_project;
 
45240
  bool _isBelow;
 
45241
 
 
45242
public:
 
45243
  FileUnit ();
 
45244
  FileUnit (Unit &);
 
45245
  FileUnit (const List &);
 
45246
  virtual ~FileUnit ();
 
45247
            
 
45248
  virtual void name (const char *);        
 
45249
  void setLocation (const char *);    
 
45250
        
 
45251
  char *lastLocation () const;
 
45252
  char *absolutePath () const;
 
45253
  bool isFile () const;
 
45254
  
 
45255
  // Generates the absolute pathname to the file.
 
45256
  static char *absolutePath (const char *);
 
45257
  static char *resolvePath (const char *);
 
45258
  
 
45259
  // File belongs to given project?
 
45260
  bool belongsTo (Project &);
 
45261
};
 
45262
 
 
45263
inline FileUnit::FileUnit () : 
 
45264
  Unit (), 
 
45265
  _lastLocation ((char*)0), 
 
45266
  _absolutePath ((char*)0),
 
45267
  _project (0),
 
45268
  _isBelow (false)
 
45269
 {}
 
45270
inline FileUnit::FileUnit (Unit &unit) : 
 
45271
  Unit (unit), 
 
45272
  _lastLocation ((char*)0), 
 
45273
  _absolutePath ((char*)0),
 
45274
  _project (0),
 
45275
  _isBelow (false)
 
45276
 {}
 
45277
inline FileUnit::FileUnit (const List &list) : 
 
45278
  Unit (list), 
 
45279
  _lastLocation ((char*)0), 
 
45280
  _absolutePath ((char*)0),
 
45281
  _project (0),
 
45282
  _isBelow (false)  
 
45283
 {}
 
45284
inline FileUnit::~FileUnit () 
 
45285
 { if (_lastLocation) delete[] _lastLocation; 
 
45286
   if (_absolutePath) delete[] _absolutePath; }
 
45287
            
 
45288
inline char *FileUnit::lastLocation () const 
 
45289
 { return _lastLocation; }
 
45290
inline char *FileUnit::absolutePath () const 
 
45291
 { return _absolutePath; }
 
45292
inline bool FileUnit::isFile () const 
 
45293
 { return true; }
 
45294
 
 
45295
 
 
45296
} // namespace Puma
 
45297
 
 
45298
#endif /* __FileUnit__ */
 
45299
 
 
45300
#line 27 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45301
// *****************************************
 
45302
// AspectC++ keyword handling in the scanner
 
45303
// *****************************************
 
45304
 
 
45305
#line 45306 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
45306
class CCExprResolve;
 
45307
class CExprResolve;
 
45308
class WinIfExists;
 
45309
class WinImportHandler;
 
45310
class WinMacros;
 
45311
class WinAsm;
 
45312
class WinDeclSpecs;
 
45313
class WinMemberExplSpec;
 
45314
class WinTypeKeywords;
 
45315
class WinFriend;
 
45316
class ExtAC;
 
45317
class ExtACBuilderCoupling;
 
45318
class ExtACSyntaxCoupling;
 
45319
class ExtACTree;
 
45320
class ExtGnu;
 
45321
class PragmaOnceUnitState;
 
45322
class PragmaOnce;
 
45323
class CMatchSyntax;
 
45324
 
 
45325
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45326
class ExtACKeywords {
 
45327
#line 45328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
45328
 
 
45329
public:
 
45330
  static ExtACKeywords *aspectof () {
 
45331
    static ExtACKeywords __instance;
38827
45332
    return &__instance;
38828
45333
  }
38829
 
  static CMatchSyntax *aspectOf () {
 
45334
  static ExtACKeywords *aspectOf () {
38830
45335
    return aspectof ();
38831
45336
  }
38832
45337
private:
38833
45338
 
38834
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
45339
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
38835
45340
 
38836
 
#line 38837 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
45341
#line 45342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
45342
  friend class ::CCExprResolve;
 
45343
  friend class ::CExprResolve;
38837
45344
  friend class ::WinIfExists;
38838
45345
  friend class ::WinImportHandler;
38839
45346
  friend class ::WinMacros;
38840
 
  friend class ::ExtGnu;
 
45347
  friend class ::WinAsm;
 
45348
  friend class ::WinDeclSpecs;
 
45349
  friend class ::WinMemberExplSpec;
 
45350
  friend class ::WinTypeKeywords;
 
45351
  friend class ::WinFriend;
38841
45352
  friend class ::ExtAC;
38842
45353
  friend class ::ExtACBuilderCoupling;
38843
45354
  friend class ::ExtACSyntaxCoupling;
38844
45355
  friend class ::ExtACTree;
38845
 
  friend class ::ExtACKeywords;
38846
 
  friend class ::WinAsm;
38847
 
  friend class ::WinDeclSpecs;
38848
 
  friend class ::WinMemberExplSpec;
38849
 
  friend class ::WinTypeKeywords;
 
45356
  friend class ::ExtGnu;
38850
45357
  friend class ::PragmaOnceUnitState;
38851
45358
  friend class ::PragmaOnce;
38852
 
  friend class ::CCExprResolve;
38853
 
  friend class ::CExprResolve;
38854
 
 
38855
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38856
 
 
38857
 
  
38858
 
#line 53 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38859
 
 
38860
 
  
38861
 
#line 54 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38862
 
  
38863
 
  
38864
 
#line 55 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38865
 
 
38866
 
  
38867
 
#line 56 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38868
 
 
38869
 
 
38870
 
protected:
38871
 
  // flag to enable/disable parsing match expressions
38872
 
  bool match_expr;
38873
 
 
38874
 
protected:
38875
 
  CMatchSyntax () : match_expr (false) {}
38876
 
  
38877
 
  // introduce wildcard rules to CSyntax and CCSyntax
38878
 
  
38879
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38880
 
 
38881
 
  
38882
 
#line 67 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38883
 
 
38884
 
 
38885
 
  // extend CBuilder
38886
 
  
38887
 
#line 70 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38888
 
 
38889
 
 
38890
 
  // extend CSemantic
38891
 
  
38892
 
#line 85 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38893
 
 
38894
 
 
38895
 
  // let first parse wildcards before parsing anything else
38896
 
  
38897
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38898
 
 
38899
 
public: template<class JoinPoint> void __a0_around 
38900
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38901
 
 
38902
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38903
 
(JoinPoint *tjp)
38904
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38905
 
 {
38906
 
#line 38907 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38907
 
 
38908
 
  JoinPoint *&thisJoinPoint = tjp;
38909
 
 
38910
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38911
 
 
38912
 
#line 38913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38913
 
 
38914
 
  typedef typename JoinPoint::That __JP_That;
38915
 
  typedef typename JoinPoint::Target __JP_Target;
38916
 
  typedef typename JoinPoint::Result __JP_Result;
38917
 
 
38918
 
#line 89 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38919
 
 
38920
 
    if (match_expr &&
38921
 
        thisJoinPoint->that ()->parse (&__JP_That
38922
 
#line 91 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38923
 
::wildcards)) 
38924
 
      *(CTree**)thisJoinPoint->result () = 
38925
 
        thisJoinPoint->that ()->builder ().get_node (); 
38926
 
    else 
38927
 
      thisJoinPoint->action ().trigger (); 
38928
 
  }
38929
 
#line 38930 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38930
 
 
38931
 
protected:
38932
 
 
38933
 
#line 96 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38934
 
 
38935
 
 
38936
 
  // extend the syntax to parse ANYs
38937
 
 
38938
 
  
38939
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38940
 
 
38941
 
public: template<class JoinPoint> void __a1_around 
38942
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38943
 
 
38944
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38945
 
(JoinPoint *tjp)
38946
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38947
 
 {
38948
 
#line 38949 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38949
 
 
38950
 
  JoinPoint *&thisJoinPoint = tjp;
38951
 
 
38952
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38953
 
 
38954
 
#line 38955 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38955
 
 
38956
 
  typedef typename JoinPoint::That __JP_That;
38957
 
  typedef typename JoinPoint::Target __JP_Target;
38958
 
  typedef typename JoinPoint::Result __JP_Result;
38959
 
 
38960
 
#line 101 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38961
 
 
38962
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_EXPR)) {
38963
 
      thisJoinPoint->that ()->parse (&__JP_That
38964
 
#line 103 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38965
 
::wc_extension); 
38966
 
      *(CTree**)thisJoinPoint->result () = 
38967
 
        thisJoinPoint->that ()->builder ().any (); 
38968
 
    } else 
38969
 
      thisJoinPoint->action ().trigger (); 
38970
 
  }
38971
 
#line 38972 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38972
 
 
38973
 
protected:
38974
 
 
38975
 
#line 108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38976
 
 
38977
 
 
38978
 
  
38979
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38980
 
 
38981
 
public: template<class JoinPoint> void __a2_around 
38982
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38983
 
 
38984
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38985
 
(JoinPoint *tjp)
38986
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38987
 
 {
38988
 
#line 38989 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38989
 
 
38990
 
  JoinPoint *&thisJoinPoint = tjp;
38991
 
 
38992
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
38993
 
 
38994
 
#line 38995 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
38995
 
 
38996
 
  typedef typename JoinPoint::That __JP_That;
38997
 
  typedef typename JoinPoint::Target __JP_Target;
38998
 
  typedef typename JoinPoint::Result __JP_Result;
38999
 
 
39000
 
#line 111 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39001
 
 
39002
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_EXPR_LIST)) {
39003
 
      thisJoinPoint->that ()->parse (&__JP_That
39004
 
#line 113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39005
 
::wc_extension); 
39006
 
      *(CTree**)thisJoinPoint->result () = 
39007
 
        thisJoinPoint->that ()->builder ().any_list (); 
39008
 
    } else 
39009
 
      thisJoinPoint->action ().trigger (); 
39010
 
  }
39011
 
#line 39012 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39012
 
 
39013
 
protected:
39014
 
 
39015
 
#line 118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39016
 
 
39017
 
 
39018
 
  
39019
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39020
 
 
39021
 
public: template<class JoinPoint> void __a3_around 
39022
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39023
 
 
39024
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39025
 
(JoinPoint *tjp)
39026
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39027
 
 {
39028
 
#line 39029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39029
 
 
39030
 
  JoinPoint *&thisJoinPoint = tjp;
39031
 
 
39032
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39033
 
 
39034
 
#line 39035 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39035
 
 
39036
 
  typedef typename JoinPoint::That __JP_That;
39037
 
  typedef typename JoinPoint::Target __JP_Target;
39038
 
  typedef typename JoinPoint::Result __JP_Result;
39039
 
 
39040
 
#line 121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39041
 
 
39042
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_ID_EXPR)) {
39043
 
      thisJoinPoint->that ()->parse (&__JP_That
39044
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39045
 
::wc_extension); 
39046
 
      *(CTree**)thisJoinPoint->result () = 
39047
 
        thisJoinPoint->that ()->builder ().any (); 
39048
 
    } else 
39049
 
      thisJoinPoint->action ().trigger (); 
39050
 
  }
39051
 
#line 39052 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39052
 
 
39053
 
protected:
39054
 
 
39055
 
#line 128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39056
 
 
39057
 
 
39058
 
  
39059
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39060
 
 
39061
 
public: template<class JoinPoint> void __a4_around 
39062
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39063
 
 
39064
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39065
 
(JoinPoint *tjp)
39066
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39067
 
 {
39068
 
#line 39069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39069
 
 
39070
 
  JoinPoint *&thisJoinPoint = tjp;
39071
 
 
39072
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39073
 
 
39074
 
#line 39075 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39075
 
 
39076
 
  typedef typename JoinPoint::That __JP_That;
39077
 
  typedef typename JoinPoint::Target __JP_Target;
39078
 
  typedef typename JoinPoint::Result __JP_Result;
39079
 
 
39080
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39081
 
 
39082
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_IDENTIFIER)) {
39083
 
      thisJoinPoint->that ()->parse (&__JP_That
39084
 
#line 133 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39085
 
::wc_extension); 
39086
 
      *(CTree**)thisJoinPoint->result () = 
39087
 
        thisJoinPoint->that ()->builder ().any (); 
39088
 
    } else 
39089
 
      thisJoinPoint->action ().trigger (); 
39090
 
  }
39091
 
#line 39092 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39092
 
 
39093
 
protected:
39094
 
 
39095
 
#line 138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39096
 
 
39097
 
 
39098
 
  
39099
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39100
 
 
39101
 
public: template<class JoinPoint> void __a5_after 
39102
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39103
 
 
39104
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39105
 
(JoinPoint *tjp)
39106
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39107
 
 {
39108
 
#line 39109 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39109
 
 
39110
 
  typedef typename JoinPoint::That __JP_That;
39111
 
  typedef typename JoinPoint::Target __JP_Target;
39112
 
  typedef typename JoinPoint::Result __JP_Result;
39113
 
 
39114
 
#line 141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39115
 
 
39116
 
      tjp->that ()->_decl_spec_1.set (TOK_ANY_DECL_SPEC);
39117
 
  }
39118
 
#line 39119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39119
 
 
39120
 
protected:
39121
 
 
39122
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39123
 
 
39124
 
  
39125
 
  
39126
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39127
 
 
39128
 
public: template<class JoinPoint> void __a6_after 
39129
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39130
 
 
39131
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39132
 
(JoinPoint *tjp)
39133
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39134
 
 {
39135
 
#line 39136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39136
 
 
39137
 
  typedef typename JoinPoint::That __JP_That;
39138
 
  typedef typename JoinPoint::Target __JP_Target;
39139
 
  typedef typename JoinPoint::Result __JP_Result;
39140
 
 
39141
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39142
 
 
39143
 
    CTree *&result = *(CTree**)tjp->result ();
39144
 
    if (match_expr && !result &&
39145
 
        tjp->that ()->parse (TOK_ANY_DECL_SPEC) &&
39146
 
        tjp->that ()->parse (&__JP_That
39147
 
#line 150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39148
 
::wc_extension)) {
39149
 
      result = tjp->that ()->builder().any ();
39150
 
    }
39151
 
  }
39152
 
#line 39153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39153
 
 
39154
 
protected:
39155
 
 
39156
 
#line 153 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39157
 
 
39158
 
 
39159
 
  
39160
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39161
 
 
39162
 
public: template<class JoinPoint> void __a7_around 
39163
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39164
 
 
39165
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39166
 
(JoinPoint *tjp)
39167
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39168
 
 {
39169
 
#line 39170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39170
 
 
39171
 
  JoinPoint *&thisJoinPoint = tjp;
39172
 
 
39173
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39174
 
 
39175
 
#line 39176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39176
 
 
39177
 
  typedef typename JoinPoint::That __JP_That;
39178
 
  typedef typename JoinPoint::Target __JP_Target;
39179
 
  typedef typename JoinPoint::Result __JP_Result;
39180
 
 
39181
 
#line 156 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39182
 
 
39183
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_DECL_SPEC_SEQ)) {
39184
 
      thisJoinPoint->that ()->parse (&__JP_That
39185
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39186
 
::wc_extension); 
39187
 
      *(CTree**)thisJoinPoint->result () = 
39188
 
        thisJoinPoint->that ()->builder ().any_list (); 
39189
 
    } else 
39190
 
      thisJoinPoint->action ().trigger (); 
39191
 
  }
39192
 
#line 39193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39193
 
 
39194
 
protected:
39195
 
 
39196
 
#line 163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39197
 
 
39198
 
 
39199
 
  
39200
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39201
 
 
39202
 
public: template<class JoinPoint> void __a8_around 
39203
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39204
 
 
39205
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39206
 
(JoinPoint *tjp)
39207
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39208
 
 {
39209
 
#line 39210 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39210
 
 
39211
 
  JoinPoint *&thisJoinPoint = tjp;
39212
 
 
39213
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39214
 
 
39215
 
#line 39216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39216
 
 
39217
 
  typedef typename JoinPoint::That __JP_That;
39218
 
  typedef typename JoinPoint::Target __JP_Target;
39219
 
  typedef typename JoinPoint::Result __JP_Result;
39220
 
 
39221
 
#line 166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39222
 
 
39223
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_INIT_DECLARATOR_LIST)) {
39224
 
      thisJoinPoint->that ()->parse (&__JP_That
39225
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39226
 
::wc_extension); 
39227
 
      *(CTree**)thisJoinPoint->result () = 
39228
 
        thisJoinPoint->that ()->builder ().any_list (); 
39229
 
    } else 
39230
 
      thisJoinPoint->action ().trigger (); 
39231
 
  }
39232
 
#line 39233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39233
 
 
39234
 
protected:
39235
 
 
39236
 
#line 173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39237
 
 
39238
 
 
39239
 
  
39240
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39241
 
 
39242
 
public: template<class JoinPoint> void __a9_around 
39243
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39244
 
 
39245
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39246
 
(JoinPoint *tjp)
39247
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39248
 
 {
39249
 
#line 39250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39250
 
 
39251
 
  JoinPoint *&thisJoinPoint = tjp;
39252
 
 
39253
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39254
 
 
39255
 
#line 39256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39256
 
 
39257
 
  typedef typename JoinPoint::That __JP_That;
39258
 
  typedef typename JoinPoint::Target __JP_Target;
39259
 
  typedef typename JoinPoint::Result __JP_Result;
39260
 
 
39261
 
#line 176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39262
 
 
39263
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_INIT_DECLARATOR)) {
39264
 
      thisJoinPoint->that ()->parse (&__JP_That
39265
 
#line 178 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39266
 
::wc_extension); 
39267
 
      *(CTree**)thisJoinPoint->result () = 
39268
 
        thisJoinPoint->that ()->builder ().any (); 
39269
 
    } else 
39270
 
      thisJoinPoint->action ().trigger (); 
39271
 
  }
39272
 
#line 39273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39273
 
 
39274
 
protected:
39275
 
 
39276
 
#line 183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39277
 
 
39278
 
 
39279
 
  
39280
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39281
 
 
39282
 
public: template<class JoinPoint> void __a10_around 
39283
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39284
 
 
39285
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39286
 
(JoinPoint *tjp)
39287
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39288
 
 {
39289
 
#line 39290 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39290
 
 
39291
 
  JoinPoint *&thisJoinPoint = tjp;
39292
 
 
39293
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39294
 
 
39295
 
#line 39296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39296
 
 
39297
 
  typedef typename JoinPoint::That __JP_That;
39298
 
  typedef typename JoinPoint::Target __JP_Target;
39299
 
  typedef typename JoinPoint::Result __JP_Result;
39300
 
 
39301
 
#line 186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39302
 
 
39303
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_DECLARATOR)) {
39304
 
      thisJoinPoint->that ()->parse (&__JP_That
39305
 
#line 188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39306
 
::wc_extension); 
39307
 
      *(CTree**)thisJoinPoint->result () = 
39308
 
        thisJoinPoint->that ()->builder ().any (); 
39309
 
    } else 
39310
 
      thisJoinPoint->action ().trigger (); 
39311
 
  }
39312
 
#line 39313 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39313
 
 
39314
 
protected:
39315
 
 
39316
 
#line 193 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39317
 
 
39318
 
 
39319
 
  
39320
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39321
 
 
39322
 
public: template<class JoinPoint> void __a11_around 
39323
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39324
 
 
39325
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39326
 
(JoinPoint *tjp)
39327
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39328
 
 {
39329
 
#line 39330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39330
 
 
39331
 
  JoinPoint *&thisJoinPoint = tjp;
39332
 
 
39333
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39334
 
 
39335
 
#line 39336 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39336
 
 
39337
 
  typedef typename JoinPoint::That __JP_That;
39338
 
  typedef typename JoinPoint::Target __JP_Target;
39339
 
  typedef typename JoinPoint::Result __JP_Result;
39340
 
 
39341
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39342
 
 
39343
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_INIT)) {
39344
 
      thisJoinPoint->that ()->parse (&__JP_That
39345
 
#line 198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39346
 
::wc_extension); 
39347
 
      *(CTree**)thisJoinPoint->result () = 
39348
 
        thisJoinPoint->that ()->builder ().any (); 
39349
 
    } else 
39350
 
      thisJoinPoint->action ().trigger (); 
39351
 
  }
39352
 
#line 39353 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39353
 
 
39354
 
protected:
39355
 
 
39356
 
#line 203 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39357
 
 
39358
 
 
39359
 
  
39360
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39361
 
 
39362
 
public: template<class JoinPoint> void __a12_around 
39363
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39364
 
 
39365
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39366
 
(JoinPoint *tjp)
39367
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39368
 
 {
39369
 
#line 39370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39370
 
 
39371
 
  JoinPoint *&thisJoinPoint = tjp;
39372
 
 
39373
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39374
 
 
39375
 
#line 39376 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39376
 
 
39377
 
  typedef typename JoinPoint::That __JP_That;
39378
 
  typedef typename JoinPoint::Target __JP_Target;
39379
 
  typedef typename JoinPoint::Result __JP_Result;
39380
 
 
39381
 
#line 206 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39382
 
 
39383
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_ARG_DECL_SEQ)) {
39384
 
      thisJoinPoint->that ()->parse (&__JP_That
39385
 
#line 208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39386
 
::wc_extension); 
39387
 
      *(CTree**)thisJoinPoint->result () = 
39388
 
        thisJoinPoint->that ()->builder ().any_list (); 
39389
 
    } else 
39390
 
      thisJoinPoint->action ().trigger (); 
39391
 
  }
39392
 
#line 39393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39393
 
 
39394
 
protected:
39395
 
 
39396
 
#line 213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39397
 
 
39398
 
 
39399
 
  
39400
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39401
 
 
39402
 
public: template<class JoinPoint> void __a13_around 
39403
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39404
 
 
39405
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39406
 
(JoinPoint *tjp)
39407
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39408
 
 {
39409
 
#line 39410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39410
 
 
39411
 
  JoinPoint *&thisJoinPoint = tjp;
39412
 
 
39413
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39414
 
 
39415
 
#line 39416 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39416
 
 
39417
 
  typedef typename JoinPoint::That __JP_That;
39418
 
  typedef typename JoinPoint::Target __JP_Target;
39419
 
  typedef typename JoinPoint::Result __JP_Result;
39420
 
 
39421
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39422
 
 
39423
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_FCT_BODY)) {
39424
 
      thisJoinPoint->that ()->parse (&__JP_That
39425
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39426
 
::wc_extension); 
39427
 
      *(CTree**)thisJoinPoint->result () = 
39428
 
        thisJoinPoint->that ()->builder ().any (); 
39429
 
    } else 
39430
 
      thisJoinPoint->action ().trigger (); 
39431
 
  }
39432
 
#line 39433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39433
 
 
39434
 
protected:
39435
 
 
39436
 
#line 223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39437
 
 
39438
 
 
39439
 
  
39440
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39441
 
 
39442
 
public: template<class JoinPoint> void __a14_around 
39443
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39444
 
 
39445
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39446
 
(JoinPoint *tjp)
39447
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39448
 
 {
39449
 
#line 39450 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39450
 
 
39451
 
  JoinPoint *&thisJoinPoint = tjp;
39452
 
 
39453
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39454
 
 
39455
 
#line 39456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39456
 
 
39457
 
  typedef typename JoinPoint::That __JP_That;
39458
 
  typedef typename JoinPoint::Target __JP_Target;
39459
 
  typedef typename JoinPoint::Result __JP_Result;
39460
 
 
39461
 
#line 226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39462
 
 
39463
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_CLASS_SPEC)) {
39464
 
      thisJoinPoint->that ()->parse (&__JP_That
39465
 
#line 228 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39466
 
::wc_extension); 
39467
 
      *(CTree**)thisJoinPoint->result () = 
39468
 
        thisJoinPoint->that ()->builder ().any (); 
39469
 
    } else 
39470
 
      thisJoinPoint->action ().trigger (); 
39471
 
  }
39472
 
#line 39473 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39473
 
 
39474
 
protected:
39475
 
 
39476
 
#line 233 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39477
 
 
39478
 
 
39479
 
  
39480
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39481
 
 
39482
 
public: template<class JoinPoint> void __a15_around 
39483
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39484
 
 
39485
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39486
 
(JoinPoint *tjp)
39487
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39488
 
 {
39489
 
#line 39490 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39490
 
 
39491
 
  JoinPoint *&thisJoinPoint = tjp;
39492
 
 
39493
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39494
 
 
39495
 
#line 39496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39496
 
 
39497
 
  typedef typename JoinPoint::That __JP_That;
39498
 
  typedef typename JoinPoint::Target __JP_Target;
39499
 
  typedef typename JoinPoint::Result __JP_Result;
39500
 
 
39501
 
#line 236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39502
 
 
39503
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_MEMBER_SPEC)) {
39504
 
      thisJoinPoint->that ()->parse (&__JP_That
39505
 
#line 238 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39506
 
::wc_extension); 
39507
 
      *(CTree**)thisJoinPoint->result () = 
39508
 
        thisJoinPoint->that ()->builder ().any_list (); 
39509
 
    } else 
39510
 
      thisJoinPoint->action ().trigger (); 
39511
 
  }
39512
 
#line 39513 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39513
 
 
39514
 
protected:
39515
 
 
39516
 
#line 243 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39517
 
 
39518
 
 
39519
 
  
39520
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39521
 
 
39522
 
public: template<class JoinPoint> void __a16_around 
39523
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39524
 
 
39525
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39526
 
(JoinPoint *tjp)
39527
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39528
 
 {
39529
 
#line 39530 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39530
 
 
39531
 
  JoinPoint *&thisJoinPoint = tjp;
39532
 
 
39533
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39534
 
 
39535
 
#line 39536 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39536
 
 
39537
 
  typedef typename JoinPoint::That __JP_That;
39538
 
  typedef typename JoinPoint::Target __JP_Target;
39539
 
  typedef typename JoinPoint::Result __JP_Result;
39540
 
 
39541
 
#line 246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39542
 
 
39543
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_MEMBER_DECL)) {
39544
 
      thisJoinPoint->that ()->parse (&__JP_That
39545
 
#line 248 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39546
 
::wc_extension); 
39547
 
      *(CTree**)thisJoinPoint->result () = 
39548
 
        thisJoinPoint->that ()->builder ().any (); 
39549
 
    } else 
39550
 
      thisJoinPoint->action ().trigger (); 
39551
 
  }
39552
 
#line 39553 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39553
 
 
39554
 
protected:
39555
 
 
39556
 
#line 253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39557
 
 
39558
 
 
39559
 
  
39560
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39561
 
 
39562
 
public: template<class JoinPoint> void __a17_around 
39563
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39564
 
 
39565
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39566
 
(JoinPoint *tjp)
39567
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39568
 
 {
39569
 
#line 39570 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39570
 
 
39571
 
  JoinPoint *&thisJoinPoint = tjp;
39572
 
 
39573
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39574
 
 
39575
 
#line 39576 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39576
 
 
39577
 
  typedef typename JoinPoint::That __JP_That;
39578
 
  typedef typename JoinPoint::Target __JP_Target;
39579
 
  typedef typename JoinPoint::Result __JP_Result;
39580
 
 
39581
 
#line 256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39582
 
 
39583
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_STMT)) {
39584
 
      thisJoinPoint->that ()->parse (&__JP_That
39585
 
#line 258 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39586
 
::wc_extension); 
39587
 
      *(CTree**)thisJoinPoint->result () = 
39588
 
        thisJoinPoint->that ()->builder ().any (); 
39589
 
    } else 
39590
 
      thisJoinPoint->action ().trigger (); 
39591
 
  }
39592
 
#line 39593 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39593
 
 
39594
 
protected:
39595
 
 
39596
 
#line 263 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39597
 
 
39598
 
 
39599
 
  
39600
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39601
 
 
39602
 
public: template<class JoinPoint> void __a18_around 
39603
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39604
 
 
39605
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39606
 
(JoinPoint *tjp)
39607
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39608
 
 {
39609
 
#line 39610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39610
 
 
39611
 
  JoinPoint *&thisJoinPoint = tjp;
39612
 
 
39613
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39614
 
 
39615
 
#line 39616 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39616
 
 
39617
 
  typedef typename JoinPoint::That __JP_That;
39618
 
  typedef typename JoinPoint::Target __JP_Target;
39619
 
  typedef typename JoinPoint::Result __JP_Result;
39620
 
 
39621
 
#line 266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39622
 
 
39623
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_STMT_SEQ)) {
39624
 
      thisJoinPoint->that ()->parse (&__JP_That
39625
 
#line 268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39626
 
::wc_extension); 
39627
 
      *(CTree**)thisJoinPoint->result () = 
39628
 
        thisJoinPoint->that ()->builder ().any_list (); 
39629
 
    } else 
39630
 
      thisJoinPoint->action ().trigger (); 
39631
 
  }
39632
 
#line 39633 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39633
 
 
39634
 
protected:
39635
 
 
39636
 
#line 273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39637
 
 
39638
 
 
39639
 
  
39640
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39641
 
 
39642
 
public: template<class JoinPoint> void __a19_around 
39643
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39644
 
 
39645
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39646
 
(JoinPoint *tjp)
39647
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39648
 
 {
39649
 
#line 39650 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39650
 
 
39651
 
  JoinPoint *&thisJoinPoint = tjp;
39652
 
 
39653
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39654
 
 
39655
 
#line 39656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39656
 
 
39657
 
  typedef typename JoinPoint::That __JP_That;
39658
 
  typedef typename JoinPoint::Target __JP_Target;
39659
 
  typedef typename JoinPoint::Result __JP_Result;
39660
 
 
39661
 
#line 276 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39662
 
 
39663
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_BASE_CLAUSE)) {
39664
 
      thisJoinPoint->that ()->parse (&__JP_That
39665
 
#line 278 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39666
 
::wc_extension); 
39667
 
      *(CTree**)thisJoinPoint->result () = 
39668
 
        thisJoinPoint->that ()->builder ().any_list (); 
39669
 
    } else 
39670
 
      thisJoinPoint->action ().trigger (); 
39671
 
  }
39672
 
#line 39673 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39673
 
 
39674
 
protected:
39675
 
 
39676
 
#line 283 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39677
 
 
39678
 
 
39679
 
  
39680
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39681
 
 
39682
 
public: template<class JoinPoint> void __a20_around 
39683
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39684
 
 
39685
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39686
 
(JoinPoint *tjp)
39687
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39688
 
 {
39689
 
#line 39690 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39690
 
 
39691
 
  JoinPoint *&thisJoinPoint = tjp;
39692
 
 
39693
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39694
 
 
39695
 
#line 39696 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39696
 
 
39697
 
  typedef typename JoinPoint::That __JP_That;
39698
 
  typedef typename JoinPoint::Target __JP_Target;
39699
 
  typedef typename JoinPoint::Result __JP_Result;
39700
 
 
39701
 
#line 286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39702
 
 
39703
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_CTOR_INIT)) {
39704
 
      thisJoinPoint->that ()->parse (&__JP_That
39705
 
#line 288 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39706
 
::wc_extension); 
39707
 
      *(CTree**)thisJoinPoint->result () = 
39708
 
        thisJoinPoint->that ()->builder ().any (); 
39709
 
    } else 
39710
 
      thisJoinPoint->action ().trigger (); 
39711
 
  }
39712
 
#line 39713 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39713
 
 
39714
 
protected:
39715
 
 
39716
 
#line 293 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39717
 
 
39718
 
 
39719
 
  
39720
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39721
 
 
39722
 
public: template<class JoinPoint> void __a21_around 
39723
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39724
 
 
39725
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39726
 
(JoinPoint *tjp)
39727
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39728
 
 {
39729
 
#line 39730 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39730
 
 
39731
 
  JoinPoint *&thisJoinPoint = tjp;
39732
 
 
39733
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39734
 
 
39735
 
#line 39736 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39736
 
 
39737
 
  typedef typename JoinPoint::That __JP_That;
39738
 
  typedef typename JoinPoint::Target __JP_Target;
39739
 
  typedef typename JoinPoint::Result __JP_Result;
39740
 
 
39741
 
#line 296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39742
 
 
39743
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_ANY_MEM_INIT)) {
39744
 
      thisJoinPoint->that ()->parse (&__JP_That
39745
 
#line 298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39746
 
::wc_extension); 
39747
 
      *(CTree**)thisJoinPoint->result () = 
39748
 
        thisJoinPoint->that ()->builder ().any (); 
39749
 
    } else 
39750
 
      thisJoinPoint->action ().trigger (); 
39751
 
  }
39752
 
#line 39753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39753
 
 
39754
 
protected:
39755
 
 
39756
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39757
 
 
39758
 
 
39759
 
  // extend the syntax to be able to parse match trees
39760
 
 
39761
 
  
39762
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39763
 
 
39764
 
public: template<class JoinPoint> void __a22_around 
39765
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39766
 
 
39767
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39768
 
(JoinPoint *tjp)
39769
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39770
 
 {
39771
 
#line 39772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39772
 
 
39773
 
  JoinPoint *&thisJoinPoint = tjp;
39774
 
 
39775
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39776
 
 
39777
 
#line 39778 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39778
 
 
39779
 
  typedef typename JoinPoint::That __JP_That;
39780
 
  typedef typename JoinPoint::Target __JP_Target;
39781
 
  typedef typename JoinPoint::Result __JP_Result;
39782
 
 
39783
 
#line 308 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39784
 
 
39785
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_IS_TYPEDEF)) {
39786
 
      *(CTree**)thisJoinPoint->result () = 
39787
 
        thisJoinPoint->that ()->parse (TOK_ID) ? 
39788
 
        thisJoinPoint->that ()->builder ().is_name () : (CTree*)0; 
39789
 
    } else 
39790
 
      thisJoinPoint->action ().trigger (); 
39791
 
  }
39792
 
#line 39793 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39793
 
 
39794
 
protected:
39795
 
 
39796
 
#line 315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39797
 
 
39798
 
 
39799
 
  
39800
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39801
 
 
39802
 
public: template<class JoinPoint> void __a23_around 
39803
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39804
 
 
39805
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39806
 
(JoinPoint *tjp)
39807
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39808
 
 {
39809
 
#line 39810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39810
 
 
39811
 
  JoinPoint *&thisJoinPoint = tjp;
39812
 
 
39813
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39814
 
 
39815
 
#line 39816 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39816
 
 
39817
 
  typedef typename JoinPoint::That __JP_That;
39818
 
  typedef typename JoinPoint::Target __JP_Target;
39819
 
  typedef typename JoinPoint::Result __JP_Result;
39820
 
 
39821
 
#line 318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39822
 
 
39823
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_IS_CLASS)) {
39824
 
      *(CTree**)thisJoinPoint->result () = 
39825
 
        thisJoinPoint->that ()->parse (TOK_ID) ? 
39826
 
        thisJoinPoint->that ()->builder ().is_name () : (CTree*)0; 
39827
 
    } else 
39828
 
      thisJoinPoint->action ().trigger (); 
39829
 
  }
39830
 
#line 39831 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39831
 
 
39832
 
protected:
39833
 
 
39834
 
#line 325 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39835
 
 
39836
 
 
39837
 
  
39838
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39839
 
 
39840
 
public: template<class JoinPoint> void __a24_around 
39841
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39842
 
 
39843
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39844
 
(JoinPoint *tjp)
39845
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39846
 
 {
39847
 
#line 39848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39848
 
 
39849
 
  JoinPoint *&thisJoinPoint = tjp;
39850
 
 
39851
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39852
 
 
39853
 
#line 39854 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39854
 
 
39855
 
  typedef typename JoinPoint::That __JP_That;
39856
 
  typedef typename JoinPoint::Target __JP_Target;
39857
 
  typedef typename JoinPoint::Result __JP_Result;
39858
 
 
39859
 
#line 328 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39860
 
 
39861
 
    if (match_expr && thisJoinPoint->that ()->parse (TOK_IS_ENUM)) {
39862
 
      *(CTree**)thisJoinPoint->result () = 
39863
 
        thisJoinPoint->that ()->parse (TOK_ID) ? 
39864
 
        thisJoinPoint->that ()->builder ().is_name () : (CTree*)0; 
39865
 
    } else 
39866
 
      thisJoinPoint->action ().trigger (); 
39867
 
  }
39868
 
#line 39869 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39869
 
 
39870
 
protected:
39871
 
 
39872
 
#line 335 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39873
 
 
39874
 
 
39875
 
  // configure parsing match expressions
39876
 
  
39877
 
  
39878
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39879
 
 
39880
 
public: void __a25_before 
39881
 
#line 340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39882
 
 
39883
 
#line 340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39884
 
(Config &config)
39885
 
#line 340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39886
 
 {
39887
 
    match_expr = (config.Option ("--match-expr"));
39888
 
  }
39889
 
#line 39890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
39890
 
 
39891
 
protected:
39892
 
 
39893
 
#line 342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
39894
 
 
 
45359
  friend class ::CMatchSyntax;
 
45360
 
 
45361
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45362
 
 
45363
 
 
45364
  bool _prj_keywords;
 
45365
  Puma::CProject *_project; // active project
 
45366
  
 
45367
protected:
 
45368
  ExtACKeywords () : _prj_keywords (false) {}
 
45369
  
 
45370
public:
 
45371
  // allow/forbid AspectC++ keywords in normal project files
 
45372
  void prj_keywords (bool kw) { _prj_keywords = kw; }
 
45373
  
 
45374
  
 
45375
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45376
 
 
45377
public: void __a0_before 
 
45378
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45379
 
 
45380
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45381
(Puma::CProject &project)
 
45382
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45383
 {
 
45384
    _project = &project;
 
45385
  }
 
45386
  
 
45387
  
 
45388
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45389
 
 
45390
public: template<class JoinPoint> void __a1_before 
 
45391
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45392
 
 
45393
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45394
(JoinPoint *tjp, Puma::Unit &unit)
 
45395
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45396
 {
 
45397
#line 45398 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
45398
 
 
45399
  typedef typename JoinPoint::That __JP_That;
 
45400
  typedef typename JoinPoint::Target __JP_Target;
 
45401
  typedef typename JoinPoint::Result __JP_Result;
 
45402
 
 
45403
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45404
 
 
45405
    if (!unit.isFile ())
 
45406
      return;
 
45407
      
 
45408
    bool ac_kw = _prj_keywords;
 
45409
    // in external files the AspectC++ keywords are always identifiers
 
45410
    if (!((Puma::FileUnit*)&unit)->belongsTo (*_project)) {
 
45411
      ac_kw = false;
 
45412
    }
 
45413
    // in aspect headers keywords are keywords
 
45414
    else if (unit.name () &&
 
45415
      strcmp (unit.name () + strlen (unit.name ()) - 3, ".ah") == 0) {
 
45416
      ac_kw = true;
 
45417
    }
 
45418
    // finally the right flag
 
45419
    tjp->that ()->allow_aspectc (ac_kw);
 
45420
  }
 
45421
  
 
45422
  
 
45423
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45424
 
 
45425
public: template<class JoinPoint> void __a2_before 
 
45426
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45427
 
 
45428
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45429
(JoinPoint *tjp)
 
45430
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45431
 {
 
45432
#line 45433 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
45433
 
 
45434
  typedef typename JoinPoint::That __JP_That;
 
45435
  typedef typename JoinPoint::Target __JP_Target;
 
45436
  typedef typename JoinPoint::Result __JP_Result;
 
45437
 
 
45438
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45439
 
 
45440
    _project = tjp->that ();
 
45441
  }
39895
45442
};
39896
 
#line 39897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
45443
#line 45444 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
39897
45444
 
39898
45445
namespace AC {
39899
45446
  template <class JoinPoint>
39900
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp) {
39901
 
    ::CMatchSyntax::aspectof()->__a0_around (tjp);
39902
 
  }
39903
 
  template <class JoinPoint>
39904
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp) {
39905
 
    ::CMatchSyntax::aspectof()->__a1_around (tjp);
39906
 
  }
39907
 
  template <class JoinPoint>
39908
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp) {
39909
 
    ::CMatchSyntax::aspectof()->__a2_around (tjp);
39910
 
  }
39911
 
  template <class JoinPoint>
39912
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp) {
39913
 
    ::CMatchSyntax::aspectof()->__a3_around (tjp);
39914
 
  }
39915
 
  template <class JoinPoint>
39916
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp) {
39917
 
    ::CMatchSyntax::aspectof()->__a4_around (tjp);
39918
 
  }
39919
 
  template <class JoinPoint>
39920
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp) {
39921
 
    ::CMatchSyntax::aspectof()->__a5_after (tjp);
39922
 
  }
39923
 
  template <class JoinPoint>
39924
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp) {
39925
 
    ::CMatchSyntax::aspectof()->__a6_after (tjp);
39926
 
  }
39927
 
  template <class JoinPoint>
39928
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp) {
39929
 
    ::CMatchSyntax::aspectof()->__a7_around (tjp);
39930
 
  }
39931
 
  template <class JoinPoint>
39932
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp) {
39933
 
    ::CMatchSyntax::aspectof()->__a8_around (tjp);
39934
 
  }
39935
 
  template <class JoinPoint>
39936
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp) {
39937
 
    ::CMatchSyntax::aspectof()->__a9_around (tjp);
39938
 
  }
39939
 
  template <class JoinPoint>
39940
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp) {
39941
 
    ::CMatchSyntax::aspectof()->__a10_around (tjp);
39942
 
  }
39943
 
  template <class JoinPoint>
39944
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp) {
39945
 
    ::CMatchSyntax::aspectof()->__a11_around (tjp);
39946
 
  }
39947
 
  template <class JoinPoint>
39948
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp) {
39949
 
    ::CMatchSyntax::aspectof()->__a12_around (tjp);
39950
 
  }
39951
 
  template <class JoinPoint>
39952
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp) {
39953
 
    ::CMatchSyntax::aspectof()->__a13_around (tjp);
39954
 
  }
39955
 
  template <class JoinPoint>
39956
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp) {
39957
 
    ::CMatchSyntax::aspectof()->__a14_around (tjp);
39958
 
  }
39959
 
  template <class JoinPoint>
39960
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp) {
39961
 
    ::CMatchSyntax::aspectof()->__a15_around (tjp);
39962
 
  }
39963
 
  template <class JoinPoint>
39964
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp) {
39965
 
    ::CMatchSyntax::aspectof()->__a16_around (tjp);
39966
 
  }
39967
 
  template <class JoinPoint>
39968
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp) {
39969
 
    ::CMatchSyntax::aspectof()->__a17_around (tjp);
39970
 
  }
39971
 
  template <class JoinPoint>
39972
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp) {
39973
 
    ::CMatchSyntax::aspectof()->__a18_around (tjp);
39974
 
  }
39975
 
  template <class JoinPoint>
39976
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp) {
39977
 
    ::CMatchSyntax::aspectof()->__a19_around (tjp);
39978
 
  }
39979
 
  template <class JoinPoint>
39980
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp) {
39981
 
    ::CMatchSyntax::aspectof()->__a20_around (tjp);
39982
 
  }
39983
 
  template <class JoinPoint>
39984
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp) {
39985
 
    ::CMatchSyntax::aspectof()->__a21_around (tjp);
39986
 
  }
39987
 
  template <class JoinPoint>
39988
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp) {
39989
 
    ::CMatchSyntax::aspectof()->__a22_around (tjp);
39990
 
  }
39991
 
  template <class JoinPoint>
39992
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp) {
39993
 
    ::CMatchSyntax::aspectof()->__a23_around (tjp);
39994
 
  }
39995
 
  template <class JoinPoint>
39996
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp) {
39997
 
    ::CMatchSyntax::aspectof()->__a24_around (tjp);
39998
 
  }
39999
 
  template <class JoinPoint, class Binding>
40000
 
  inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp) {
40001
 
    typedef typename Binding::template Arg<0> Arg0;
40002
 
    ::CMatchSyntax::aspectof()->__a25_before ((Puma::Config &)Arg0::val (tjp));
 
45447
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
 
45448
    typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a0_before::template Arg<0> Arg0;
 
45449
    ::ExtACKeywords::aspectof()->__a0_before ((Puma::CProject &)Arg0::val (tjp));
 
45450
  }
 
45451
  template <class JoinPoint>
 
45452
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
 
45453
    typedef typename JoinPoint::Binding_ExtACKeywords_ExtACKeywords_a1_before::template Arg<0> Arg0;
 
45454
    ::ExtACKeywords::aspectof()->__a1_before (tjp, (Puma::Unit &)Arg0::val (tjp));
 
45455
  }
 
45456
  template <class JoinPoint>
 
45457
  __attribute((always_inline)) inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
 
45458
    ::ExtACKeywords::aspectof()->__a2_before (tjp);
40003
45459
  }
40004
45460
40005
45461
 
40006
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40007
 
 
40008
 
 
40009
 
// introduce wildcard rules to CSyntax
40010
 
 
40011
 
#line 356 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40012
 
 
40013
 
 
40014
 
// introduce wildcard rules to CCSyntax
40015
 
 
40016
 
#line 362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40017
 
 
40018
 
 
40019
 
// extend CBuilder
40020
 
 
40021
 
#line 378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40022
 
 
40023
 
 
40024
 
 
40025
 
#line 400 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40026
 
 
40027
 
         
40028
 
 
40029
 
#line 414 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40030
 
 
40031
 
 
40032
 
 
40033
 
#line 420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40034
 
 
40035
 
 
40036
 
 
40037
 
#line 426 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40038
 
 
40039
 
 
40040
 
 
40041
 
#line 432 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40042
 
 
40043
 
 
40044
 
 
40045
 
#line 437 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40046
 
 
40047
 
 
40048
 
/*****************************************************************************/
40049
 
/*                                                                           */
40050
 
/*                              wildcard rules                               */
40051
 
/*                                                                           */
40052
 
/*****************************************************************************/
40053
 
 
40054
 
 
40055
 
#line 449 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40056
 
 
40057
 
 
40058
 
 
40059
 
#line 470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40060
 
 
40061
 
 
40062
 
 
40063
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40064
 
 
40065
 
 
40066
 
 
40067
 
#line 481 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40068
 
 
40069
 
 
40070
 
 
40071
 
#line 487 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40072
 
 
40073
 
 
40074
 
 
40075
 
#line 494 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40076
 
 
40077
 
 
40078
 
 
40079
 
#line 510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40080
 
 
40081
 
            
40082
 
 
40083
 
#line 523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40084
 
 
40085
 
 
40086
 
 
40087
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40088
 
 
40089
 
 
40090
 
 
40091
 
#line 540 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40092
 
 
40093
 
 
40094
 
 
40095
 
#line 550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40096
 
 
40097
 
 
40098
 
 
40099
 
#line 563 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40100
 
 
40101
 
 
40102
 
 
40103
 
#line 569 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40104
 
 
40105
 
 
40106
 
 
40107
 
#line 575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
40108
 
 
40109
 
 
40110
 
#endif /* __CMatchSyntax_ah__ */
40111
 
 
40112
 
#line 19 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
 
45462
#line 72 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
 
45463
  
 
45464
 
 
45465
#endif /* __ext_ac_keywords_ah__ */
 
45466
 
 
45467
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
40113
45468
#endif
40114
 
#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__)
40115
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
45469
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
45470
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
40116
45471
 
40117
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
45472
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
40118
45473
// This file is part of PUMA.
40119
45474
// Copyright (C) 1999-2003  The PUMA developer team.
40120
45475
//                                                                
40137
45492
#define __ext_gnu_h__
40138
45493
 
40139
45494
 
40140
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
40141
 
 
40142
 
#line 40143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
40143
 
 
40144
 
#line 5 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
40145
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
40146
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
40147
 
 
40148
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
45495
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
40149
45496
// This file is part of PUMA.
40150
45497
// Copyright (C) 1999-2003  The PUMA developer team.
40151
45498
//                                                                
40170
45517
namespace Puma {
40171
45518
 
40172
45519
// Syntax tree node hierarchy:
 
45520
class   CT_GnuAsmSpec;       // derived from CTree
40173
45521
class   CT_GnuAsmDef;        // derived from CT_AsmDef
40174
45522
class   CT_GnuAsmOperand;    // derived from CTree
40175
45523
class     CT_GnuAsmOperands; // derived from CT_List
40179
45527
} // namespace Puma
40180
45528
 
40181
45529
 
40182
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45530
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40183
45531
 
40184
 
#line 40185 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
45532
#line 45533 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
40185
45533
 
40186
45534
#ifndef __ac_fwd_ExtACTree__
40187
45535
#define __ac_fwd_ExtACTree__
40188
45536
class ExtACTree;
40189
45537
namespace AC {
40190
45538
  template <class JoinPoint>
40191
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
45539
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
40192
45540
  template <class JoinPoint>
40193
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
45541
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
40194
45542
}
40195
45543
#endif
40196
45544
 
40197
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
40198
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
45545
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
45546
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
40199
45547
#endif
40200
45548
 
40201
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40202
 
 
40203
 
#line 40204 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
40204
 
 
40205
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
40206
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
40207
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
40208
 
 
40209
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45549
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40210
45550
// This file is part of PUMA.
40211
45551
// Copyright (C) 1999-2003  The PUMA developer team.
40212
45552
//                                                                
40251
45591
class     CT_DefaultStmt;
40252
45592
class     CT_TryStmt;
40253
45593
class   CT_Expression;
 
45594
class     CT_Call;
 
45595
class       CT_CallExpr;
 
45596
class       CT_ImplicitCall;
40254
45597
class     CT_ThrowExpr;
40255
45598
class     CT_NewExpr;
40256
45599
class     CT_DeleteExpr;
40271
45614
class     CT_IfThenExpr;
40272
45615
class     CT_CmpdLiteral;
40273
45616
class     CT_IndexExpr;
40274
 
class     CT_CallExpr;
40275
45617
class     CT_CastExpr;
40276
45618
class     CT_StaticCast;
40277
45619
class       CT_ConstCast;
40318
45660
class     CT_NamespaceDef;
40319
45661
class     CT_NamespaceAliasDef;
40320
45662
class     CT_UsingDirective;
 
45663
class     CT_Condition;
40321
45664
class   CT_List;
40322
45665
class     CT_CmpdStmt;
40323
45666
class     CT_DeclSpecSeq;
40348
45691
class     CT_TemplateArgList;
40349
45692
class   CT_Token;
40350
45693
class   CT_Error;
40351
 
class   CT_Condition;
40352
45694
class   CT_BaseSpec;
40353
45695
class   CT_AccessSpec;
40354
45696
class   CT_ArrayDelimiter;
40388
45730
/*                                                                           */
40389
45731
/*****************************************************************************/
40390
45732
 
40391
 
 
40392
 
#line 40393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
45733
/** \file
 
45734
 *  C/C++ syntax tree classes.
 
45735
 *  \see Puma::CTree */
 
45736
 
 
45737
/** \class CTree CTree.h Puma/CTree.h
 
45738
 *  Base class for all C/C++ syntax tree classes. */
 
45739
 
 
45740
#line 45741 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
40393
45741
} // closed Puma
 
45742
class CCExprResolve;
 
45743
class CExprResolve;
40394
45744
class WinIfExists;
40395
45745
class WinImportHandler;
40396
45746
class WinMacros;
40397
 
class CMatchSyntax;
40398
 
class ExtGnu;
 
45747
class WinAsm;
 
45748
class WinDeclSpecs;
 
45749
class WinMemberExplSpec;
 
45750
class WinTypeKeywords;
 
45751
class WinFriend;
40399
45752
class ExtAC;
40400
45753
class ExtACBuilderCoupling;
40401
45754
class ExtACSyntaxCoupling;
40402
45755
class ExtACTree;
40403
45756
class ExtACKeywords;
40404
 
class WinAsm;
40405
 
class WinDeclSpecs;
40406
 
class WinMemberExplSpec;
40407
 
class WinTypeKeywords;
 
45757
class ExtGnu;
40408
45758
class PragmaOnceUnitState;
40409
45759
class PragmaOnce;
40410
 
class CCExprResolve;
40411
 
class CExprResolve;
40412
 
namespace Puma {
40413
 
 
40414
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45760
class CMatchSyntax;
 
45761
namespace Puma {
 
45762
 
 
45763
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45764
 
 
45765
#line 45766 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
45766
} // closed Puma
 
45767
 
 
45768
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45769
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
45770
#include "CCExprResolveH.ah"
 
45771
#endif
 
45772
namespace Puma {
 
45773
 
 
45774
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45775
 
 
45776
#line 45777 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
45777
} // closed Puma
 
45778
 
 
45779
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45780
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
45781
#include "CExprResolveH.ah"
 
45782
#endif
 
45783
namespace Puma {
 
45784
 
 
45785
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40415
45786
class CTree {
40416
 
#line 40417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
45787
#line 45788 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
45788
  friend class ::CCExprResolve;
 
45789
  friend class ::CExprResolve;
40417
45790
  friend class ::WinIfExists;
40418
45791
  friend class ::WinImportHandler;
40419
45792
  friend class ::WinMacros;
40420
 
  friend class ::CMatchSyntax;
40421
 
  friend class ::ExtGnu;
 
45793
  friend class ::WinAsm;
 
45794
  friend class ::WinDeclSpecs;
 
45795
  friend class ::WinMemberExplSpec;
 
45796
  friend class ::WinTypeKeywords;
 
45797
  friend class ::WinFriend;
40422
45798
  friend class ::ExtAC;
40423
45799
  friend class ::ExtACBuilderCoupling;
40424
45800
  friend class ::ExtACSyntaxCoupling;
40425
45801
  friend class ::ExtACTree;
40426
45802
  friend class ::ExtACKeywords;
40427
 
  friend class ::WinAsm;
40428
 
  friend class ::WinDeclSpecs;
40429
 
  friend class ::WinMemberExplSpec;
40430
 
  friend class ::WinTypeKeywords;
 
45803
  friend class ::ExtGnu;
40431
45804
  friend class ::PragmaOnceUnitState;
40432
45805
  friend class ::PragmaOnce;
40433
 
  friend class ::CCExprResolve;
40434
 
  friend class ::CExprResolve;
40435
 
 
40436
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45806
  friend class ::CMatchSyntax;
 
45807
 
 
45808
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45809
 
 
45810
  CTree * _parent;
40437
45811
 
40438
45812
public:
40439
45813
  /*DEBUG*/static int alloc;
40440
45814
  /*DEBUG*/static int release;
40441
45815
 
40442
45816
protected:
40443
 
  CTree *Son (CTree * const *, int, int) const;
40444
 
  int Sons (CTree * const *, int) const;
40445
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
45817
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
45818
   *  \param sons The sons array.
 
45819
   *  \param len Length of the sons array.
 
45820
   *  \param n Index of the son.
 
45821
   *  \return The n-th son or NULL. */
 
45822
  CTree *Son (CTree * const *sons, int len, int n) const;
 
45823
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
45824
   *  \param sons The sons array.
 
45825
   *  \param len Length of the sons array. */
 
45826
  int Sons (CTree * const *sons, int len) const;
 
45827
  /** Replace a son.
 
45828
   *  \param sons The sons array.
 
45829
   *  \param len Length of the sons array.
 
45830
   *  \param old_son The son to replace.
 
45831
   *  \param new_son The new son. */
 
45832
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
45833
  /** Replace a son if it equals the given son.
 
45834
   *  \param son The actual son.
 
45835
   *  \param old_son The son to replace, must match the actual son.
 
45836
   *  \param new_son The new son, overwrites the actual son. */
 
45837
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
45838
  /** Add a new son.
 
45839
   *  \param son The actual son.
 
45840
   *  \param new_son The new son, overwrites the actual son. */
 
45841
  void AddSon (CTree *&son, CTree *new_son);
 
45842
  /** Set the parent tree node.
 
45843
   *  \param parent The new parent tree node. */
 
45844
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
45845
  /** Set the parent tree node of the given tree node.
 
45846
   *  \param node The tree node.
 
45847
   *  \param parent The new parent. */
 
45848
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
40446
45849
  
40447
45850
protected:
40448
 
  CTree () { /*DEBUG*/alloc++; }
 
45851
  /** Default constructor. */
 
45852
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
40449
45853
 
40450
45854
public:
 
45855
  /** Destructor. */
40451
45856
  virtual ~CTree () { /*DEBUG*/release++; }
 
45857
  /** Get the number of sons. */
40452
45858
  virtual int Sons () const = 0;
 
45859
  /** Get the n-th son.
 
45860
   *  \param n The index of the son.
 
45861
   *  \return The n-th son or NULL. */
40453
45862
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
45863
  /** Get the node name (node identifier). */
40454
45864
  virtual const char *NodeName () const = 0;
 
45865
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
45866
   *  \return The token or NULL. */
40455
45867
  virtual Token *token () const;
 
45868
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
45869
   *  \return The token or NULL. */
40456
45870
  virtual Token *end_token () const;
 
45871
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
45872
   *  \return The token node or NULL. */
40457
45873
  virtual CT_Token *token_node () const;
 
45874
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
45875
   *  \return The token node or NULL. */
40458
45876
  virtual CT_Token *end_token_node () const;
40459
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
45877
  /** Replace a son.
 
45878
   *  \param old_son The son to replace.
 
45879
   *  \param new_son The son with which to replace. */
 
45880
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
45881
  /** Get the parent node.
 
45882
   *  \return The parent node or NULL. */
 
45883
  virtual CTree *Parent () const { return (CTree*)_parent; }
40460
45884
 
40461
45885
public: // semantic information
 
45886
  /** Get the semantic type of the node.
 
45887
   *  \return The type object or NULL. */
40462
45888
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
45889
  /** Get the calculated value of the expression.
 
45890
   *  \return The value object or NULL. */
40463
45891
  virtual CExprValue *Value () const { return (CExprValue*)0; }
40464
45892
  
 
45893
  /** Get the semantic scope of the node.
 
45894
   *  \return The scope object or NULL. */
 
45895
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
45896
  /** Get the semantic value of the node.
 
45897
   *  \return The value object or NULL. */
40465
45898
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
45899
  /** Get the semantic object of the node.
 
45900
   *  \return The semantic object or NULL. */
40466
45901
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
40467
45902
  
40468
45903
public: // node classification function
 
45904
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
45905
   *  \return The CT_SimpleName node or NULL. */
40469
45906
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
45907
  /** Get a pointer to CT_String if the current node represents a string.
 
45908
   *  \return The CT_String node or NULL. */
 
45909
  virtual CT_String *IsString () { return 0; }
 
45910
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
45911
   *  \return The CT_Declarator pointer or NULL. */
40470
45912
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
45913
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
45914
   *  \return The CT_Statement pointer or NULL. */
 
45915
  virtual CT_Statement *IsStatement () { return 0; }
 
45916
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
45917
   *  \return The CT_Expression pointer or NULL. */
 
45918
  virtual CT_Expression *IsExpression () { return 0; }
 
45919
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
45920
   *  \return The CT_Decl pointer or NULL. */
 
45921
  virtual CT_Decl *IsDeclaration () { return 0; }
 
45922
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
45923
   *  \return The CT_Call pointer or NULL. */
 
45924
  virtual CT_Call *IsCall () { return 0; }
40471
45925
   private:
40472
45926
  typedef CTree CCExprResolveCTree;
40473
45927
 
40474
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
45928
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
40475
45929
 public :
40476
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
45930
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
40477
45931
  typedef CTree CExprResolveCTree;
40478
45932
 
40479
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
45933
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
40480
45934
 public :
40481
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
40482
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45935
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
45936
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40483
45937
};
40484
45938
 
 
45939
/** \class CT_Error CTree.h Puma/CTree.h
 
45940
 *  Error tree node that is inserted into the tree for syntactic constructs
 
45941
 *  that could not be parsed. */
40485
45942
 
40486
 
#line 40487 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
45943
#line 45944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
40487
45944
} // closed Puma
 
45945
class CCExprResolve;
 
45946
class CExprResolve;
40488
45947
class WinIfExists;
40489
45948
class WinImportHandler;
40490
45949
class WinMacros;
40491
 
class CMatchSyntax;
40492
 
class ExtGnu;
 
45950
class WinAsm;
 
45951
class WinDeclSpecs;
 
45952
class WinMemberExplSpec;
 
45953
class WinTypeKeywords;
 
45954
class WinFriend;
40493
45955
class ExtAC;
40494
45956
class ExtACBuilderCoupling;
40495
45957
class ExtACSyntaxCoupling;
40496
45958
class ExtACTree;
40497
45959
class ExtACKeywords;
40498
 
class WinAsm;
40499
 
class WinDeclSpecs;
40500
 
class WinMemberExplSpec;
40501
 
class WinTypeKeywords;
 
45960
class ExtGnu;
40502
45961
class PragmaOnceUnitState;
40503
45962
class PragmaOnce;
40504
 
class CCExprResolve;
40505
 
class CExprResolve;
 
45963
class CMatchSyntax;
40506
45964
namespace Puma {
40507
45965
 
40508
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45966
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40509
45967
class CT_Error : public CTree {
40510
 
#line 40511 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
45968
#line 45969 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
45969
  friend class ::CCExprResolve;
 
45970
  friend class ::CExprResolve;
40511
45971
  friend class ::WinIfExists;
40512
45972
  friend class ::WinImportHandler;
40513
45973
  friend class ::WinMacros;
40514
 
  friend class ::CMatchSyntax;
40515
 
  friend class ::ExtGnu;
 
45974
  friend class ::WinAsm;
 
45975
  friend class ::WinDeclSpecs;
 
45976
  friend class ::WinMemberExplSpec;
 
45977
  friend class ::WinTypeKeywords;
 
45978
  friend class ::WinFriend;
40516
45979
  friend class ::ExtAC;
40517
45980
  friend class ::ExtACBuilderCoupling;
40518
45981
  friend class ::ExtACSyntaxCoupling;
40519
45982
  friend class ::ExtACTree;
40520
45983
  friend class ::ExtACKeywords;
40521
 
  friend class ::WinAsm;
40522
 
  friend class ::WinDeclSpecs;
40523
 
  friend class ::WinMemberExplSpec;
40524
 
  friend class ::WinTypeKeywords;
 
45984
  friend class ::ExtGnu;
40525
45985
  friend class ::PragmaOnceUnitState;
40526
45986
  friend class ::PragmaOnce;
40527
 
  friend class ::CCExprResolve;
40528
 
  friend class ::CExprResolve;
 
45987
  friend class ::CMatchSyntax;
40529
45988
 
40530
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
45989
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40531
45990
 
40532
45991
public:
 
45992
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40533
45993
  static const char *NodeId ();
 
45994
  /** Get the name of the node. Can be compared with NodeId(). */
40534
45995
  const char *NodeName () const { return NodeId (); }
 
45996
  /** Get the number of sons. */
40535
45997
  int Sons () const { return 0; }
40536
45998
};
40537
45999
 
 
46000
/** \class CT_Token CTree.h Puma/CTree.h
 
46001
 *  Tree node representing a single token in the source code. */
40538
46002
 
40539
 
#line 40540 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46003
#line 46004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
40540
46004
} // closed Puma
 
46005
class CCExprResolve;
 
46006
class CExprResolve;
40541
46007
class WinIfExists;
40542
46008
class WinImportHandler;
40543
46009
class WinMacros;
40544
 
class CMatchSyntax;
40545
 
class ExtGnu;
 
46010
class WinAsm;
 
46011
class WinDeclSpecs;
 
46012
class WinMemberExplSpec;
 
46013
class WinTypeKeywords;
 
46014
class WinFriend;
40546
46015
class ExtAC;
40547
46016
class ExtACBuilderCoupling;
40548
46017
class ExtACSyntaxCoupling;
40549
46018
class ExtACTree;
40550
46019
class ExtACKeywords;
40551
 
class WinAsm;
40552
 
class WinDeclSpecs;
40553
 
class WinMemberExplSpec;
40554
 
class WinTypeKeywords;
 
46020
class ExtGnu;
40555
46021
class PragmaOnceUnitState;
40556
46022
class PragmaOnce;
40557
 
class CCExprResolve;
40558
 
class CExprResolve;
 
46023
class CMatchSyntax;
40559
46024
namespace Puma {
40560
46025
 
40561
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46026
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40562
46027
class CT_Token : public CTree {
40563
 
#line 40564 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46028
#line 46029 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46029
  friend class ::CCExprResolve;
 
46030
  friend class ::CExprResolve;
40564
46031
  friend class ::WinIfExists;
40565
46032
  friend class ::WinImportHandler;
40566
46033
  friend class ::WinMacros;
40567
 
  friend class ::CMatchSyntax;
40568
 
  friend class ::ExtGnu;
 
46034
  friend class ::WinAsm;
 
46035
  friend class ::WinDeclSpecs;
 
46036
  friend class ::WinMemberExplSpec;
 
46037
  friend class ::WinTypeKeywords;
 
46038
  friend class ::WinFriend;
40569
46039
  friend class ::ExtAC;
40570
46040
  friend class ::ExtACBuilderCoupling;
40571
46041
  friend class ::ExtACSyntaxCoupling;
40572
46042
  friend class ::ExtACTree;
40573
46043
  friend class ::ExtACKeywords;
40574
 
  friend class ::WinAsm;
40575
 
  friend class ::WinDeclSpecs;
40576
 
  friend class ::WinMemberExplSpec;
40577
 
  friend class ::WinTypeKeywords;
 
46044
  friend class ::ExtGnu;
40578
46045
  friend class ::PragmaOnceUnitState;
40579
46046
  friend class ::PragmaOnce;
40580
 
  friend class ::CCExprResolve;
40581
 
  friend class ::CExprResolve;
 
46047
  friend class ::CMatchSyntax;
40582
46048
 
40583
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46049
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40584
46050
 
40585
46051
  Token *_token;
40586
46052
  unsigned long int _number;
40587
46053
  
40588
46054
public:
40589
 
  CT_Token (Token *t, unsigned long int n = 0) : 
40590
 
    _token (t), _number (n) {}
 
46055
  /** Constructor. 
 
46056
   *  \param token The represented token.
 
46057
   *  \param number The token number (a consecutive number). */
 
46058
  CT_Token (Token *token, unsigned long int number = 0) : 
 
46059
    _token (token), _number (number) {}
 
46060
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40591
46061
  static const char *NodeId ();
 
46062
  /** Get the name of the node. Can be compared with NodeId(). */
40592
46063
  const char *NodeName () const { return NodeId (); }
 
46064
  /** Get the number of sons. */
40593
46065
  int Sons () const { return 0; }
 
46066
  /** Get the represented token. */
40594
46067
  Token *token () const { return _token; }
 
46068
  /** Get the represented token. */
40595
46069
  Token *end_token () const { return _token; }
 
46070
  /** Get this. */
40596
46071
  CT_Token *token_node () const { return (CT_Token*)this; }
 
46072
  /** Get this. */
40597
46073
  CT_Token *end_token_node () const { return (CT_Token*)this; }
40598
 
  void Number (unsigned long int n) { _number = n; }
 
46074
  /** Set the token number. 
 
46075
   *  \param number The token number. */ 
 
46076
  void Number (unsigned long int number) { _number = number; }
 
46077
  /** Get the token number. Can be used to indentify this token. */
40599
46078
  unsigned long int Number () const { return _number; }
40600
 
  // special new / delete with reusing memory
 
46079
  
 
46080
public:
 
46081
  /** Own new operator reusing memory. */
40601
46082
  void *operator new (size_t);
40602
 
  void  operator delete (void *);
 
46083
  /** Own delete operator. */
 
46084
  void operator delete (void *);
40603
46085
};
40604
46086
 
40605
46087
/*****************************************************************************/
40608
46090
/*                                                                           */
40609
46091
/*****************************************************************************/
40610
46092
 
 
46093
/** \class CT_List CTree.h Puma/CTree.h
 
46094
 *  Base class for tree nodes representing lists. */
40611
46095
 
40612
 
#line 40613 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46096
#line 46097 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
40613
46097
} // closed Puma
 
46098
class CCExprResolve;
 
46099
class CExprResolve;
40614
46100
class WinIfExists;
40615
46101
class WinImportHandler;
40616
46102
class WinMacros;
40617
 
class CMatchSyntax;
40618
 
class ExtGnu;
 
46103
class WinAsm;
 
46104
class WinDeclSpecs;
 
46105
class WinMemberExplSpec;
 
46106
class WinTypeKeywords;
 
46107
class WinFriend;
40619
46108
class ExtAC;
40620
46109
class ExtACBuilderCoupling;
40621
46110
class ExtACSyntaxCoupling;
40622
46111
class ExtACTree;
40623
46112
class ExtACKeywords;
40624
 
class WinAsm;
40625
 
class WinDeclSpecs;
40626
 
class WinMemberExplSpec;
40627
 
class WinTypeKeywords;
 
46113
class ExtGnu;
40628
46114
class PragmaOnceUnitState;
40629
46115
class PragmaOnce;
40630
 
class CCExprResolve;
40631
 
class CExprResolve;
 
46116
class CMatchSyntax;
40632
46117
namespace Puma {
40633
46118
 
40634
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46119
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40635
46120
class CT_List : public CTree {
40636
 
#line 40637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46121
#line 46122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46122
  friend class ::CCExprResolve;
 
46123
  friend class ::CExprResolve;
40637
46124
  friend class ::WinIfExists;
40638
46125
  friend class ::WinImportHandler;
40639
46126
  friend class ::WinMacros;
40640
 
  friend class ::CMatchSyntax;
40641
 
  friend class ::ExtGnu;
 
46127
  friend class ::WinAsm;
 
46128
  friend class ::WinDeclSpecs;
 
46129
  friend class ::WinMemberExplSpec;
 
46130
  friend class ::WinTypeKeywords;
 
46131
  friend class ::WinFriend;
40642
46132
  friend class ::ExtAC;
40643
46133
  friend class ::ExtACBuilderCoupling;
40644
46134
  friend class ::ExtACSyntaxCoupling;
40645
46135
  friend class ::ExtACTree;
40646
46136
  friend class ::ExtACKeywords;
40647
 
  friend class ::WinAsm;
40648
 
  friend class ::WinDeclSpecs;
40649
 
  friend class ::WinMemberExplSpec;
40650
 
  friend class ::WinTypeKeywords;
 
46137
  friend class ::ExtGnu;
40651
46138
  friend class ::PragmaOnceUnitState;
40652
46139
  friend class ::PragmaOnce;
40653
 
  friend class ::CCExprResolve;
40654
 
  friend class ::CExprResolve;
 
46140
  friend class ::CMatchSyntax;
40655
46141
 
40656
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46142
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40657
46143
 
40658
46144
  Array<CTree*> _sons;
40659
46145
  int _properties;
40660
46146
 
40661
46147
protected:
 
46148
  /** Constructor.
 
46149
   *  \param size The initial list size.
 
46150
   *  \param incr The initial increment count. 
 
46151
   *  \param props The list properties (bit array). */
40662
46152
  CT_List(int size = 5, int incr = 5, int props = 0) : 
40663
46153
    _sons (size, incr), _properties (props) {}
40664
46154
 
40665
46155
public:
 
46156
  /** List properties. */
40666
46157
  enum {
40667
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
40668
 
    CLOSE = 2,
40669
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
40670
 
    SEPARATORS = 4,   // the list has separators like ','
40671
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
40672
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
40673
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
40674
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
46158
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
46159
    CLOSE = 2,        /** List has an end token */
 
46160
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
46161
    SEPARATORS = 4,   /** List has separators, like ',' */
 
46162
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
46163
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
46164
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
46165
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
40675
46166
  };
40676
46167
 
 
46168
  /** Get the number of list entries. */
40677
46169
  int Entries () const;
40678
 
  CTree *Entry (int no) const;
 
46170
  /** Get the n-th list entry.
 
46171
   *  \param n The index of the entry. 
 
46172
   *  \return The list entry or NULL. */
 
46173
  CTree *Entry (int n) const;
 
46174
  /** Get the number of sons. */
40679
46175
  int Sons () const { return _sons.length (); }
 
46176
  /** Get the n-th son.
 
46177
   *  \param n The index of the son. 
 
46178
   *  \return The n-th son or NULL. */
40680
46179
  CTree *Son (int n) const { return _sons.lookup (n); }
 
46180
  /** Get the list properties. */
40681
46181
  int GetProperties () const { return _properties; }
 
46182
  /** Add a list property.
 
46183
   *  \param p The property to add. */
40682
46184
  void AddProperties (int p) { _properties |= p; }
40683
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
40684
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
40685
 
  void InsertSon (CTree *, CTree *);  // before given son
40686
 
  void ReplaceSon (CTree *, CTree *);
40687
 
  void RemoveSon (CTree *);
 
46185
  /** Add a son.
 
46186
   *  \param s The son to add. */
 
46187
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
46188
  /** Prepend a son.
 
46189
   *  \param s The son to prepend. */
 
46190
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
46191
  /** Insert a son before another son.
 
46192
   *  \param before The son to insert the new son before.
 
46193
   *  \param son The son to insert. */
 
46194
  void InsertSon (CTree *before, CTree *son); 
 
46195
  /** Replace a son.
 
46196
   *  \param old_son The son to replace.
 
46197
   *  \param new_son The new son. */
 
46198
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
46199
  /** Remove a son.
 
46200
   *  \param son The son to remove. */
 
46201
  void RemoveSon (CTree *son);
 
46202
  /** Insert a son at the given index. 
 
46203
   *  \param idx The index at which to insert.
 
46204
   *  \param s The son to insert. */
40688
46205
  void InsertSon (int idx, CTree *s)
40689
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
46206
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
46207
  /** Replace the son at the given index.
 
46208
   *  \param idx The index of the son to replace.
 
46209
   *  \param s The new son. */
40690
46210
  void ReplaceSon (int idx, CTree *s) 
40691
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
46211
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
46212
  /** Remove the son at the given index. 
 
46213
   *  \param idx The index of the son to remove. */
40692
46214
  void RemoveSon (int idx) 
40693
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
46215
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
40694
46216
};
40695
46217
 
 
46218
/** \class CT_ExprList CTree.h Puma/CTree.h
 
46219
 *  Tree node representing an expression list. */
40696
46220
 
40697
 
#line 40698 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46221
#line 46222 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
40698
46222
} // closed Puma
 
46223
class CCExprResolve;
 
46224
class CExprResolve;
40699
46225
class WinIfExists;
40700
46226
class WinImportHandler;
40701
46227
class WinMacros;
40702
 
class CMatchSyntax;
40703
 
class ExtGnu;
 
46228
class WinAsm;
 
46229
class WinDeclSpecs;
 
46230
class WinMemberExplSpec;
 
46231
class WinTypeKeywords;
 
46232
class WinFriend;
40704
46233
class ExtAC;
40705
46234
class ExtACBuilderCoupling;
40706
46235
class ExtACSyntaxCoupling;
40707
46236
class ExtACTree;
40708
46237
class ExtACKeywords;
40709
 
class WinAsm;
40710
 
class WinDeclSpecs;
40711
 
class WinMemberExplSpec;
40712
 
class WinTypeKeywords;
 
46238
class ExtGnu;
40713
46239
class PragmaOnceUnitState;
40714
46240
class PragmaOnce;
40715
 
class CCExprResolve;
40716
 
class CExprResolve;
 
46241
class CMatchSyntax;
40717
46242
namespace Puma {
40718
46243
 
40719
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46244
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40720
46245
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
40721
 
#line 40722 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46246
#line 46247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46247
  friend class ::CCExprResolve;
 
46248
  friend class ::CExprResolve;
40722
46249
  friend class ::WinIfExists;
40723
46250
  friend class ::WinImportHandler;
40724
46251
  friend class ::WinMacros;
40725
 
  friend class ::CMatchSyntax;
40726
 
  friend class ::ExtGnu;
 
46252
  friend class ::WinAsm;
 
46253
  friend class ::WinDeclSpecs;
 
46254
  friend class ::WinMemberExplSpec;
 
46255
  friend class ::WinTypeKeywords;
 
46256
  friend class ::WinFriend;
40727
46257
  friend class ::ExtAC;
40728
46258
  friend class ::ExtACBuilderCoupling;
40729
46259
  friend class ::ExtACSyntaxCoupling;
40730
46260
  friend class ::ExtACTree;
40731
46261
  friend class ::ExtACKeywords;
40732
 
  friend class ::WinAsm;
40733
 
  friend class ::WinDeclSpecs;
40734
 
  friend class ::WinMemberExplSpec;
40735
 
  friend class ::WinTypeKeywords;
 
46262
  friend class ::ExtGnu;
40736
46263
  friend class ::PragmaOnceUnitState;
40737
46264
  friend class ::PragmaOnce;
40738
 
  friend class ::CCExprResolve;
40739
 
  friend class ::CExprResolve;
 
46265
  friend class ::CMatchSyntax;
40740
46266
 
40741
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46267
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40742
46268
 
40743
46269
public:
 
46270
  /** Constructor. */
40744
46271
  CT_ExprList () { AddProperties (SEPARATORS); }
 
46272
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40745
46273
  static const char *NodeId ();
 
46274
  /** Get the name of the node. Can be compared with NodeId(). */
40746
46275
  const char *NodeName () const { return NodeId (); }
40747
46276
 
 
46277
  /** Get the type of the last expression in the expression list.
 
46278
   *  \return The type or NULL. */
40748
46279
  CTypeInfo *Type () const { return type; }
 
46280
  /** Get the value of the last expression in the expression list.
 
46281
   *  \return The value of NULL. */
40749
46282
  CExprValue *Value () const { return value; }
 
46283
  /** Get the semantic value of the node. */
40750
46284
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
46285
  /** Get the semantic object of the node. */
40751
46286
  CSemObject *SemObject () const { return (CSemObject*)this; }
40752
46287
};
40753
46288
 
 
46289
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
46290
 *  Tree node representing a list of declarators. */
40754
46291
 
40755
 
#line 40756 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46292
#line 46293 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
40756
46293
} // closed Puma
 
46294
class CCExprResolve;
 
46295
class CExprResolve;
40757
46296
class WinIfExists;
40758
46297
class WinImportHandler;
40759
46298
class WinMacros;
40760
 
class CMatchSyntax;
40761
 
class ExtGnu;
 
46299
class WinAsm;
 
46300
class WinDeclSpecs;
 
46301
class WinMemberExplSpec;
 
46302
class WinTypeKeywords;
 
46303
class WinFriend;
40762
46304
class ExtAC;
40763
46305
class ExtACBuilderCoupling;
40764
46306
class ExtACSyntaxCoupling;
40765
46307
class ExtACTree;
40766
46308
class ExtACKeywords;
40767
 
class WinAsm;
40768
 
class WinDeclSpecs;
40769
 
class WinMemberExplSpec;
40770
 
class WinTypeKeywords;
 
46309
class ExtGnu;
40771
46310
class PragmaOnceUnitState;
40772
46311
class PragmaOnce;
40773
 
class CCExprResolve;
40774
 
class CExprResolve;
 
46312
class CMatchSyntax;
40775
46313
namespace Puma {
40776
46314
 
40777
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46315
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40778
46316
class CT_DeclaratorList : public CT_List {
40779
 
#line 40780 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46317
#line 46318 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46318
  friend class ::CCExprResolve;
 
46319
  friend class ::CExprResolve;
40780
46320
  friend class ::WinIfExists;
40781
46321
  friend class ::WinImportHandler;
40782
46322
  friend class ::WinMacros;
40783
 
  friend class ::CMatchSyntax;
40784
 
  friend class ::ExtGnu;
 
46323
  friend class ::WinAsm;
 
46324
  friend class ::WinDeclSpecs;
 
46325
  friend class ::WinMemberExplSpec;
 
46326
  friend class ::WinTypeKeywords;
 
46327
  friend class ::WinFriend;
40785
46328
  friend class ::ExtAC;
40786
46329
  friend class ::ExtACBuilderCoupling;
40787
46330
  friend class ::ExtACSyntaxCoupling;
40788
46331
  friend class ::ExtACTree;
40789
46332
  friend class ::ExtACKeywords;
40790
 
  friend class ::WinAsm;
40791
 
  friend class ::WinDeclSpecs;
40792
 
  friend class ::WinMemberExplSpec;
40793
 
  friend class ::WinTypeKeywords;
 
46333
  friend class ::ExtGnu;
40794
46334
  friend class ::PragmaOnceUnitState;
40795
46335
  friend class ::PragmaOnce;
40796
 
  friend class ::CCExprResolve;
40797
 
  friend class ::CExprResolve;
 
46336
  friend class ::CMatchSyntax;
40798
46337
 
40799
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46338
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40800
46339
 
40801
46340
public:
 
46341
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40802
46342
  static const char *NodeId ();
 
46343
  /** Get the name of the node. Can be compared with NodeId(). */
40803
46344
  const char *NodeName () const { return NodeId (); }
40804
46345
};
40805
46346
 
 
46347
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
46348
 *  Tree node representing a list of enumerator constants. */
40806
46349
 
40807
 
#line 40808 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46350
#line 46351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
40808
46351
} // closed Puma
 
46352
class CCExprResolve;
 
46353
class CExprResolve;
40809
46354
class WinIfExists;
40810
46355
class WinImportHandler;
40811
46356
class WinMacros;
40812
 
class CMatchSyntax;
40813
 
class ExtGnu;
 
46357
class WinAsm;
 
46358
class WinDeclSpecs;
 
46359
class WinMemberExplSpec;
 
46360
class WinTypeKeywords;
 
46361
class WinFriend;
40814
46362
class ExtAC;
40815
46363
class ExtACBuilderCoupling;
40816
46364
class ExtACSyntaxCoupling;
40817
46365
class ExtACTree;
40818
46366
class ExtACKeywords;
40819
 
class WinAsm;
40820
 
class WinDeclSpecs;
40821
 
class WinMemberExplSpec;
40822
 
class WinTypeKeywords;
 
46367
class ExtGnu;
40823
46368
class PragmaOnceUnitState;
40824
46369
class PragmaOnce;
40825
 
class CCExprResolve;
40826
 
class CExprResolve;
 
46370
class CMatchSyntax;
40827
46371
namespace Puma {
40828
46372
 
40829
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46373
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40830
46374
class CT_EnumeratorList : public CT_List {
40831
 
#line 40832 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46375
#line 46376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46376
  friend class ::CCExprResolve;
 
46377
  friend class ::CExprResolve;
40832
46378
  friend class ::WinIfExists;
40833
46379
  friend class ::WinImportHandler;
40834
46380
  friend class ::WinMacros;
40835
 
  friend class ::CMatchSyntax;
40836
 
  friend class ::ExtGnu;
 
46381
  friend class ::WinAsm;
 
46382
  friend class ::WinDeclSpecs;
 
46383
  friend class ::WinMemberExplSpec;
 
46384
  friend class ::WinTypeKeywords;
 
46385
  friend class ::WinFriend;
40837
46386
  friend class ::ExtAC;
40838
46387
  friend class ::ExtACBuilderCoupling;
40839
46388
  friend class ::ExtACSyntaxCoupling;
40840
46389
  friend class ::ExtACTree;
40841
46390
  friend class ::ExtACKeywords;
40842
 
  friend class ::WinAsm;
40843
 
  friend class ::WinDeclSpecs;
40844
 
  friend class ::WinMemberExplSpec;
40845
 
  friend class ::WinTypeKeywords;
 
46391
  friend class ::ExtGnu;
40846
46392
  friend class ::PragmaOnceUnitState;
40847
46393
  friend class ::PragmaOnce;
40848
 
  friend class ::CCExprResolve;
40849
 
  friend class ::CExprResolve;
 
46394
  friend class ::CMatchSyntax;
40850
46395
 
40851
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46396
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40852
46397
 
40853
46398
public:
 
46399
  /** Constructor. */
40854
46400
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
46401
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40855
46402
  static const char *NodeId ();
 
46403
  /** Get the name of the node. Can be compared with NodeId(). */
40856
46404
  const char *NodeName () const { return NodeId (); }
40857
46405
};
40858
46406
   
 
46407
/** \class CT_DeclList CTree.h Puma/CTree.h
 
46408
 *  Tree node representing a list of declarations. */
40859
46409
 
40860
 
#line 40861 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46410
#line 46411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
40861
46411
} // closed Puma
 
46412
class CCExprResolve;
 
46413
class CExprResolve;
40862
46414
class WinIfExists;
40863
46415
class WinImportHandler;
40864
46416
class WinMacros;
40865
 
class CMatchSyntax;
40866
 
class ExtGnu;
 
46417
class WinAsm;
 
46418
class WinDeclSpecs;
 
46419
class WinMemberExplSpec;
 
46420
class WinTypeKeywords;
 
46421
class WinFriend;
40867
46422
class ExtAC;
40868
46423
class ExtACBuilderCoupling;
40869
46424
class ExtACSyntaxCoupling;
40870
46425
class ExtACTree;
40871
46426
class ExtACKeywords;
40872
 
class WinAsm;
40873
 
class WinDeclSpecs;
40874
 
class WinMemberExplSpec;
40875
 
class WinTypeKeywords;
 
46427
class ExtGnu;
40876
46428
class PragmaOnceUnitState;
40877
46429
class PragmaOnce;
40878
 
class CCExprResolve;
40879
 
class CExprResolve;
 
46430
class CMatchSyntax;
40880
46431
namespace Puma {
40881
46432
 
40882
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46433
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40883
46434
class CT_DeclList : public CT_List {
40884
 
#line 40885 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46435
#line 46436 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46436
  friend class ::CCExprResolve;
 
46437
  friend class ::CExprResolve;
40885
46438
  friend class ::WinIfExists;
40886
46439
  friend class ::WinImportHandler;
40887
46440
  friend class ::WinMacros;
40888
 
  friend class ::CMatchSyntax;
40889
 
  friend class ::ExtGnu;
 
46441
  friend class ::WinAsm;
 
46442
  friend class ::WinDeclSpecs;
 
46443
  friend class ::WinMemberExplSpec;
 
46444
  friend class ::WinTypeKeywords;
 
46445
  friend class ::WinFriend;
40890
46446
  friend class ::ExtAC;
40891
46447
  friend class ::ExtACBuilderCoupling;
40892
46448
  friend class ::ExtACSyntaxCoupling;
40893
46449
  friend class ::ExtACTree;
40894
46450
  friend class ::ExtACKeywords;
40895
 
  friend class ::WinAsm;
40896
 
  friend class ::WinDeclSpecs;
40897
 
  friend class ::WinMemberExplSpec;
40898
 
  friend class ::WinTypeKeywords;
 
46451
  friend class ::ExtGnu;
40899
46452
  friend class ::PragmaOnceUnitState;
40900
46453
  friend class ::PragmaOnce;
40901
 
  friend class ::CCExprResolve;
40902
 
  friend class ::CExprResolve;
 
46454
  friend class ::CMatchSyntax;
40903
46455
 
40904
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46456
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40905
46457
 
40906
46458
public:
 
46459
  /** Constructor. 
 
46460
   *  \param size The initial size of the list.
 
46461
   *  \param incr The initial increment count of the list. */
40907
46462
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
46463
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40908
46464
  static const char *NodeId ();
 
46465
  /** Get the name of the node. Can be compared with NodeId(). */
40909
46466
  const char *NodeName () const { return NodeId (); }
 
46467
  /** Set the linkage specifiers to each declaration in the list.
 
46468
   *  \param l The linkage specifiers node. */
40910
46469
  void Linkage (CT_LinkageSpec *l);
40911
46470
};
40912
46471
 
 
46472
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
46473
 *  Tree node representing a sequence of declaration specifiers. */
40913
46474
 
40914
 
#line 40915 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46475
#line 46476 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
40915
46476
} // closed Puma
 
46477
class CCExprResolve;
 
46478
class CExprResolve;
40916
46479
class WinIfExists;
40917
46480
class WinImportHandler;
40918
46481
class WinMacros;
40919
 
class CMatchSyntax;
40920
 
class ExtGnu;
 
46482
class WinAsm;
 
46483
class WinDeclSpecs;
 
46484
class WinMemberExplSpec;
 
46485
class WinTypeKeywords;
 
46486
class WinFriend;
40921
46487
class ExtAC;
40922
46488
class ExtACBuilderCoupling;
40923
46489
class ExtACSyntaxCoupling;
40924
46490
class ExtACTree;
40925
46491
class ExtACKeywords;
40926
 
class WinAsm;
40927
 
class WinDeclSpecs;
40928
 
class WinMemberExplSpec;
40929
 
class WinTypeKeywords;
 
46492
class ExtGnu;
40930
46493
class PragmaOnceUnitState;
40931
46494
class PragmaOnce;
40932
 
class CCExprResolve;
40933
 
class CExprResolve;
 
46495
class CMatchSyntax;
40934
46496
namespace Puma {
40935
46497
 
40936
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46498
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40937
46499
class CT_DeclSpecSeq : public CT_List {
40938
 
#line 40939 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46500
#line 46501 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46501
  friend class ::CCExprResolve;
 
46502
  friend class ::CExprResolve;
40939
46503
  friend class ::WinIfExists;
40940
46504
  friend class ::WinImportHandler;
40941
46505
  friend class ::WinMacros;
40942
 
  friend class ::CMatchSyntax;
40943
 
  friend class ::ExtGnu;
 
46506
  friend class ::WinAsm;
 
46507
  friend class ::WinDeclSpecs;
 
46508
  friend class ::WinMemberExplSpec;
 
46509
  friend class ::WinTypeKeywords;
 
46510
  friend class ::WinFriend;
40944
46511
  friend class ::ExtAC;
40945
46512
  friend class ::ExtACBuilderCoupling;
40946
46513
  friend class ::ExtACSyntaxCoupling;
40947
46514
  friend class ::ExtACTree;
40948
46515
  friend class ::ExtACKeywords;
40949
 
  friend class ::WinAsm;
40950
 
  friend class ::WinDeclSpecs;
40951
 
  friend class ::WinMemberExplSpec;
40952
 
  friend class ::WinTypeKeywords;
 
46516
  friend class ::ExtGnu;
40953
46517
  friend class ::PragmaOnceUnitState;
40954
46518
  friend class ::PragmaOnce;
40955
 
  friend class ::CCExprResolve;
40956
 
  friend class ::CExprResolve;
 
46519
  friend class ::CMatchSyntax;
40957
46520
 
40958
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46521
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40959
46522
 
40960
46523
public:
 
46524
  /** Get the identifier for this node type. Can be compared with NodeName(). */
40961
46525
  static const char *NodeId ();
 
46526
  /** Get the name of the node. Can be compared with NodeId(). */
40962
46527
  const char *NodeName () const { return NodeId (); }
40963
46528
};
40964
46529
 
 
46530
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
46531
 *  Tree node representing a compound statement. */
40965
46532
 
40966
 
#line 40967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46533
#line 46534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
40967
46534
} // closed Puma
 
46535
class CCExprResolve;
 
46536
class CExprResolve;
40968
46537
class WinIfExists;
40969
46538
class WinImportHandler;
40970
46539
class WinMacros;
40971
 
class CMatchSyntax;
40972
 
class ExtGnu;
 
46540
class WinAsm;
 
46541
class WinDeclSpecs;
 
46542
class WinMemberExplSpec;
 
46543
class WinTypeKeywords;
 
46544
class WinFriend;
40973
46545
class ExtAC;
40974
46546
class ExtACBuilderCoupling;
40975
46547
class ExtACSyntaxCoupling;
40976
46548
class ExtACTree;
40977
46549
class ExtACKeywords;
40978
 
class WinAsm;
40979
 
class WinDeclSpecs;
40980
 
class WinMemberExplSpec;
40981
 
class WinTypeKeywords;
 
46550
class ExtGnu;
40982
46551
class PragmaOnceUnitState;
40983
46552
class PragmaOnce;
40984
 
class CCExprResolve;
40985
 
class CExprResolve;
 
46553
class CMatchSyntax;
40986
46554
namespace Puma {
40987
46555
 
40988
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46556
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
40989
46557
class CT_CmpdStmt : public CT_List, public CSemScope {
40990
 
#line 40991 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46558
#line 46559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46559
  friend class ::CCExprResolve;
 
46560
  friend class ::CExprResolve;
40991
46561
  friend class ::WinIfExists;
40992
46562
  friend class ::WinImportHandler;
40993
46563
  friend class ::WinMacros;
40994
 
  friend class ::CMatchSyntax;
40995
 
  friend class ::ExtGnu;
 
46564
  friend class ::WinAsm;
 
46565
  friend class ::WinDeclSpecs;
 
46566
  friend class ::WinMemberExplSpec;
 
46567
  friend class ::WinTypeKeywords;
 
46568
  friend class ::WinFriend;
40996
46569
  friend class ::ExtAC;
40997
46570
  friend class ::ExtACBuilderCoupling;
40998
46571
  friend class ::ExtACSyntaxCoupling;
40999
46572
  friend class ::ExtACTree;
41000
46573
  friend class ::ExtACKeywords;
41001
 
  friend class ::WinAsm;
41002
 
  friend class ::WinDeclSpecs;
41003
 
  friend class ::WinMemberExplSpec;
41004
 
  friend class ::WinTypeKeywords;
 
46574
  friend class ::ExtGnu;
41005
46575
  friend class ::PragmaOnceUnitState;
41006
46576
  friend class ::PragmaOnce;
41007
 
  friend class ::CCExprResolve;
41008
 
  friend class ::CExprResolve;
 
46577
  friend class ::CMatchSyntax;
41009
46578
 
41010
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46579
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41011
46580
 
41012
46581
public:
 
46582
  /* Constructor. */
41013
46583
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
46584
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41014
46585
  static const char *NodeId ();
 
46586
  /** Get the name of the node. Can be compared with NodeId(). */
41015
46587
  const char *NodeName () const { return NodeId (); }
 
46588
  /** Get the local scope of the compound statement. */
 
46589
  CSemScope *SemScope () const { return (CSemScope*)this; }
41016
46590
};
41017
46591
 
 
46592
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
46593
 *  Tree node representing an exception handler sequence. */
41018
46594
 
41019
 
#line 41020 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46595
#line 46596 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
41020
46596
} // closed Puma
 
46597
class CCExprResolve;
 
46598
class CExprResolve;
41021
46599
class WinIfExists;
41022
46600
class WinImportHandler;
41023
46601
class WinMacros;
41024
 
class CMatchSyntax;
41025
 
class ExtGnu;
 
46602
class WinAsm;
 
46603
class WinDeclSpecs;
 
46604
class WinMemberExplSpec;
 
46605
class WinTypeKeywords;
 
46606
class WinFriend;
41026
46607
class ExtAC;
41027
46608
class ExtACBuilderCoupling;
41028
46609
class ExtACSyntaxCoupling;
41029
46610
class ExtACTree;
41030
46611
class ExtACKeywords;
41031
 
class WinAsm;
41032
 
class WinDeclSpecs;
41033
 
class WinMemberExplSpec;
41034
 
class WinTypeKeywords;
 
46612
class ExtGnu;
41035
46613
class PragmaOnceUnitState;
41036
46614
class PragmaOnce;
41037
 
class CCExprResolve;
41038
 
class CExprResolve;
 
46615
class CMatchSyntax;
41039
46616
namespace Puma {
41040
46617
 
41041
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46618
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41042
46619
class CT_HandlerSeq : public CT_List {
41043
 
#line 41044 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46620
#line 46621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46621
  friend class ::CCExprResolve;
 
46622
  friend class ::CExprResolve;
41044
46623
  friend class ::WinIfExists;
41045
46624
  friend class ::WinImportHandler;
41046
46625
  friend class ::WinMacros;
41047
 
  friend class ::CMatchSyntax;
41048
 
  friend class ::ExtGnu;
 
46626
  friend class ::WinAsm;
 
46627
  friend class ::WinDeclSpecs;
 
46628
  friend class ::WinMemberExplSpec;
 
46629
  friend class ::WinTypeKeywords;
 
46630
  friend class ::WinFriend;
41049
46631
  friend class ::ExtAC;
41050
46632
  friend class ::ExtACBuilderCoupling;
41051
46633
  friend class ::ExtACSyntaxCoupling;
41052
46634
  friend class ::ExtACTree;
41053
46635
  friend class ::ExtACKeywords;
41054
 
  friend class ::WinAsm;
41055
 
  friend class ::WinDeclSpecs;
41056
 
  friend class ::WinMemberExplSpec;
41057
 
  friend class ::WinTypeKeywords;
 
46636
  friend class ::ExtGnu;
41058
46637
  friend class ::PragmaOnceUnitState;
41059
46638
  friend class ::PragmaOnce;
41060
 
  friend class ::CCExprResolve;
41061
 
  friend class ::CExprResolve;
 
46639
  friend class ::CMatchSyntax;
41062
46640
 
41063
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46641
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41064
46642
 
41065
46643
public:
 
46644
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41066
46645
  static const char *NodeId ();
 
46646
  /** Get the name of the node. Can be compared with NodeId(). */
41067
46647
  const char *NodeName () const { return NodeId (); }
41068
46648
};
41069
46649
 
 
46650
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
46651
 *  Tree node representing a template parameter list. */
41070
46652
 
41071
 
#line 41072 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46653
#line 46654 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
41072
46654
} // closed Puma
 
46655
class CCExprResolve;
 
46656
class CExprResolve;
41073
46657
class WinIfExists;
41074
46658
class WinImportHandler;
41075
46659
class WinMacros;
41076
 
class CMatchSyntax;
41077
 
class ExtGnu;
 
46660
class WinAsm;
 
46661
class WinDeclSpecs;
 
46662
class WinMemberExplSpec;
 
46663
class WinTypeKeywords;
 
46664
class WinFriend;
41078
46665
class ExtAC;
41079
46666
class ExtACBuilderCoupling;
41080
46667
class ExtACSyntaxCoupling;
41081
46668
class ExtACTree;
41082
46669
class ExtACKeywords;
41083
 
class WinAsm;
41084
 
class WinDeclSpecs;
41085
 
class WinMemberExplSpec;
41086
 
class WinTypeKeywords;
 
46670
class ExtGnu;
41087
46671
class PragmaOnceUnitState;
41088
46672
class PragmaOnce;
41089
 
class CCExprResolve;
41090
 
class CExprResolve;
 
46673
class CMatchSyntax;
41091
46674
namespace Puma {
41092
46675
 
41093
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46676
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41094
46677
class CT_TemplateParamList : public CT_List, public CSemScope {
41095
 
#line 41096 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46678
#line 46679 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46679
  friend class ::CCExprResolve;
 
46680
  friend class ::CExprResolve;
41096
46681
  friend class ::WinIfExists;
41097
46682
  friend class ::WinImportHandler;
41098
46683
  friend class ::WinMacros;
41099
 
  friend class ::CMatchSyntax;
41100
 
  friend class ::ExtGnu;
 
46684
  friend class ::WinAsm;
 
46685
  friend class ::WinDeclSpecs;
 
46686
  friend class ::WinMemberExplSpec;
 
46687
  friend class ::WinTypeKeywords;
 
46688
  friend class ::WinFriend;
41101
46689
  friend class ::ExtAC;
41102
46690
  friend class ::ExtACBuilderCoupling;
41103
46691
  friend class ::ExtACSyntaxCoupling;
41104
46692
  friend class ::ExtACTree;
41105
46693
  friend class ::ExtACKeywords;
41106
 
  friend class ::WinAsm;
41107
 
  friend class ::WinDeclSpecs;
41108
 
  friend class ::WinMemberExplSpec;
41109
 
  friend class ::WinTypeKeywords;
 
46694
  friend class ::ExtGnu;
41110
46695
  friend class ::PragmaOnceUnitState;
41111
46696
  friend class ::PragmaOnce;
41112
 
  friend class ::CCExprResolve;
41113
 
  friend class ::CExprResolve;
 
46697
  friend class ::CMatchSyntax;
41114
46698
 
41115
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46699
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41116
46700
 
41117
46701
public:
41118
46702
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
46703
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41119
46704
  static const char *NodeId ();
 
46705
  /** Get the name of the node. Can be compared with NodeId(). */
41120
46706
  const char *NodeName () const { return NodeId (); }
 
46707
  /** Get the scope of the template parameter list. */
 
46708
  CSemScope *SemScope () const { return (CSemScope*)this; }
41121
46709
};
41122
46710
 
 
46711
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
46712
 *  Tree node representing a template argument list. */
41123
46713
 
41124
 
#line 41125 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46714
#line 46715 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
41125
46715
} // closed Puma
 
46716
class CCExprResolve;
 
46717
class CExprResolve;
41126
46718
class WinIfExists;
41127
46719
class WinImportHandler;
41128
46720
class WinMacros;
41129
 
class CMatchSyntax;
41130
 
class ExtGnu;
 
46721
class WinAsm;
 
46722
class WinDeclSpecs;
 
46723
class WinMemberExplSpec;
 
46724
class WinTypeKeywords;
 
46725
class WinFriend;
41131
46726
class ExtAC;
41132
46727
class ExtACBuilderCoupling;
41133
46728
class ExtACSyntaxCoupling;
41134
46729
class ExtACTree;
41135
46730
class ExtACKeywords;
41136
 
class WinAsm;
41137
 
class WinDeclSpecs;
41138
 
class WinMemberExplSpec;
41139
 
class WinTypeKeywords;
 
46731
class ExtGnu;
41140
46732
class PragmaOnceUnitState;
41141
46733
class PragmaOnce;
41142
 
class CCExprResolve;
41143
 
class CExprResolve;
 
46734
class CMatchSyntax;
41144
46735
namespace Puma {
41145
46736
 
41146
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46737
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41147
46738
class CT_TemplateArgList : public CT_List {
41148
 
#line 41149 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46739
#line 46740 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46740
  friend class ::CCExprResolve;
 
46741
  friend class ::CExprResolve;
41149
46742
  friend class ::WinIfExists;
41150
46743
  friend class ::WinImportHandler;
41151
46744
  friend class ::WinMacros;
41152
 
  friend class ::CMatchSyntax;
41153
 
  friend class ::ExtGnu;
 
46745
  friend class ::WinAsm;
 
46746
  friend class ::WinDeclSpecs;
 
46747
  friend class ::WinMemberExplSpec;
 
46748
  friend class ::WinTypeKeywords;
 
46749
  friend class ::WinFriend;
41154
46750
  friend class ::ExtAC;
41155
46751
  friend class ::ExtACBuilderCoupling;
41156
46752
  friend class ::ExtACSyntaxCoupling;
41157
46753
  friend class ::ExtACTree;
41158
46754
  friend class ::ExtACKeywords;
41159
 
  friend class ::WinAsm;
41160
 
  friend class ::WinDeclSpecs;
41161
 
  friend class ::WinMemberExplSpec;
41162
 
  friend class ::WinTypeKeywords;
 
46755
  friend class ::ExtGnu;
41163
46756
  friend class ::PragmaOnceUnitState;
41164
46757
  friend class ::PragmaOnce;
41165
 
  friend class ::CCExprResolve;
41166
 
  friend class ::CExprResolve;
 
46758
  friend class ::CMatchSyntax;
41167
46759
 
41168
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46760
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41169
46761
 
41170
46762
public:
 
46763
  /** Constructor. */
41171
46764
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
46765
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41172
46766
  static const char *NodeId ();
 
46767
  /** Get the name of the node. Can be compared with NodeId(). */
41173
46768
  const char *NodeName () const { return NodeId (); }
41174
46769
};
41175
46770
 
41179
46774
/*                                                                           */
41180
46775
/*****************************************************************************/
41181
46776
 
 
46777
/** \class CT_Expression CTree.h Puma/CTree.h
 
46778
 *  Base class for all expression tree nodes. */
41182
46779
 
41183
 
#line 41184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46780
#line 46781 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
41184
46781
} // closed Puma
 
46782
class CCExprResolve;
 
46783
class CExprResolve;
41185
46784
class WinIfExists;
41186
46785
class WinImportHandler;
41187
46786
class WinMacros;
41188
 
class CMatchSyntax;
41189
 
class ExtGnu;
 
46787
class WinAsm;
 
46788
class WinDeclSpecs;
 
46789
class WinMemberExplSpec;
 
46790
class WinTypeKeywords;
 
46791
class WinFriend;
41190
46792
class ExtAC;
41191
46793
class ExtACBuilderCoupling;
41192
46794
class ExtACSyntaxCoupling;
41193
46795
class ExtACTree;
41194
46796
class ExtACKeywords;
41195
 
class WinAsm;
41196
 
class WinDeclSpecs;
41197
 
class WinMemberExplSpec;
41198
 
class WinTypeKeywords;
 
46797
class ExtGnu;
41199
46798
class PragmaOnceUnitState;
41200
46799
class PragmaOnce;
41201
 
class CCExprResolve;
41202
 
class CExprResolve;
41203
 
namespace Puma {
41204
 
 
41205
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46800
class CMatchSyntax;
 
46801
namespace Puma {
 
46802
 
 
46803
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46804
 
 
46805
#line 46806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46806
} // closed Puma
 
46807
 
 
46808
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46809
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46810
#include "CCExprResolveH.ah"
 
46811
#endif
 
46812
namespace Puma {
 
46813
 
 
46814
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46815
 
 
46816
#line 46817 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46817
} // closed Puma
 
46818
 
 
46819
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46820
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46821
#include "CExprResolveH.ah"
 
46822
#endif
 
46823
namespace Puma {
 
46824
 
 
46825
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41206
46826
class CT_Expression : public CTree, public CSemValue {
41207
 
#line 41208 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
46827
#line 46828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46828
  friend class ::CCExprResolve;
 
46829
  friend class ::CExprResolve;
41208
46830
  friend class ::WinIfExists;
41209
46831
  friend class ::WinImportHandler;
41210
46832
  friend class ::WinMacros;
41211
 
  friend class ::CMatchSyntax;
41212
 
  friend class ::ExtGnu;
 
46833
  friend class ::WinAsm;
 
46834
  friend class ::WinDeclSpecs;
 
46835
  friend class ::WinMemberExplSpec;
 
46836
  friend class ::WinTypeKeywords;
 
46837
  friend class ::WinFriend;
41213
46838
  friend class ::ExtAC;
41214
46839
  friend class ::ExtACBuilderCoupling;
41215
46840
  friend class ::ExtACSyntaxCoupling;
41216
46841
  friend class ::ExtACTree;
41217
46842
  friend class ::ExtACKeywords;
41218
 
  friend class ::WinAsm;
41219
 
  friend class ::WinDeclSpecs;
41220
 
  friend class ::WinMemberExplSpec;
41221
 
  friend class ::WinTypeKeywords;
 
46843
  friend class ::ExtGnu;
41222
46844
  friend class ::PragmaOnceUnitState;
41223
46845
  friend class ::PragmaOnce;
41224
 
  friend class ::CCExprResolve;
41225
 
  friend class ::CExprResolve;
 
46846
  friend class ::CMatchSyntax;
41226
46847
 
41227
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46848
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41228
46849
 
41229
46850
protected:
 
46851
  /** Constructor. */
41230
46852
  CT_Expression () {}
41231
46853
 
41232
46854
public:
 
46855
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41233
46856
  static const char *NodeId ();
 
46857
  /** Get the name of the node. Can be compared with NodeId(). */
41234
46858
  const char *NodeName () const { return NodeId (); }
 
46859
  /** Get the type of the expression.
 
46860
   *  \return The type information object or NULL. */
41235
46861
  CTypeInfo *Type () const { return type; }
 
46862
  /** Get the value of the expression.
 
46863
   *  \return The value object or NULL. */
41236
46864
  CExprValue *Value () const { return value; }
 
46865
  /** Get the semantic value information of the expression.
 
46866
   *  \return The value object or NULL. */
41237
46867
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
46868
  /** Get this. */
 
46869
  virtual CT_Expression *IsExpression () { return this; }
41238
46870
   private:
41239
46871
  typedef CT_Expression CCExprResolveExpr;
41240
46872
 
41241
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46873
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
41242
46874
 public :
41243
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
46875
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
41244
46876
  typedef CT_Expression CExprResolveExpr;
41245
46877
 
41246
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
41247
 
 public :
41248
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
41249
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41250
 
};
41251
 
 
41252
 
 
41253
 
#line 41254 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
41254
 
} // closed Puma
41255
 
class WinIfExists;
41256
 
class WinImportHandler;
41257
 
class WinMacros;
41258
 
class CMatchSyntax;
41259
 
class ExtGnu;
41260
 
class ExtAC;
41261
 
class ExtACBuilderCoupling;
41262
 
class ExtACSyntaxCoupling;
41263
 
class ExtACTree;
41264
 
class ExtACKeywords;
41265
 
class WinAsm;
41266
 
class WinDeclSpecs;
41267
 
class WinMemberExplSpec;
41268
 
class WinTypeKeywords;
41269
 
class PragmaOnceUnitState;
41270
 
class PragmaOnce;
41271
 
class CCExprResolve;
41272
 
class CExprResolve;
41273
 
namespace Puma {
41274
 
 
41275
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46878
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46879
 public :
 
46880
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46881
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46882
};
 
46883
 
 
46884
/** \class CT_Call CTree.h Puma/CTree.h
 
46885
 *  Tree node representing explicit or implicit function calls 
 
46886
 *  including built-in or user-defined functions and overloaded
 
46887
 *  operators. */
 
46888
 
 
46889
#line 46890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46890
} // closed Puma
 
46891
class CCExprResolve;
 
46892
class CExprResolve;
 
46893
class WinIfExists;
 
46894
class WinImportHandler;
 
46895
class WinMacros;
 
46896
class WinAsm;
 
46897
class WinDeclSpecs;
 
46898
class WinMemberExplSpec;
 
46899
class WinTypeKeywords;
 
46900
class WinFriend;
 
46901
class ExtAC;
 
46902
class ExtACBuilderCoupling;
 
46903
class ExtACSyntaxCoupling;
 
46904
class ExtACTree;
 
46905
class ExtACKeywords;
 
46906
class ExtGnu;
 
46907
class PragmaOnceUnitState;
 
46908
class PragmaOnce;
 
46909
class CMatchSyntax;
 
46910
namespace Puma {
 
46911
 
 
46912
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46913
 
 
46914
#line 46915 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46915
} // closed Puma
 
46916
 
 
46917
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46918
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
46919
#include "CCExprResolveH.ah"
 
46920
#endif
 
46921
namespace Puma {
 
46922
 
 
46923
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46924
 
 
46925
#line 46926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46926
} // closed Puma
 
46927
 
 
46928
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46929
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
46930
#include "CExprResolveH.ah"
 
46931
#endif
 
46932
namespace Puma {
 
46933
 
 
46934
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46935
class CT_Call : public CT_Expression, public CSemObject {
 
46936
#line 46937 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46937
  friend class ::CCExprResolve;
 
46938
  friend class ::CExprResolve;
 
46939
  friend class ::WinIfExists;
 
46940
  friend class ::WinImportHandler;
 
46941
  friend class ::WinMacros;
 
46942
  friend class ::WinAsm;
 
46943
  friend class ::WinDeclSpecs;
 
46944
  friend class ::WinMemberExplSpec;
 
46945
  friend class ::WinTypeKeywords;
 
46946
  friend class ::WinFriend;
 
46947
  friend class ::ExtAC;
 
46948
  friend class ::ExtACBuilderCoupling;
 
46949
  friend class ::ExtACSyntaxCoupling;
 
46950
  friend class ::ExtACTree;
 
46951
  friend class ::ExtACKeywords;
 
46952
  friend class ::ExtGnu;
 
46953
  friend class ::PragmaOnceUnitState;
 
46954
  friend class ::PragmaOnce;
 
46955
  friend class ::CMatchSyntax;
 
46956
 
 
46957
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46958
 
 
46959
protected:
 
46960
  /** Constructor. */
 
46961
  CT_Call () {}
 
46962
  
 
46963
public:
 
46964
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
46965
  static const char *NodeId ();
 
46966
  /** Get the name of the node. Can be compared with NodeId(). */
 
46967
  const char *NodeName () const { return NodeId (); }
 
46968
  /** Get the semantic information of the call.
 
46969
   *  \return The semantic information or NULL. */
 
46970
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
46971
  /** Get this. */
 
46972
  CT_Call *IsCall () { return this; }
 
46973
   private:
 
46974
  typedef CT_Call CCExprResolveExpr;
 
46975
 
 
46976
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
46977
 public :
 
46978
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
46979
  typedef CT_Call CExprResolveExpr;
 
46980
 
 
46981
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
46982
 public :
 
46983
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
46984
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
46985
};
 
46986
 
 
46987
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
46988
 *  Tree node representing implicit function calls detected by
 
46989
 *  the semantic analysis. */
 
46990
 
 
46991
#line 46992 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
46992
} // closed Puma
 
46993
class CCExprResolve;
 
46994
class CExprResolve;
 
46995
class WinIfExists;
 
46996
class WinImportHandler;
 
46997
class WinMacros;
 
46998
class WinAsm;
 
46999
class WinDeclSpecs;
 
47000
class WinMemberExplSpec;
 
47001
class WinTypeKeywords;
 
47002
class WinFriend;
 
47003
class ExtAC;
 
47004
class ExtACBuilderCoupling;
 
47005
class ExtACSyntaxCoupling;
 
47006
class ExtACTree;
 
47007
class ExtACKeywords;
 
47008
class ExtGnu;
 
47009
class PragmaOnceUnitState;
 
47010
class PragmaOnce;
 
47011
class CMatchSyntax;
 
47012
namespace Puma {
 
47013
 
 
47014
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47015
 
 
47016
#line 47017 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47017
} // closed Puma
 
47018
 
 
47019
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47020
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47021
#include "CCExprResolveH.ah"
 
47022
#endif
 
47023
namespace Puma {
 
47024
 
 
47025
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47026
 
 
47027
#line 47028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47028
} // closed Puma
 
47029
 
 
47030
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47031
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47032
#include "CExprResolveH.ah"
 
47033
#endif
 
47034
namespace Puma {
 
47035
 
 
47036
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47037
class CT_ImplicitCall : public CT_Call {
 
47038
#line 47039 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47039
  friend class ::CCExprResolve;
 
47040
  friend class ::CExprResolve;
 
47041
  friend class ::WinIfExists;
 
47042
  friend class ::WinImportHandler;
 
47043
  friend class ::WinMacros;
 
47044
  friend class ::WinAsm;
 
47045
  friend class ::WinDeclSpecs;
 
47046
  friend class ::WinMemberExplSpec;
 
47047
  friend class ::WinTypeKeywords;
 
47048
  friend class ::WinFriend;
 
47049
  friend class ::ExtAC;
 
47050
  friend class ::ExtACBuilderCoupling;
 
47051
  friend class ::ExtACSyntaxCoupling;
 
47052
  friend class ::ExtACTree;
 
47053
  friend class ::ExtACKeywords;
 
47054
  friend class ::ExtGnu;
 
47055
  friend class ::PragmaOnceUnitState;
 
47056
  friend class ::PragmaOnce;
 
47057
  friend class ::CMatchSyntax;
 
47058
 
 
47059
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47060
 
 
47061
  CTree *_arg;
 
47062
 
 
47063
public:
 
47064
  /** Constructor.
 
47065
   *  \param arg The call argument. */
 
47066
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
47067
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
47068
  static const char *NodeId ();
 
47069
  /** Get the name of the node. Can be compared with NodeId(). */
 
47070
  const char *NodeName () const { return NodeId (); }
 
47071
  /** Get the number of sons. */
 
47072
  int Sons () const { return 1; }
 
47073
  /** Get the n-th son.
 
47074
   *  \param n The index of the son.
 
47075
   *  \return The n-th son or NULL. */
 
47076
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
47077
  /** Replace a son.
 
47078
   *  \param old_son The son to replace.
 
47079
   *  \param new_son The new son. */
 
47080
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
47081
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
47082
   private:
 
47083
  typedef CT_ImplicitCall CCExprResolveExpr;
 
47084
 
 
47085
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47086
 public :
 
47087
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
47088
  typedef CT_ImplicitCall CExprResolveExpr;
 
47089
 
 
47090
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47091
 public :
 
47092
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47093
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47094
};
 
47095
 
 
47096
/** \class CT_String CTree.h Puma/CTree.h
 
47097
 *  Tree node representing a string literal. */
 
47098
 
 
47099
#line 47100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47100
} // closed Puma
 
47101
class CCExprResolve;
 
47102
class CExprResolve;
 
47103
class WinIfExists;
 
47104
class WinImportHandler;
 
47105
class WinMacros;
 
47106
class WinAsm;
 
47107
class WinDeclSpecs;
 
47108
class WinMemberExplSpec;
 
47109
class WinTypeKeywords;
 
47110
class WinFriend;
 
47111
class ExtAC;
 
47112
class ExtACBuilderCoupling;
 
47113
class ExtACSyntaxCoupling;
 
47114
class ExtACTree;
 
47115
class ExtACKeywords;
 
47116
class ExtGnu;
 
47117
class PragmaOnceUnitState;
 
47118
class PragmaOnce;
 
47119
class CMatchSyntax;
 
47120
namespace Puma {
 
47121
 
 
47122
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47123
 
 
47124
#line 47125 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47125
} // closed Puma
 
47126
 
 
47127
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47128
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47129
#include "CCExprResolveH.ah"
 
47130
#endif
 
47131
namespace Puma {
 
47132
 
 
47133
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47134
 
 
47135
#line 47136 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47136
} // closed Puma
 
47137
 
 
47138
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47139
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47140
#include "CExprResolveH.ah"
 
47141
#endif
 
47142
namespace Puma {
 
47143
 
 
47144
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41276
47145
class CT_String : public CT_List, public CSemValue {
41277
 
#line 41278 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47146
#line 47147 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47147
  friend class ::CCExprResolve;
 
47148
  friend class ::CExprResolve;
41278
47149
  friend class ::WinIfExists;
41279
47150
  friend class ::WinImportHandler;
41280
47151
  friend class ::WinMacros;
41281
 
  friend class ::CMatchSyntax;
41282
 
  friend class ::ExtGnu;
 
47152
  friend class ::WinAsm;
 
47153
  friend class ::WinDeclSpecs;
 
47154
  friend class ::WinMemberExplSpec;
 
47155
  friend class ::WinTypeKeywords;
 
47156
  friend class ::WinFriend;
41283
47157
  friend class ::ExtAC;
41284
47158
  friend class ::ExtACBuilderCoupling;
41285
47159
  friend class ::ExtACSyntaxCoupling;
41286
47160
  friend class ::ExtACTree;
41287
47161
  friend class ::ExtACKeywords;
41288
 
  friend class ::WinAsm;
41289
 
  friend class ::WinDeclSpecs;
41290
 
  friend class ::WinMemberExplSpec;
41291
 
  friend class ::WinTypeKeywords;
 
47162
  friend class ::ExtGnu;
41292
47163
  friend class ::PragmaOnceUnitState;
41293
47164
  friend class ::PragmaOnce;
41294
 
  friend class ::CCExprResolve;
41295
 
  friend class ::CExprResolve;
 
47165
  friend class ::CMatchSyntax;
41296
47166
 
41297
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47167
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41298
47168
 
41299
47169
public:
 
47170
  /** Constructor. 
 
47171
   *  \param size The number of sub-strings. */
41300
47172
  CT_String (int size) : CT_List (size, 1) {}
 
47173
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41301
47174
  static const char *NodeId ();
 
47175
  /** Get the name of the node. Can be compared with NodeId(). */
41302
47176
  const char *NodeName () const { return NodeId (); }
41303
47177
 
 
47178
  /** Get the type of the string. 
 
47179
   *  \return The type or NULL. */
41304
47180
  CTypeInfo *Type () const { return type; }
 
47181
  /** Get the string value.
 
47182
   *  \return The value or NULL. */
41305
47183
  CExprValue *Value () const { return value; }
 
47184
  /** Get the semantic value info object.
 
47185
   *  \return The semantic value object or NULL. */
41306
47186
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
47187
  /** Get this. */
 
47188
  virtual CT_String *IsString () { return this; }
41307
47189
   private:
41308
47190
  typedef CT_String CCExprResolveExpr;
41309
47191
 
41310
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47192
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
41311
47193
 public :
41312
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
47194
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
41313
47195
  typedef CT_String CExprResolveExpr;
41314
47196
 
41315
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47197
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
41316
47198
 public :
41317
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
41318
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47199
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47200
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41319
47201
};
41320
47202
 
 
47203
/** \class CT_WideString CTree.h Puma/CTree.h
 
47204
 *  Tree node representing a wide string literal. */
41321
47205
 
41322
 
#line 41323 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47206
#line 47207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
41323
47207
} // closed Puma
 
47208
class CCExprResolve;
 
47209
class CExprResolve;
41324
47210
class WinIfExists;
41325
47211
class WinImportHandler;
41326
47212
class WinMacros;
41327
 
class CMatchSyntax;
41328
 
class ExtGnu;
 
47213
class WinAsm;
 
47214
class WinDeclSpecs;
 
47215
class WinMemberExplSpec;
 
47216
class WinTypeKeywords;
 
47217
class WinFriend;
41329
47218
class ExtAC;
41330
47219
class ExtACBuilderCoupling;
41331
47220
class ExtACSyntaxCoupling;
41332
47221
class ExtACTree;
41333
47222
class ExtACKeywords;
41334
 
class WinAsm;
41335
 
class WinDeclSpecs;
41336
 
class WinMemberExplSpec;
41337
 
class WinTypeKeywords;
 
47223
class ExtGnu;
41338
47224
class PragmaOnceUnitState;
41339
47225
class PragmaOnce;
41340
 
class CCExprResolve;
41341
 
class CExprResolve;
41342
 
namespace Puma {
41343
 
 
41344
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47226
class CMatchSyntax;
 
47227
namespace Puma {
 
47228
 
 
47229
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47230
 
 
47231
#line 47232 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47232
} // closed Puma
 
47233
 
 
47234
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47235
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47236
#include "CCExprResolveH.ah"
 
47237
#endif
 
47238
namespace Puma {
 
47239
 
 
47240
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47241
 
 
47242
#line 47243 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47243
} // closed Puma
 
47244
 
 
47245
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47246
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47247
#include "CExprResolveH.ah"
 
47248
#endif
 
47249
namespace Puma {
 
47250
 
 
47251
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41345
47252
class CT_WideString : public CT_String {
41346
 
#line 41347 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47253
#line 47254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47254
  friend class ::CCExprResolve;
 
47255
  friend class ::CExprResolve;
41347
47256
  friend class ::WinIfExists;
41348
47257
  friend class ::WinImportHandler;
41349
47258
  friend class ::WinMacros;
41350
 
  friend class ::CMatchSyntax;
41351
 
  friend class ::ExtGnu;
 
47259
  friend class ::WinAsm;
 
47260
  friend class ::WinDeclSpecs;
 
47261
  friend class ::WinMemberExplSpec;
 
47262
  friend class ::WinTypeKeywords;
 
47263
  friend class ::WinFriend;
41352
47264
  friend class ::ExtAC;
41353
47265
  friend class ::ExtACBuilderCoupling;
41354
47266
  friend class ::ExtACSyntaxCoupling;
41355
47267
  friend class ::ExtACTree;
41356
47268
  friend class ::ExtACKeywords;
41357
 
  friend class ::WinAsm;
41358
 
  friend class ::WinDeclSpecs;
41359
 
  friend class ::WinMemberExplSpec;
41360
 
  friend class ::WinTypeKeywords;
 
47269
  friend class ::ExtGnu;
41361
47270
  friend class ::PragmaOnceUnitState;
41362
47271
  friend class ::PragmaOnce;
41363
 
  friend class ::CCExprResolve;
41364
 
  friend class ::CExprResolve;
 
47272
  friend class ::CMatchSyntax;
41365
47273
 
41366
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47274
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41367
47275
 
41368
47276
public:
 
47277
  /** Constructor.
 
47278
   *  \param size The number of sub-strings. */
41369
47279
  CT_WideString (int size) : CT_String (size) {}
 
47280
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41370
47281
  static const char *NodeId ();
 
47282
  /** Get the name of the node. Can be compared with NodeId(). */
41371
47283
  const char *NodeName () const { return NodeId (); }
41372
47284
   private:
41373
47285
  typedef CT_WideString CCExprResolveExpr;
41374
47286
 
41375
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47287
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
41376
47288
 public :
41377
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
47289
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
41378
47290
  typedef CT_WideString CExprResolveExpr;
41379
47291
 
41380
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47292
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
41381
47293
 public :
41382
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
41383
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47294
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47295
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41384
47296
};
41385
47297
 
 
47298
/** \class CT_Integer CTree.h Puma/CTree.h
 
47299
 *  Tree node representing an integer constant. */
41386
47300
 
41387
 
#line 41388 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47301
#line 47302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
41388
47302
} // closed Puma
 
47303
class CCExprResolve;
 
47304
class CExprResolve;
41389
47305
class WinIfExists;
41390
47306
class WinImportHandler;
41391
47307
class WinMacros;
41392
 
class CMatchSyntax;
41393
 
class ExtGnu;
 
47308
class WinAsm;
 
47309
class WinDeclSpecs;
 
47310
class WinMemberExplSpec;
 
47311
class WinTypeKeywords;
 
47312
class WinFriend;
41394
47313
class ExtAC;
41395
47314
class ExtACBuilderCoupling;
41396
47315
class ExtACSyntaxCoupling;
41397
47316
class ExtACTree;
41398
47317
class ExtACKeywords;
41399
 
class WinAsm;
41400
 
class WinDeclSpecs;
41401
 
class WinMemberExplSpec;
41402
 
class WinTypeKeywords;
 
47318
class ExtGnu;
41403
47319
class PragmaOnceUnitState;
41404
47320
class PragmaOnce;
41405
 
class CCExprResolve;
41406
 
class CExprResolve;
41407
 
namespace Puma {
41408
 
 
41409
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47321
class CMatchSyntax;
 
47322
namespace Puma {
 
47323
 
 
47324
#line 683 "/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/Parser.cc"
 
47327
} // closed Puma
 
47328
 
 
47329
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47330
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47331
#include "CCExprResolveH.ah"
 
47332
#endif
 
47333
namespace Puma {
 
47334
 
 
47335
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47336
 
 
47337
#line 47338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47338
} // closed Puma
 
47339
 
 
47340
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47341
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47342
#include "CExprResolveH.ah"
 
47343
#endif
 
47344
namespace Puma {
 
47345
 
 
47346
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41410
47347
class CT_Integer : public CT_Expression {
41411
 
#line 41412 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47348
#line 47349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47349
  friend class ::CCExprResolve;
 
47350
  friend class ::CExprResolve;
41412
47351
  friend class ::WinIfExists;
41413
47352
  friend class ::WinImportHandler;
41414
47353
  friend class ::WinMacros;
41415
 
  friend class ::CMatchSyntax;
41416
 
  friend class ::ExtGnu;
 
47354
  friend class ::WinAsm;
 
47355
  friend class ::WinDeclSpecs;
 
47356
  friend class ::WinMemberExplSpec;
 
47357
  friend class ::WinTypeKeywords;
 
47358
  friend class ::WinFriend;
41417
47359
  friend class ::ExtAC;
41418
47360
  friend class ::ExtACBuilderCoupling;
41419
47361
  friend class ::ExtACSyntaxCoupling;
41420
47362
  friend class ::ExtACTree;
41421
47363
  friend class ::ExtACKeywords;
41422
 
  friend class ::WinAsm;
41423
 
  friend class ::WinDeclSpecs;
41424
 
  friend class ::WinMemberExplSpec;
41425
 
  friend class ::WinTypeKeywords;
 
47364
  friend class ::ExtGnu;
41426
47365
  friend class ::PragmaOnceUnitState;
41427
47366
  friend class ::PragmaOnce;
41428
 
  friend class ::CCExprResolve;
41429
 
  friend class ::CExprResolve;
 
47367
  friend class ::CMatchSyntax;
41430
47368
 
41431
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47369
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41432
47370
 
41433
47371
  CTree *_value;  // CT_Token
41434
47372
 
41435
47373
public:
41436
 
  CT_Integer (CTree *t) : _value (t) {}
 
47374
  /** Constructor.
 
47375
   *  \param token The token containing the integer value. */
 
47376
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
47377
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41437
47378
  static const char *NodeId ();
 
47379
  /** Get the name of the node. Can be compared with NodeId(). */
41438
47380
  const char *NodeName () const { return NodeId (); }
 
47381
  /** Get the number of sons. */
41439
47382
  int Sons () const { return _value ? 1 : 0; }
 
47383
  /** Get the n-th son.
 
47384
   *  \param n The index of the son.
 
47385
   *  \return The n-th son or NULL. */
41440
47386
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
47387
  /** Replace a son.
 
47388
   *  \param old_son The son to replace.
 
47389
   *  \param new_son The new son. */
41441
47390
  void ReplaceSon (CTree *old_son, CTree *new_son) 
41442
 
   { if (old_son == _value) _value = new_son; }
 
47391
   { CTree::ReplaceSon (_value, old_son, new_son); }
41443
47392
   private:
41444
47393
  typedef CT_Integer CCExprResolveExpr;
41445
47394
 
41446
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47395
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
41447
47396
 public :
41448
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
47397
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
41449
47398
  typedef CT_Integer CExprResolveExpr;
41450
47399
 
41451
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47400
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
41452
47401
 public :
41453
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
41454
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47402
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47403
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41455
47404
};
41456
47405
 
 
47406
/** \class CT_Character CTree.h Puma/CTree.h
 
47407
 *  Tree node representing a single character constant. */
41457
47408
 
41458
 
#line 41459 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47409
#line 47410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
41459
47410
} // closed Puma
 
47411
class CCExprResolve;
 
47412
class CExprResolve;
41460
47413
class WinIfExists;
41461
47414
class WinImportHandler;
41462
47415
class WinMacros;
41463
 
class CMatchSyntax;
41464
 
class ExtGnu;
 
47416
class WinAsm;
 
47417
class WinDeclSpecs;
 
47418
class WinMemberExplSpec;
 
47419
class WinTypeKeywords;
 
47420
class WinFriend;
41465
47421
class ExtAC;
41466
47422
class ExtACBuilderCoupling;
41467
47423
class ExtACSyntaxCoupling;
41468
47424
class ExtACTree;
41469
47425
class ExtACKeywords;
41470
 
class WinAsm;
41471
 
class WinDeclSpecs;
41472
 
class WinMemberExplSpec;
41473
 
class WinTypeKeywords;
 
47426
class ExtGnu;
41474
47427
class PragmaOnceUnitState;
41475
47428
class PragmaOnce;
41476
 
class CCExprResolve;
41477
 
class CExprResolve;
41478
 
namespace Puma {
41479
 
 
41480
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47429
class CMatchSyntax;
 
47430
namespace Puma {
 
47431
 
 
47432
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47433
 
 
47434
#line 47435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47435
} // closed Puma
 
47436
 
 
47437
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47438
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47439
#include "CCExprResolveH.ah"
 
47440
#endif
 
47441
namespace Puma {
 
47442
 
 
47443
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47444
 
 
47445
#line 47446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47446
} // closed Puma
 
47447
 
 
47448
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47449
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47450
#include "CExprResolveH.ah"
 
47451
#endif
 
47452
namespace Puma {
 
47453
 
 
47454
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41481
47455
class CT_Character : public CT_Expression {
41482
 
#line 41483 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47456
#line 47457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47457
  friend class ::CCExprResolve;
 
47458
  friend class ::CExprResolve;
41483
47459
  friend class ::WinIfExists;
41484
47460
  friend class ::WinImportHandler;
41485
47461
  friend class ::WinMacros;
41486
 
  friend class ::CMatchSyntax;
41487
 
  friend class ::ExtGnu;
 
47462
  friend class ::WinAsm;
 
47463
  friend class ::WinDeclSpecs;
 
47464
  friend class ::WinMemberExplSpec;
 
47465
  friend class ::WinTypeKeywords;
 
47466
  friend class ::WinFriend;
41488
47467
  friend class ::ExtAC;
41489
47468
  friend class ::ExtACBuilderCoupling;
41490
47469
  friend class ::ExtACSyntaxCoupling;
41491
47470
  friend class ::ExtACTree;
41492
47471
  friend class ::ExtACKeywords;
41493
 
  friend class ::WinAsm;
41494
 
  friend class ::WinDeclSpecs;
41495
 
  friend class ::WinMemberExplSpec;
41496
 
  friend class ::WinTypeKeywords;
 
47472
  friend class ::ExtGnu;
41497
47473
  friend class ::PragmaOnceUnitState;
41498
47474
  friend class ::PragmaOnce;
41499
 
  friend class ::CCExprResolve;
41500
 
  friend class ::CExprResolve;
 
47475
  friend class ::CMatchSyntax;
41501
47476
 
41502
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47477
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41503
47478
 
41504
47479
  CTree *_value;  // CT_Token
41505
47480
 
41506
47481
public:
41507
 
  CT_Character (CTree *t) : _value (t) {}
 
47482
  /** Constructor.
 
47483
   *  \param token The token containing the character value. */
 
47484
  CT_Character (CTree *token) { AddSon (_value, token); }
 
47485
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41508
47486
  static const char *NodeId ();
 
47487
  /** Get the name of the node. Can be compared with NodeId(). */
41509
47488
  const char *NodeName () const { return NodeId (); }
 
47489
  /** Get the number of sons. */
41510
47490
  int Sons () const { return 1; }
 
47491
  /** Get the n-th son.
 
47492
   *  \param n The index of the son.
 
47493
   *  \return The n-th son or NULL. */
41511
47494
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
47495
  /** Replace a son.
 
47496
   *  \param old_son The son to replace.
 
47497
   *  \param new_son The new son. */
41512
47498
  void ReplaceSon (CTree *old_son, CTree *new_son) 
41513
 
   { if (old_son == _value) _value = new_son; }
 
47499
   { CTree::ReplaceSon (_value, old_son, new_son); }
41514
47500
   private:
41515
47501
  typedef CT_Character CCExprResolveExpr;
41516
47502
 
41517
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47503
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
41518
47504
 public :
41519
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
47505
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
41520
47506
  typedef CT_Character CExprResolveExpr;
41521
47507
 
41522
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47508
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
41523
47509
 public :
41524
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
41525
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47510
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47511
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41526
47512
};
41527
47513
 
 
47514
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
47515
 *  Tree node representing a wide character constant. */
41528
47516
 
41529
 
#line 41530 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47517
#line 47518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
41530
47518
} // closed Puma
 
47519
class CCExprResolve;
 
47520
class CExprResolve;
41531
47521
class WinIfExists;
41532
47522
class WinImportHandler;
41533
47523
class WinMacros;
41534
 
class CMatchSyntax;
41535
 
class ExtGnu;
 
47524
class WinAsm;
 
47525
class WinDeclSpecs;
 
47526
class WinMemberExplSpec;
 
47527
class WinTypeKeywords;
 
47528
class WinFriend;
41536
47529
class ExtAC;
41537
47530
class ExtACBuilderCoupling;
41538
47531
class ExtACSyntaxCoupling;
41539
47532
class ExtACTree;
41540
47533
class ExtACKeywords;
41541
 
class WinAsm;
41542
 
class WinDeclSpecs;
41543
 
class WinMemberExplSpec;
41544
 
class WinTypeKeywords;
 
47534
class ExtGnu;
41545
47535
class PragmaOnceUnitState;
41546
47536
class PragmaOnce;
41547
 
class CCExprResolve;
41548
 
class CExprResolve;
41549
 
namespace Puma {
41550
 
 
41551
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47537
class CMatchSyntax;
 
47538
namespace Puma {
 
47539
 
 
47540
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47541
 
 
47542
#line 47543 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47543
} // closed Puma
 
47544
 
 
47545
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47546
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47547
#include "CCExprResolveH.ah"
 
47548
#endif
 
47549
namespace Puma {
 
47550
 
 
47551
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47552
 
 
47553
#line 47554 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47554
} // closed Puma
 
47555
 
 
47556
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47557
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47558
#include "CExprResolveH.ah"
 
47559
#endif
 
47560
namespace Puma {
 
47561
 
 
47562
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41552
47563
class CT_WideCharacter : public CT_Character {
41553
 
#line 41554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47564
#line 47565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47565
  friend class ::CCExprResolve;
 
47566
  friend class ::CExprResolve;
41554
47567
  friend class ::WinIfExists;
41555
47568
  friend class ::WinImportHandler;
41556
47569
  friend class ::WinMacros;
41557
 
  friend class ::CMatchSyntax;
41558
 
  friend class ::ExtGnu;
 
47570
  friend class ::WinAsm;
 
47571
  friend class ::WinDeclSpecs;
 
47572
  friend class ::WinMemberExplSpec;
 
47573
  friend class ::WinTypeKeywords;
 
47574
  friend class ::WinFriend;
41559
47575
  friend class ::ExtAC;
41560
47576
  friend class ::ExtACBuilderCoupling;
41561
47577
  friend class ::ExtACSyntaxCoupling;
41562
47578
  friend class ::ExtACTree;
41563
47579
  friend class ::ExtACKeywords;
41564
 
  friend class ::WinAsm;
41565
 
  friend class ::WinDeclSpecs;
41566
 
  friend class ::WinMemberExplSpec;
41567
 
  friend class ::WinTypeKeywords;
 
47580
  friend class ::ExtGnu;
41568
47581
  friend class ::PragmaOnceUnitState;
41569
47582
  friend class ::PragmaOnce;
41570
 
  friend class ::CCExprResolve;
41571
 
  friend class ::CExprResolve;
41572
 
 
41573
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
41574
 
 
41575
 
  CTree *_value;  // CT_Token
 
47583
  friend class ::CMatchSyntax;
 
47584
 
 
47585
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41576
47586
 
41577
47587
public:
41578
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
47588
  /** Constructor.
 
47589
   *  \param token The token containing the wide character value. */
 
47590
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
47591
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41579
47592
  static const char *NodeId ();
 
47593
  /** Get the name of the node. Can be compared with NodeId(). */
41580
47594
  const char *NodeName () const { return NodeId (); }
41581
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
41582
 
   { if (old_son == _value) _value = new_son; }
41583
47595
   private:
41584
47596
  typedef CT_WideCharacter CCExprResolveExpr;
41585
47597
 
41586
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47598
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
41587
47599
 public :
41588
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
47600
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
41589
47601
  typedef CT_WideCharacter CExprResolveExpr;
41590
47602
 
41591
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47603
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
41592
47604
 public :
41593
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
41594
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47605
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47606
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41595
47607
};
41596
47608
 
 
47609
/** \class CT_Float CTree.h Puma/CTree.h
 
47610
 *  Tree node representing a floating point constant. */
41597
47611
 
41598
 
#line 41599 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47612
#line 47613 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
41599
47613
} // closed Puma
 
47614
class CCExprResolve;
 
47615
class CExprResolve;
41600
47616
class WinIfExists;
41601
47617
class WinImportHandler;
41602
47618
class WinMacros;
41603
 
class CMatchSyntax;
41604
 
class ExtGnu;
 
47619
class WinAsm;
 
47620
class WinDeclSpecs;
 
47621
class WinMemberExplSpec;
 
47622
class WinTypeKeywords;
 
47623
class WinFriend;
41605
47624
class ExtAC;
41606
47625
class ExtACBuilderCoupling;
41607
47626
class ExtACSyntaxCoupling;
41608
47627
class ExtACTree;
41609
47628
class ExtACKeywords;
41610
 
class WinAsm;
41611
 
class WinDeclSpecs;
41612
 
class WinMemberExplSpec;
41613
 
class WinTypeKeywords;
 
47629
class ExtGnu;
41614
47630
class PragmaOnceUnitState;
41615
47631
class PragmaOnce;
41616
 
class CCExprResolve;
41617
 
class CExprResolve;
41618
 
namespace Puma {
41619
 
 
41620
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47632
class CMatchSyntax;
 
47633
namespace Puma {
 
47634
 
 
47635
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47636
 
 
47637
#line 47638 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47638
} // closed Puma
 
47639
 
 
47640
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47641
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47642
#include "CCExprResolveH.ah"
 
47643
#endif
 
47644
namespace Puma {
 
47645
 
 
47646
#line 748 "/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/Parser.cc"
 
47649
} // closed Puma
 
47650
 
 
47651
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47652
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47653
#include "CExprResolveH.ah"
 
47654
#endif
 
47655
namespace Puma {
 
47656
 
 
47657
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41621
47658
class CT_Float : public CT_Expression {
41622
 
#line 41623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47659
#line 47660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47660
  friend class ::CCExprResolve;
 
47661
  friend class ::CExprResolve;
41623
47662
  friend class ::WinIfExists;
41624
47663
  friend class ::WinImportHandler;
41625
47664
  friend class ::WinMacros;
41626
 
  friend class ::CMatchSyntax;
41627
 
  friend class ::ExtGnu;
 
47665
  friend class ::WinAsm;
 
47666
  friend class ::WinDeclSpecs;
 
47667
  friend class ::WinMemberExplSpec;
 
47668
  friend class ::WinTypeKeywords;
 
47669
  friend class ::WinFriend;
41628
47670
  friend class ::ExtAC;
41629
47671
  friend class ::ExtACBuilderCoupling;
41630
47672
  friend class ::ExtACSyntaxCoupling;
41631
47673
  friend class ::ExtACTree;
41632
47674
  friend class ::ExtACKeywords;
41633
 
  friend class ::WinAsm;
41634
 
  friend class ::WinDeclSpecs;
41635
 
  friend class ::WinMemberExplSpec;
41636
 
  friend class ::WinTypeKeywords;
 
47675
  friend class ::ExtGnu;
41637
47676
  friend class ::PragmaOnceUnitState;
41638
47677
  friend class ::PragmaOnce;
41639
 
  friend class ::CCExprResolve;
41640
 
  friend class ::CExprResolve;
 
47678
  friend class ::CMatchSyntax;
41641
47679
 
41642
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47680
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41643
47681
 
41644
47682
  CTree *_value;  // CT_Token
41645
47683
 
41646
47684
public:
41647
 
  CT_Float (CTree *t) : _value (t) {}
 
47685
  /** Constructor.
 
47686
   *  \param token The token containing the floating point value. */
 
47687
  CT_Float (CTree *token) { AddSon (_value, token); }
 
47688
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41648
47689
  static const char *NodeId ();
 
47690
  /** Get the name of the node. Can be compared with NodeId(). */
41649
47691
  const char *NodeName () const { return NodeId (); }
 
47692
  /** Get the number of sons. */
41650
47693
  int Sons () const { return 1; }
 
47694
  /** Get the n-th son.
 
47695
   *  \param n The index of the son.
 
47696
   *  \return The n-th son or NULL. */
41651
47697
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
47698
  /** Replace a son.
 
47699
   *  \param old_son The son to replace.
 
47700
   *  \param new_son The new son. */
41652
47701
  void ReplaceSon (CTree *old_son, CTree *new_son) 
41653
 
   { if (old_son == _value) _value = new_son; }
 
47702
   { CTree::ReplaceSon (_value, old_son, new_son); }
41654
47703
   private:
41655
47704
  typedef CT_Float CCExprResolveExpr;
41656
47705
 
41657
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47706
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
41658
47707
 public :
41659
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
47708
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
41660
47709
  typedef CT_Float CExprResolveExpr;
41661
47710
 
41662
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47711
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
41663
47712
 public :
41664
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
41665
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47713
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47714
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41666
47715
};
41667
47716
 
 
47717
/** \class CT_Bool CTree.h Puma/CTree.h
 
47718
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
41668
47719
 
41669
 
#line 41670 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47720
#line 47721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
41670
47721
} // closed Puma
 
47722
class CCExprResolve;
 
47723
class CExprResolve;
41671
47724
class WinIfExists;
41672
47725
class WinImportHandler;
41673
47726
class WinMacros;
41674
 
class CMatchSyntax;
41675
 
class ExtGnu;
 
47727
class WinAsm;
 
47728
class WinDeclSpecs;
 
47729
class WinMemberExplSpec;
 
47730
class WinTypeKeywords;
 
47731
class WinFriend;
41676
47732
class ExtAC;
41677
47733
class ExtACBuilderCoupling;
41678
47734
class ExtACSyntaxCoupling;
41679
47735
class ExtACTree;
41680
47736
class ExtACKeywords;
41681
 
class WinAsm;
41682
 
class WinDeclSpecs;
41683
 
class WinMemberExplSpec;
41684
 
class WinTypeKeywords;
 
47737
class ExtGnu;
41685
47738
class PragmaOnceUnitState;
41686
47739
class PragmaOnce;
41687
 
class CCExprResolve;
41688
 
class CExprResolve;
41689
 
namespace Puma {
41690
 
 
41691
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47740
class CMatchSyntax;
 
47741
namespace Puma {
 
47742
 
 
47743
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47744
 
 
47745
#line 47746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47746
} // closed Puma
 
47747
 
 
47748
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47749
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47750
#include "CCExprResolveH.ah"
 
47751
#endif
 
47752
namespace Puma {
 
47753
 
 
47754
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47755
 
 
47756
#line 47757 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47757
} // closed Puma
 
47758
 
 
47759
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47760
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47761
#include "CExprResolveH.ah"
 
47762
#endif
 
47763
namespace Puma {
 
47764
 
 
47765
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41692
47766
class CT_Bool : public CT_Expression {
41693
 
#line 41694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47767
#line 47768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47768
  friend class ::CCExprResolve;
 
47769
  friend class ::CExprResolve;
41694
47770
  friend class ::WinIfExists;
41695
47771
  friend class ::WinImportHandler;
41696
47772
  friend class ::WinMacros;
41697
 
  friend class ::CMatchSyntax;
41698
 
  friend class ::ExtGnu;
 
47773
  friend class ::WinAsm;
 
47774
  friend class ::WinDeclSpecs;
 
47775
  friend class ::WinMemberExplSpec;
 
47776
  friend class ::WinTypeKeywords;
 
47777
  friend class ::WinFriend;
41699
47778
  friend class ::ExtAC;
41700
47779
  friend class ::ExtACBuilderCoupling;
41701
47780
  friend class ::ExtACSyntaxCoupling;
41702
47781
  friend class ::ExtACTree;
41703
47782
  friend class ::ExtACKeywords;
41704
 
  friend class ::WinAsm;
41705
 
  friend class ::WinDeclSpecs;
41706
 
  friend class ::WinMemberExplSpec;
41707
 
  friend class ::WinTypeKeywords;
 
47783
  friend class ::ExtGnu;
41708
47784
  friend class ::PragmaOnceUnitState;
41709
47785
  friend class ::PragmaOnce;
41710
 
  friend class ::CCExprResolve;
41711
 
  friend class ::CExprResolve;
 
47786
  friend class ::CMatchSyntax;
41712
47787
 
41713
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47788
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41714
47789
 
41715
47790
  CTree *_value;  // CT_Token
41716
47791
 
41717
47792
public:
41718
 
  CT_Bool (CTree *t) : _value (t) {}
 
47793
  /** Constructor.
 
47794
   *  \param token The token containing the boolean value. */
 
47795
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
47796
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41719
47797
  static const char *NodeId ();
 
47798
  /** Get the name of the node. Can be compared with NodeId(). */
41720
47799
  const char *NodeName () const { return NodeId (); }
 
47800
  /** Get the number of sons. */
41721
47801
  int Sons () const { return 1; }
 
47802
  /** Get the n-th son.
 
47803
   *  \param n The index of the son.
 
47804
   *  \return The n-th son or NULL. */
41722
47805
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
47806
  /** Replace a son.
 
47807
   *  \param old_son The son to replace.
 
47808
   *  \param new_son The new son. */
41723
47809
  void ReplaceSon (CTree *old_son, CTree *new_son) 
41724
 
   { if (old_son == _value) _value = new_son; }
 
47810
   { CTree::ReplaceSon (_value, old_son, new_son); }
41725
47811
   private:
41726
47812
  typedef CT_Bool CCExprResolveExpr;
41727
47813
 
41728
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47814
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
41729
47815
 public :
41730
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
47816
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
41731
47817
  typedef CT_Bool CExprResolveExpr;
41732
47818
 
41733
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47819
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
41734
47820
 public :
41735
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
41736
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47821
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47822
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41737
47823
};
41738
47824
 
 
47825
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
47826
 *  Tree node representing a braced expression, e.g. (a+b). */
41739
47827
 
41740
 
#line 41741 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47828
#line 47829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
41741
47829
} // closed Puma
 
47830
class CCExprResolve;
 
47831
class CExprResolve;
41742
47832
class WinIfExists;
41743
47833
class WinImportHandler;
41744
47834
class WinMacros;
41745
 
class CMatchSyntax;
41746
 
class ExtGnu;
 
47835
class WinAsm;
 
47836
class WinDeclSpecs;
 
47837
class WinMemberExplSpec;
 
47838
class WinTypeKeywords;
 
47839
class WinFriend;
41747
47840
class ExtAC;
41748
47841
class ExtACBuilderCoupling;
41749
47842
class ExtACSyntaxCoupling;
41750
47843
class ExtACTree;
41751
47844
class ExtACKeywords;
41752
 
class WinAsm;
41753
 
class WinDeclSpecs;
41754
 
class WinMemberExplSpec;
41755
 
class WinTypeKeywords;
 
47845
class ExtGnu;
41756
47846
class PragmaOnceUnitState;
41757
47847
class PragmaOnce;
41758
 
class CCExprResolve;
41759
 
class CExprResolve;
41760
 
namespace Puma {
41761
 
 
41762
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47848
class CMatchSyntax;
 
47849
namespace Puma {
 
47850
 
 
47851
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47852
 
 
47853
#line 47854 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47854
} // closed Puma
 
47855
 
 
47856
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47857
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47858
#include "CCExprResolveH.ah"
 
47859
#endif
 
47860
namespace Puma {
 
47861
 
 
47862
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47863
 
 
47864
#line 47865 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47865
} // closed Puma
 
47866
 
 
47867
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47868
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47869
#include "CExprResolveH.ah"
 
47870
#endif
 
47871
namespace Puma {
 
47872
 
 
47873
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41763
47874
class CT_BracedExpr : public CT_Expression {
41764
 
#line 41765 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47875
#line 47876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47876
  friend class ::CCExprResolve;
 
47877
  friend class ::CExprResolve;
41765
47878
  friend class ::WinIfExists;
41766
47879
  friend class ::WinImportHandler;
41767
47880
  friend class ::WinMacros;
41768
 
  friend class ::CMatchSyntax;
41769
 
  friend class ::ExtGnu;
 
47881
  friend class ::WinAsm;
 
47882
  friend class ::WinDeclSpecs;
 
47883
  friend class ::WinMemberExplSpec;
 
47884
  friend class ::WinTypeKeywords;
 
47885
  friend class ::WinFriend;
41770
47886
  friend class ::ExtAC;
41771
47887
  friend class ::ExtACBuilderCoupling;
41772
47888
  friend class ::ExtACSyntaxCoupling;
41773
47889
  friend class ::ExtACTree;
41774
47890
  friend class ::ExtACKeywords;
41775
 
  friend class ::WinAsm;
41776
 
  friend class ::WinDeclSpecs;
41777
 
  friend class ::WinMemberExplSpec;
41778
 
  friend class ::WinTypeKeywords;
 
47891
  friend class ::ExtGnu;
41779
47892
  friend class ::PragmaOnceUnitState;
41780
47893
  friend class ::PragmaOnce;
41781
 
  friend class ::CCExprResolve;
41782
 
  friend class ::CExprResolve;
 
47894
  friend class ::CMatchSyntax;
41783
47895
 
41784
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47896
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41785
47897
 
41786
47898
  CTree *sons[3]; // open, expr, close
41787
47899
 
41788
47900
public:
 
47901
  /** Constructor.
 
47902
   *  \param o The opening brace.
 
47903
   *  \param e The enclosed expression.
 
47904
   *  \param c The closing brace. */
41789
47905
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
41790
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
47906
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
41791
47907
  }
 
47908
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41792
47909
  static const char *NodeId ();
 
47910
  /** Get the name of the node. Can be compared with NodeId(). */
41793
47911
  const char *NodeName () const { return NodeId (); }
 
47912
  /** Get the number of sons. */
41794
47913
  int Sons () const { return 3; }
 
47914
  /** Get the n-th son.
 
47915
   *  \param n The index of the son.
 
47916
   *  \return The n-th son or NULL. */
41795
47917
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
47918
  /** Get the enclosed expression. */
41796
47919
  CTree *Expr () const { return sons[1]; }
 
47920
  /** Get the type of the enclosed expression. */
41797
47921
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
47922
  /** Get the value of the enclosed expression. */
41798
47923
  CExprValue *Value () const { return Expr ()->Value (); }
 
47924
  /** Get the semantic value object. */
41799
47925
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
47926
  /** Replace a son.
 
47927
   *  \param old_son The son to replace.
 
47928
   *  \param new_son The new son. */
41800
47929
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
41801
47930
    CTree::ReplaceSon (sons, 3, old_son, new_son);
41802
47931
  }
41803
47932
   private:
41804
47933
  typedef CT_BracedExpr CCExprResolveExpr;
41805
47934
 
41806
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
47935
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
41807
47936
 public :
41808
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
47937
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
41809
47938
  typedef CT_BracedExpr CExprResolveExpr;
41810
47939
 
41811
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
47940
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
41812
47941
 public :
41813
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
41814
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47942
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
47943
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41815
47944
};
41816
47945
 
 
47946
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
47947
 *  Base class for all tree nodes representing a name. */
41817
47948
 
41818
 
#line 41819 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47949
#line 47950 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
41819
47950
} // closed Puma
 
47951
class CCExprResolve;
 
47952
class CExprResolve;
41820
47953
class WinIfExists;
41821
47954
class WinImportHandler;
41822
47955
class WinMacros;
41823
 
class CMatchSyntax;
41824
 
class ExtGnu;
 
47956
class WinAsm;
 
47957
class WinDeclSpecs;
 
47958
class WinMemberExplSpec;
 
47959
class WinTypeKeywords;
 
47960
class WinFriend;
41825
47961
class ExtAC;
41826
47962
class ExtACBuilderCoupling;
41827
47963
class ExtACSyntaxCoupling;
41828
47964
class ExtACTree;
41829
47965
class ExtACKeywords;
41830
 
class WinAsm;
41831
 
class WinDeclSpecs;
41832
 
class WinMemberExplSpec;
41833
 
class WinTypeKeywords;
 
47966
class ExtGnu;
41834
47967
class PragmaOnceUnitState;
41835
47968
class PragmaOnce;
41836
 
class CCExprResolve;
41837
 
class CExprResolve;
41838
 
namespace Puma {
41839
 
 
41840
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47969
class CMatchSyntax;
 
47970
namespace Puma {
 
47971
 
 
47972
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47973
 
 
47974
#line 47975 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47975
} // closed Puma
 
47976
 
 
47977
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47978
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
47979
#include "CCExprResolveH.ah"
 
47980
#endif
 
47981
namespace Puma {
 
47982
 
 
47983
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
47984
 
 
47985
#line 47986 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47986
} // closed Puma
 
47987
 
 
47988
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47989
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
47990
#include "CExprResolveH.ah"
 
47991
#endif
 
47992
namespace Puma {
 
47993
 
 
47994
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41841
47995
class CT_SimpleName : public CT_List, public Printable, 
41842
47996
                      public CSemValue, public CSemObject {
41843
 
#line 41844 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
47997
#line 47998 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
47998
  friend class ::CCExprResolve;
 
47999
  friend class ::CExprResolve;
41844
48000
  friend class ::WinIfExists;
41845
48001
  friend class ::WinImportHandler;
41846
48002
  friend class ::WinMacros;
41847
 
  friend class ::CMatchSyntax;
41848
 
  friend class ::ExtGnu;
 
48003
  friend class ::WinAsm;
 
48004
  friend class ::WinDeclSpecs;
 
48005
  friend class ::WinMemberExplSpec;
 
48006
  friend class ::WinTypeKeywords;
 
48007
  friend class ::WinFriend;
41849
48008
  friend class ::ExtAC;
41850
48009
  friend class ::ExtACBuilderCoupling;
41851
48010
  friend class ::ExtACSyntaxCoupling;
41852
48011
  friend class ::ExtACTree;
41853
48012
  friend class ::ExtACKeywords;
41854
 
  friend class ::WinAsm;
41855
 
  friend class ::WinDeclSpecs;
41856
 
  friend class ::WinMemberExplSpec;
41857
 
  friend class ::WinTypeKeywords;
 
48013
  friend class ::ExtGnu;
41858
48014
  friend class ::PragmaOnceUnitState;
41859
48015
  friend class ::PragmaOnce;
41860
 
  friend class ::CCExprResolve;
41861
 
  friend class ::CExprResolve;
 
48016
  friend class ::CMatchSyntax;
41862
48017
 
41863
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48018
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41864
48019
 
41865
48020
protected:
 
48021
  /** Constructor.
 
48022
   *  \param size The number of sub-names (for qualified names). */
41866
48023
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
48024
  /** Constructor.
 
48025
   *  \param size The number of sub-names (for qualified names). 
 
48026
   *  \param properties Additional name list properties (for root qualified names). */
41867
48027
  CT_SimpleName (int size, int properties) : 
41868
48028
    CT_List (size, 2, properties) {}
41869
48029
  
41870
48030
public:
 
48031
  /** Constructor.
 
48032
   *  \param n The sub-tree containing the name. */
41871
48033
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
48034
  /** Get the identifier for this node type. Can be compared with NodeName(). */
41872
48035
  static const char *NodeId ();
 
48036
  /** Get the name of the node. Can be compared with NodeId(). */
41873
48037
  const char *NodeName () const { return NodeId (); }
 
48038
  /** Get the string containing the name. */
41874
48039
  virtual const char *Text () const 
41875
48040
   { return Son (Sons ()-1)->token ()->text (); }
 
48041
  /** Print the name on the given stream. 
 
48042
   *  \param os The output stream. */
41876
48043
  virtual void print (ostream &os) const { os << Text (); }
 
48044
  /** Get this. */
41877
48045
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
48046
  /** Get the type of the entity represented by the name. */
41878
48047
  CTypeInfo *Type () const { return type; }
 
48048
  /** Get the value of the entity represented by the name. */ 
41879
48049
  CExprValue *Value () const { return value; }
 
48050
  /** Get the sematic value information object. */
41880
48051
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
48052
  /** Get the sematic information object. */
41881
48053
  CSemObject *SemObject () const { return (CSemObject*)this; }
41882
 
  // special new / delete with reusing memory
41883
 
  void *operator new (size_t);
41884
 
  void  operator delete (void *);
41885
 
  // classification function
 
48054
  /** Get this. */
41886
48055
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
48056
 
 
48057
public:
 
48058
  /** Own new operator reusing memory. */
 
48059
  void *operator new (size_t);
 
48060
  /** Own delete operator. */
 
48061
  void operator delete (void *);
41887
48062
   private:
41888
48063
  typedef CT_SimpleName CCExprResolveExpr;
41889
48064
 
41890
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48065
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
41891
48066
 public :
41892
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48067
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
41893
48068
  typedef CT_SimpleName CExprResolveExpr;
41894
48069
 
41895
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48070
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
41896
48071
 public :
41897
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
41898
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48072
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48073
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41899
48074
};
41900
48075
 
 
48076
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
48077
 *  Base class for tree nodes representing a special name, like destructor names. */
41901
48078
 
41902
 
#line 41903 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48079
#line 48080 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
41903
48080
} // closed Puma
 
48081
class CCExprResolve;
 
48082
class CExprResolve;
41904
48083
class WinIfExists;
41905
48084
class WinImportHandler;
41906
48085
class WinMacros;
41907
 
class CMatchSyntax;
41908
 
class ExtGnu;
 
48086
class WinAsm;
 
48087
class WinDeclSpecs;
 
48088
class WinMemberExplSpec;
 
48089
class WinTypeKeywords;
 
48090
class WinFriend;
41909
48091
class ExtAC;
41910
48092
class ExtACBuilderCoupling;
41911
48093
class ExtACSyntaxCoupling;
41912
48094
class ExtACTree;
41913
48095
class ExtACKeywords;
41914
 
class WinAsm;
41915
 
class WinDeclSpecs;
41916
 
class WinMemberExplSpec;
41917
 
class WinTypeKeywords;
 
48096
class ExtGnu;
41918
48097
class PragmaOnceUnitState;
41919
48098
class PragmaOnce;
41920
 
class CCExprResolve;
41921
 
class CExprResolve;
41922
 
namespace Puma {
41923
 
 
41924
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48099
class CMatchSyntax;
 
48100
namespace Puma {
 
48101
 
 
48102
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48103
 
 
48104
#line 48105 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48105
} // closed Puma
 
48106
 
 
48107
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48108
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48109
#include "CCExprResolveH.ah"
 
48110
#endif
 
48111
namespace Puma {
 
48112
 
 
48113
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48114
 
 
48115
#line 48116 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48116
} // closed Puma
 
48117
 
 
48118
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48119
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48120
#include "CExprResolveH.ah"
 
48121
#endif
 
48122
namespace Puma {
 
48123
 
 
48124
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41925
48125
class CT_SpecialName : public CT_SimpleName {
41926
 
#line 41927 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48126
#line 48127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48127
  friend class ::CCExprResolve;
 
48128
  friend class ::CExprResolve;
41927
48129
  friend class ::WinIfExists;
41928
48130
  friend class ::WinImportHandler;
41929
48131
  friend class ::WinMacros;
41930
 
  friend class ::CMatchSyntax;
41931
 
  friend class ::ExtGnu;
 
48132
  friend class ::WinAsm;
 
48133
  friend class ::WinDeclSpecs;
 
48134
  friend class ::WinMemberExplSpec;
 
48135
  friend class ::WinTypeKeywords;
 
48136
  friend class ::WinFriend;
41932
48137
  friend class ::ExtAC;
41933
48138
  friend class ::ExtACBuilderCoupling;
41934
48139
  friend class ::ExtACSyntaxCoupling;
41935
48140
  friend class ::ExtACTree;
41936
48141
  friend class ::ExtACKeywords;
41937
 
  friend class ::WinAsm;
41938
 
  friend class ::WinDeclSpecs;
41939
 
  friend class ::WinMemberExplSpec;
41940
 
  friend class ::WinTypeKeywords;
 
48142
  friend class ::ExtGnu;
41941
48143
  friend class ::PragmaOnceUnitState;
41942
48144
  friend class ::PragmaOnce;
41943
 
  friend class ::CCExprResolve;
41944
 
  friend class ::CExprResolve;
 
48145
  friend class ::CMatchSyntax;
41945
48146
 
41946
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48147
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41947
48148
 
41948
48149
  char *_name;
41949
48150
  
41950
48151
protected:
 
48152
  /** Constructor.
 
48153
   *  \param size The number of sub-names (for qualified names). */
41951
48154
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
41952
48155
  
41953
48156
public:
 
48157
  /** Destructor. Deletes the name string. */
41954
48158
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
48159
  /** Get the string containing the name. */
41955
48160
  const char *Text () const { return _name; }
 
48161
  /** Set the name. The name is copied.
 
48162
   *  \param n The name. */
41956
48163
  void Name (const char *n) { 
41957
48164
    if (n) { 
41958
48165
      _name = new char[strlen(n) + 1];
41959
48166
      strcpy (_name,n);
41960
48167
    }
41961
48168
  }
41962
 
  // special new / delete with reusing memory
 
48169
 
 
48170
public:
 
48171
  /** Own new operator reusing memory. */
41963
48172
  void *operator new (size_t);
41964
 
  void  operator delete (void *);
 
48173
  /** Own delete operator. */
 
48174
  void operator delete (void *);
41965
48175
   private:
41966
48176
  typedef CT_SpecialName CCExprResolveExpr;
41967
48177
 
41968
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48178
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
41969
48179
 public :
41970
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48180
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
41971
48181
  typedef CT_SpecialName CExprResolveExpr;
41972
48182
 
41973
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48183
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
41974
48184
 public :
41975
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
41976
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48185
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48186
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
41977
48187
};
41978
48188
 
 
48189
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
48190
 *  Tree node representing a private name. Private names 
 
48191
 *  are generated names for abstract declarators etc. */
41979
48192
 
41980
 
#line 41981 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48193
#line 48194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
41981
48194
} // closed Puma
 
48195
class CCExprResolve;
 
48196
class CExprResolve;
41982
48197
class WinIfExists;
41983
48198
class WinImportHandler;
41984
48199
class WinMacros;
41985
 
class CMatchSyntax;
41986
 
class ExtGnu;
 
48200
class WinAsm;
 
48201
class WinDeclSpecs;
 
48202
class WinMemberExplSpec;
 
48203
class WinTypeKeywords;
 
48204
class WinFriend;
41987
48205
class ExtAC;
41988
48206
class ExtACBuilderCoupling;
41989
48207
class ExtACSyntaxCoupling;
41990
48208
class ExtACTree;
41991
48209
class ExtACKeywords;
41992
 
class WinAsm;
41993
 
class WinDeclSpecs;
41994
 
class WinMemberExplSpec;
41995
 
class WinTypeKeywords;
 
48210
class ExtGnu;
41996
48211
class PragmaOnceUnitState;
41997
48212
class PragmaOnce;
41998
 
class CCExprResolve;
41999
 
class CExprResolve;
42000
 
namespace Puma {
42001
 
 
42002
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48213
class CMatchSyntax;
 
48214
namespace Puma {
 
48215
 
 
48216
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48217
 
 
48218
#line 48219 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48219
} // closed Puma
 
48220
 
 
48221
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48222
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48223
#include "CCExprResolveH.ah"
 
48224
#endif
 
48225
namespace Puma {
 
48226
 
 
48227
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48228
 
 
48229
#line 48230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48230
} // closed Puma
 
48231
 
 
48232
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48233
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48234
#include "CExprResolveH.ah"
 
48235
#endif
 
48236
namespace Puma {
 
48237
 
 
48238
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42003
48239
class CT_PrivateName : public CT_SpecialName {
42004
 
#line 42005 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48240
#line 48241 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48241
  friend class ::CCExprResolve;
 
48242
  friend class ::CExprResolve;
42005
48243
  friend class ::WinIfExists;
42006
48244
  friend class ::WinImportHandler;
42007
48245
  friend class ::WinMacros;
42008
 
  friend class ::CMatchSyntax;
42009
 
  friend class ::ExtGnu;
 
48246
  friend class ::WinAsm;
 
48247
  friend class ::WinDeclSpecs;
 
48248
  friend class ::WinMemberExplSpec;
 
48249
  friend class ::WinTypeKeywords;
 
48250
  friend class ::WinFriend;
42010
48251
  friend class ::ExtAC;
42011
48252
  friend class ::ExtACBuilderCoupling;
42012
48253
  friend class ::ExtACSyntaxCoupling;
42013
48254
  friend class ::ExtACTree;
42014
48255
  friend class ::ExtACKeywords;
42015
 
  friend class ::WinAsm;
42016
 
  friend class ::WinDeclSpecs;
42017
 
  friend class ::WinMemberExplSpec;
42018
 
  friend class ::WinTypeKeywords;
 
48256
  friend class ::ExtGnu;
42019
48257
  friend class ::PragmaOnceUnitState;
42020
48258
  friend class ::PragmaOnce;
42021
 
  friend class ::CCExprResolve;
42022
 
  friend class ::CExprResolve;
 
48259
  friend class ::CMatchSyntax;
42023
48260
 
42024
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48261
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42025
48262
 
42026
48263
public:
 
48264
  /** Constructor.
 
48265
   *  \param n The private (generated) name. */
42027
48266
  CT_PrivateName (const char *n) { Name (n); }
 
48267
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42028
48268
  static const char *NodeId ();
 
48269
  /** Get the name of the node. Can be compared with NodeId(). */
42029
48270
  const char *NodeName () const { return NodeId (); }
 
48271
  /** Get the number of sons. */
42030
48272
  int Sons () const { return 0; }
 
48273
  /** Get the n-th son.
 
48274
   *  \param n The index of the son.
 
48275
   *  \return The n-th son or NULL. */
42031
48276
  CTree *Son (int n) const { return (CTree*)0; }
42032
 
  // special new / delete with reusing memory
 
48277
 
 
48278
public:
 
48279
  /** Own new operator reusing memory. */
42033
48280
  void *operator new (size_t);
42034
 
  void  operator delete (void *);
 
48281
  /** Own delete operator. */
 
48282
  void operator delete (void *);
42035
48283
   private:
42036
48284
  typedef CT_PrivateName CCExprResolveExpr;
42037
48285
 
42038
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48286
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42039
48287
 public :
42040
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48288
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42041
48289
  typedef CT_PrivateName CExprResolveExpr;
42042
48290
 
42043
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48291
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42044
48292
 public :
42045
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42046
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48293
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48294
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42047
48295
};
42048
48296
 
 
48297
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
48298
 *  Tree node representing a destructor name. */
42049
48299
 
42050
 
#line 42051 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48300
#line 48301 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
42051
48301
} // closed Puma
 
48302
class CCExprResolve;
 
48303
class CExprResolve;
42052
48304
class WinIfExists;
42053
48305
class WinImportHandler;
42054
48306
class WinMacros;
42055
 
class CMatchSyntax;
42056
 
class ExtGnu;
 
48307
class WinAsm;
 
48308
class WinDeclSpecs;
 
48309
class WinMemberExplSpec;
 
48310
class WinTypeKeywords;
 
48311
class WinFriend;
42057
48312
class ExtAC;
42058
48313
class ExtACBuilderCoupling;
42059
48314
class ExtACSyntaxCoupling;
42060
48315
class ExtACTree;
42061
48316
class ExtACKeywords;
42062
 
class WinAsm;
42063
 
class WinDeclSpecs;
42064
 
class WinMemberExplSpec;
42065
 
class WinTypeKeywords;
 
48317
class ExtGnu;
42066
48318
class PragmaOnceUnitState;
42067
48319
class PragmaOnce;
42068
 
class CCExprResolve;
42069
 
class CExprResolve;
42070
 
namespace Puma {
42071
 
 
42072
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48320
class CMatchSyntax;
 
48321
namespace Puma {
 
48322
 
 
48323
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48324
 
 
48325
#line 48326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48326
} // closed Puma
 
48327
 
 
48328
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48329
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48330
#include "CCExprResolveH.ah"
 
48331
#endif
 
48332
namespace Puma {
 
48333
 
 
48334
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48335
 
 
48336
#line 48337 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48337
} // closed Puma
 
48338
 
 
48339
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48340
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48341
#include "CExprResolveH.ah"
 
48342
#endif
 
48343
namespace Puma {
 
48344
 
 
48345
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42073
48346
class CT_DestructorName : public CT_SpecialName {
42074
 
#line 42075 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48347
#line 48348 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48348
  friend class ::CCExprResolve;
 
48349
  friend class ::CExprResolve;
42075
48350
  friend class ::WinIfExists;
42076
48351
  friend class ::WinImportHandler;
42077
48352
  friend class ::WinMacros;
42078
 
  friend class ::CMatchSyntax;
42079
 
  friend class ::ExtGnu;
 
48353
  friend class ::WinAsm;
 
48354
  friend class ::WinDeclSpecs;
 
48355
  friend class ::WinMemberExplSpec;
 
48356
  friend class ::WinTypeKeywords;
 
48357
  friend class ::WinFriend;
42080
48358
  friend class ::ExtAC;
42081
48359
  friend class ::ExtACBuilderCoupling;
42082
48360
  friend class ::ExtACSyntaxCoupling;
42083
48361
  friend class ::ExtACTree;
42084
48362
  friend class ::ExtACKeywords;
42085
 
  friend class ::WinAsm;
42086
 
  friend class ::WinDeclSpecs;
42087
 
  friend class ::WinMemberExplSpec;
42088
 
  friend class ::WinTypeKeywords;
 
48363
  friend class ::ExtGnu;
42089
48364
  friend class ::PragmaOnceUnitState;
42090
48365
  friend class ::PragmaOnce;
42091
 
  friend class ::CCExprResolve;
42092
 
  friend class ::CExprResolve;
 
48366
  friend class ::CMatchSyntax;
42093
48367
 
42094
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48368
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42095
48369
 
42096
48370
public:
42097
 
  CT_DestructorName (CTree *, CTree *);
 
48371
  /** Constructor.
 
48372
   *  \param t The tilde operator.
 
48373
   *  \param n The class name. */
 
48374
  CT_DestructorName (CTree *t, CTree *n);
 
48375
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42098
48376
  static const char *NodeId ();
 
48377
  /** Get the name of the node. Can be compared with NodeId(). */
42099
48378
  const char *NodeName () const { return NodeId (); }
42100
 
  // special new / delete with reusing memory
 
48379
 
 
48380
public:
 
48381
  /** Own new operator reusing memory. */
42101
48382
  void *operator new (size_t);
42102
 
  void  operator delete (void *);
 
48383
  /** Own delete operator. */
 
48384
  void operator delete (void *);
42103
48385
   private:
42104
48386
  typedef CT_DestructorName CCExprResolveExpr;
42105
48387
 
42106
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48388
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42107
48389
 public :
42108
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48390
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42109
48391
  typedef CT_DestructorName CExprResolveExpr;
42110
48392
 
42111
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48393
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42112
48394
 public :
42113
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42114
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48395
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48396
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42115
48397
};
42116
48398
 
 
48399
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
48400
 *  Tree node representing a template name. */
42117
48401
 
42118
 
#line 42119 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48402
#line 48403 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
42119
48403
} // closed Puma
 
48404
class CCExprResolve;
 
48405
class CExprResolve;
42120
48406
class WinIfExists;
42121
48407
class WinImportHandler;
42122
48408
class WinMacros;
42123
 
class CMatchSyntax;
42124
 
class ExtGnu;
 
48409
class WinAsm;
 
48410
class WinDeclSpecs;
 
48411
class WinMemberExplSpec;
 
48412
class WinTypeKeywords;
 
48413
class WinFriend;
42125
48414
class ExtAC;
42126
48415
class ExtACBuilderCoupling;
42127
48416
class ExtACSyntaxCoupling;
42128
48417
class ExtACTree;
42129
48418
class ExtACKeywords;
42130
 
class WinAsm;
42131
 
class WinDeclSpecs;
42132
 
class WinMemberExplSpec;
42133
 
class WinTypeKeywords;
 
48419
class ExtGnu;
42134
48420
class PragmaOnceUnitState;
42135
48421
class PragmaOnce;
42136
 
class CCExprResolve;
42137
 
class CExprResolve;
42138
 
namespace Puma {
42139
 
 
42140
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48422
class CMatchSyntax;
 
48423
namespace Puma {
 
48424
 
 
48425
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48426
 
 
48427
#line 48428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48428
} // closed Puma
 
48429
 
 
48430
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48431
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48432
#include "CCExprResolveH.ah"
 
48433
#endif
 
48434
namespace Puma {
 
48435
 
 
48436
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48437
 
 
48438
#line 48439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48439
} // closed Puma
 
48440
 
 
48441
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48442
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48443
#include "CExprResolveH.ah"
 
48444
#endif
 
48445
namespace Puma {
 
48446
 
 
48447
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42141
48448
class CT_TemplateName : public CT_SpecialName {
42142
 
#line 42143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48449
#line 48450 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48450
  friend class ::CCExprResolve;
 
48451
  friend class ::CExprResolve;
42143
48452
  friend class ::WinIfExists;
42144
48453
  friend class ::WinImportHandler;
42145
48454
  friend class ::WinMacros;
42146
 
  friend class ::CMatchSyntax;
42147
 
  friend class ::ExtGnu;
 
48455
  friend class ::WinAsm;
 
48456
  friend class ::WinDeclSpecs;
 
48457
  friend class ::WinMemberExplSpec;
 
48458
  friend class ::WinTypeKeywords;
 
48459
  friend class ::WinFriend;
42148
48460
  friend class ::ExtAC;
42149
48461
  friend class ::ExtACBuilderCoupling;
42150
48462
  friend class ::ExtACSyntaxCoupling;
42151
48463
  friend class ::ExtACTree;
42152
48464
  friend class ::ExtACKeywords;
42153
 
  friend class ::WinAsm;
42154
 
  friend class ::WinDeclSpecs;
42155
 
  friend class ::WinMemberExplSpec;
42156
 
  friend class ::WinTypeKeywords;
 
48465
  friend class ::ExtGnu;
42157
48466
  friend class ::PragmaOnceUnitState;
42158
48467
  friend class ::PragmaOnce;
42159
 
  friend class ::CCExprResolve;
42160
 
  friend class ::CExprResolve;
 
48468
  friend class ::CMatchSyntax;
42161
48469
 
42162
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48470
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42163
48471
 
42164
48472
public:
 
48473
  /** Constructor.
 
48474
   *  \param n The template class or function name.
 
48475
   *  \param a The template argument list. */
42165
48476
  CT_TemplateName (CTree *n, CTree *a) 
42166
48477
   { AddSon (n); AddSon (a); }
 
48478
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42167
48479
  static const char *NodeId ();
 
48480
  /** Get the name of the node. Can be compared with NodeId(). */
42168
48481
  const char *NodeName () const { return NodeId (); }
 
48482
  /** Get the template argument list. */
42169
48483
  CT_TemplateArgList *Arguments () const 
42170
48484
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
48485
  /** Get the template class or function name. */
42171
48486
  CT_SimpleName *TemplateName () const 
42172
48487
   { return (CT_SimpleName*)Son (Sons ()-2); }
42173
48488
  // may change in the future
42174
48489
  const char *Text () const { return TemplateName ()->Text (); }
42175
 
  // special new / delete with reusing memory
 
48490
 
 
48491
public:
 
48492
  /** Own new operator reusing memory. */
42176
48493
  void *operator new (size_t);
42177
 
  void  operator delete (void *);
 
48494
  /** Own delete operator. */
 
48495
  void operator delete (void *);
42178
48496
   private:
42179
48497
  typedef CT_TemplateName CCExprResolveExpr;
42180
48498
 
42181
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48499
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42182
48500
 public :
42183
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48501
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42184
48502
  typedef CT_TemplateName CExprResolveExpr;
42185
48503
 
42186
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48504
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42187
48505
 public :
42188
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42189
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48506
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48507
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42190
48508
};
42191
48509
 
 
48510
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
48511
 *  Tree node representing the name of an overloaded operator. */
42192
48512
 
42193
 
#line 42194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48513
#line 48514 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
42194
48514
} // closed Puma
 
48515
class CCExprResolve;
 
48516
class CExprResolve;
42195
48517
class WinIfExists;
42196
48518
class WinImportHandler;
42197
48519
class WinMacros;
42198
 
class CMatchSyntax;
42199
 
class ExtGnu;
 
48520
class WinAsm;
 
48521
class WinDeclSpecs;
 
48522
class WinMemberExplSpec;
 
48523
class WinTypeKeywords;
 
48524
class WinFriend;
42200
48525
class ExtAC;
42201
48526
class ExtACBuilderCoupling;
42202
48527
class ExtACSyntaxCoupling;
42203
48528
class ExtACTree;
42204
48529
class ExtACKeywords;
42205
 
class WinAsm;
42206
 
class WinDeclSpecs;
42207
 
class WinMemberExplSpec;
42208
 
class WinTypeKeywords;
 
48530
class ExtGnu;
42209
48531
class PragmaOnceUnitState;
42210
48532
class PragmaOnce;
42211
 
class CCExprResolve;
42212
 
class CExprResolve;
42213
 
namespace Puma {
42214
 
 
42215
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48533
class CMatchSyntax;
 
48534
namespace Puma {
 
48535
 
 
48536
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48537
 
 
48538
#line 48539 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48539
} // closed Puma
 
48540
 
 
48541
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48542
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48543
#include "CCExprResolveH.ah"
 
48544
#endif
 
48545
namespace Puma {
 
48546
 
 
48547
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48548
 
 
48549
#line 48550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48550
} // closed Puma
 
48551
 
 
48552
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48553
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48554
#include "CExprResolveH.ah"
 
48555
#endif
 
48556
namespace Puma {
 
48557
 
 
48558
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42216
48559
class CT_OperatorName : public CT_SpecialName {
42217
 
#line 42218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48560
#line 48561 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48561
  friend class ::CCExprResolve;
 
48562
  friend class ::CExprResolve;
42218
48563
  friend class ::WinIfExists;
42219
48564
  friend class ::WinImportHandler;
42220
48565
  friend class ::WinMacros;
42221
 
  friend class ::CMatchSyntax;
42222
 
  friend class ::ExtGnu;
 
48566
  friend class ::WinAsm;
 
48567
  friend class ::WinDeclSpecs;
 
48568
  friend class ::WinMemberExplSpec;
 
48569
  friend class ::WinTypeKeywords;
 
48570
  friend class ::WinFriend;
42223
48571
  friend class ::ExtAC;
42224
48572
  friend class ::ExtACBuilderCoupling;
42225
48573
  friend class ::ExtACSyntaxCoupling;
42226
48574
  friend class ::ExtACTree;
42227
48575
  friend class ::ExtACKeywords;
42228
 
  friend class ::WinAsm;
42229
 
  friend class ::WinDeclSpecs;
42230
 
  friend class ::WinMemberExplSpec;
42231
 
  friend class ::WinTypeKeywords;
 
48576
  friend class ::ExtGnu;
42232
48577
  friend class ::PragmaOnceUnitState;
42233
48578
  friend class ::PragmaOnce;
42234
 
  friend class ::CCExprResolve;
42235
 
  friend class ::CExprResolve;
 
48579
  friend class ::CMatchSyntax;
42236
48580
 
42237
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48581
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42238
48582
 
42239
48583
  int _oper;
42240
48584
 
42241
48585
public:
42242
 
  enum { // complex operators
42243
 
    FCT_CALL = -100,
42244
 
    SUBSCRIPT,
42245
 
    NEW_ARRAY,
42246
 
    DEL_ARRAY
 
48586
  /** Complex operator types. */
 
48587
  enum { 
 
48588
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
48589
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
48590
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
48591
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
42247
48592
  };
42248
48593
 
42249
48594
public:
42250
 
  CT_OperatorName (CTree *);
42251
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
48595
  /** Constructor.
 
48596
   *  \param op The token containing the operator. */
 
48597
  CT_OperatorName (CTree *op);
 
48598
  /** Constructor.
 
48599
   *  \param f The operator function keyword 'operator'.
 
48600
   *  \param op The token containing the operator. 
 
48601
   *  \param o The token of '[' or '('.
 
48602
   *  \param c The token of ']' or ')'. */
 
48603
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
48604
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42252
48605
  static const char *NodeId ();
 
48606
  /** Get the name of the node. Can be compared with NodeId(). */
42253
48607
  const char *NodeName () const { return NodeId (); }
 
48608
  /** Get the operator type (either the token type or one of 
 
48609
   *  the complex operator types). */
42254
48610
  int Operator () const { return _oper; }
42255
 
  // special new / delete with reusing memory
 
48611
 
 
48612
public:
 
48613
  /** Own new operator reusing memory. */
42256
48614
  void *operator new (size_t);
42257
 
  void  operator delete (void *);
 
48615
  /** Own delete operator. */
 
48616
  void operator delete (void *);
42258
48617
   private:
42259
48618
  typedef CT_OperatorName CCExprResolveExpr;
42260
48619
 
42261
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48620
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42262
48621
 public :
42263
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48622
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42264
48623
  typedef CT_OperatorName CExprResolveExpr;
42265
48624
 
42266
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48625
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42267
48626
 public :
42268
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42269
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48627
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48628
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42270
48629
};
42271
48630
 
 
48631
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
48632
 *  Tree node representing the name of a conversion function. */
42272
48633
 
42273
 
#line 42274 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48634
#line 48635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
42274
48635
} // closed Puma
 
48636
class CCExprResolve;
 
48637
class CExprResolve;
42275
48638
class WinIfExists;
42276
48639
class WinImportHandler;
42277
48640
class WinMacros;
42278
 
class CMatchSyntax;
42279
 
class ExtGnu;
 
48641
class WinAsm;
 
48642
class WinDeclSpecs;
 
48643
class WinMemberExplSpec;
 
48644
class WinTypeKeywords;
 
48645
class WinFriend;
42280
48646
class ExtAC;
42281
48647
class ExtACBuilderCoupling;
42282
48648
class ExtACSyntaxCoupling;
42283
48649
class ExtACTree;
42284
48650
class ExtACKeywords;
42285
 
class WinAsm;
42286
 
class WinDeclSpecs;
42287
 
class WinMemberExplSpec;
42288
 
class WinTypeKeywords;
 
48651
class ExtGnu;
42289
48652
class PragmaOnceUnitState;
42290
48653
class PragmaOnce;
42291
 
class CCExprResolve;
42292
 
class CExprResolve;
42293
 
namespace Puma {
42294
 
 
42295
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48654
class CMatchSyntax;
 
48655
namespace Puma {
 
48656
 
 
48657
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48658
 
 
48659
#line 48660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48660
} // closed Puma
 
48661
 
 
48662
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48663
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48664
#include "CCExprResolveH.ah"
 
48665
#endif
 
48666
namespace Puma {
 
48667
 
 
48668
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48669
 
 
48670
#line 48671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48671
} // closed Puma
 
48672
 
 
48673
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48674
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48675
#include "CExprResolveH.ah"
 
48676
#endif
 
48677
namespace Puma {
 
48678
 
 
48679
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42296
48680
class CT_ConversionName : public CT_SpecialName {
42297
 
#line 42298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48681
#line 48682 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48682
  friend class ::CCExprResolve;
 
48683
  friend class ::CExprResolve;
42298
48684
  friend class ::WinIfExists;
42299
48685
  friend class ::WinImportHandler;
42300
48686
  friend class ::WinMacros;
42301
 
  friend class ::CMatchSyntax;
42302
 
  friend class ::ExtGnu;
 
48687
  friend class ::WinAsm;
 
48688
  friend class ::WinDeclSpecs;
 
48689
  friend class ::WinMemberExplSpec;
 
48690
  friend class ::WinTypeKeywords;
 
48691
  friend class ::WinFriend;
42303
48692
  friend class ::ExtAC;
42304
48693
  friend class ::ExtACBuilderCoupling;
42305
48694
  friend class ::ExtACSyntaxCoupling;
42306
48695
  friend class ::ExtACTree;
42307
48696
  friend class ::ExtACKeywords;
42308
 
  friend class ::WinAsm;
42309
 
  friend class ::WinDeclSpecs;
42310
 
  friend class ::WinMemberExplSpec;
42311
 
  friend class ::WinTypeKeywords;
 
48697
  friend class ::ExtGnu;
42312
48698
  friend class ::PragmaOnceUnitState;
42313
48699
  friend class ::PragmaOnce;
42314
 
  friend class ::CCExprResolve;
42315
 
  friend class ::CExprResolve;
 
48700
  friend class ::CMatchSyntax;
42316
48701
 
42317
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48702
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42318
48703
 
42319
48704
public:
42320
 
  CT_ConversionName (CTree *, CTree *);
 
48705
  /** Constructor.
 
48706
   *  \param f The operator function keyword 'operator'.
 
48707
   *  \param t The sub-tree containing the conversion type. */
 
48708
  CT_ConversionName (CTree *f, CTree *t);
 
48709
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42321
48710
  static const char *NodeId ();
 
48711
  /** Get the name of the node. Can be compared with NodeId(). */
42322
48712
  const char *NodeName () const { return NodeId (); }
 
48713
  /** Get the conversion type. */
42323
48714
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
42324
 
  // special new / delete with reusing memory
 
48715
 
 
48716
public:
 
48717
  /** Own new operator reusing memory. */
42325
48718
  void *operator new (size_t);
42326
 
  void  operator delete (void *);
 
48719
  /** Own delete operator. */
 
48720
  void operator delete (void *);
42327
48721
   private:
42328
48722
  typedef CT_ConversionName CCExprResolveExpr;
42329
48723
 
42330
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48724
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42331
48725
 public :
42332
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48726
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42333
48727
  typedef CT_ConversionName CExprResolveExpr;
42334
48728
 
42335
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48729
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42336
48730
 public :
42337
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42338
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48731
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48732
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42339
48733
};
42340
48734
 
 
48735
/** \class CT_QualName CTree.h Puma/CTree.h
 
48736
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
42341
48737
 
42342
 
#line 42343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48738
#line 48739 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
42343
48739
} // closed Puma
 
48740
class CCExprResolve;
 
48741
class CExprResolve;
42344
48742
class WinIfExists;
42345
48743
class WinImportHandler;
42346
48744
class WinMacros;
42347
 
class CMatchSyntax;
42348
 
class ExtGnu;
 
48745
class WinAsm;
 
48746
class WinDeclSpecs;
 
48747
class WinMemberExplSpec;
 
48748
class WinTypeKeywords;
 
48749
class WinFriend;
42349
48750
class ExtAC;
42350
48751
class ExtACBuilderCoupling;
42351
48752
class ExtACSyntaxCoupling;
42352
48753
class ExtACTree;
42353
48754
class ExtACKeywords;
42354
 
class WinAsm;
42355
 
class WinDeclSpecs;
42356
 
class WinMemberExplSpec;
42357
 
class WinTypeKeywords;
 
48755
class ExtGnu;
42358
48756
class PragmaOnceUnitState;
42359
48757
class PragmaOnce;
42360
 
class CCExprResolve;
42361
 
class CExprResolve;
42362
 
namespace Puma {
42363
 
 
42364
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48758
class CMatchSyntax;
 
48759
namespace Puma {
 
48760
 
 
48761
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48762
 
 
48763
#line 48764 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48764
} // closed Puma
 
48765
 
 
48766
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48767
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48768
#include "CCExprResolveH.ah"
 
48769
#endif
 
48770
namespace Puma {
 
48771
 
 
48772
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48773
 
 
48774
#line 48775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48775
} // closed Puma
 
48776
 
 
48777
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48778
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48779
#include "CExprResolveH.ah"
 
48780
#endif
 
48781
namespace Puma {
 
48782
 
 
48783
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42365
48784
class CT_QualName : public CT_SimpleName {
42366
 
#line 42367 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48785
#line 48786 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48786
  friend class ::CCExprResolve;
 
48787
  friend class ::CExprResolve;
42367
48788
  friend class ::WinIfExists;
42368
48789
  friend class ::WinImportHandler;
42369
48790
  friend class ::WinMacros;
42370
 
  friend class ::CMatchSyntax;
42371
 
  friend class ::ExtGnu;
 
48791
  friend class ::WinAsm;
 
48792
  friend class ::WinDeclSpecs;
 
48793
  friend class ::WinMemberExplSpec;
 
48794
  friend class ::WinTypeKeywords;
 
48795
  friend class ::WinFriend;
42372
48796
  friend class ::ExtAC;
42373
48797
  friend class ::ExtACBuilderCoupling;
42374
48798
  friend class ::ExtACSyntaxCoupling;
42375
48799
  friend class ::ExtACTree;
42376
48800
  friend class ::ExtACKeywords;
42377
 
  friend class ::WinAsm;
42378
 
  friend class ::WinDeclSpecs;
42379
 
  friend class ::WinMemberExplSpec;
42380
 
  friend class ::WinTypeKeywords;
 
48801
  friend class ::ExtGnu;
42381
48802
  friend class ::PragmaOnceUnitState;
42382
48803
  friend class ::PragmaOnce;
42383
 
  friend class ::CCExprResolve;
42384
 
  friend class ::CExprResolve;
 
48804
  friend class ::CMatchSyntax;
42385
48805
 
42386
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48806
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42387
48807
 
42388
48808
public:
 
48809
  /** Constructor.
 
48810
   *  \param size The initial number sub-names plus separators. */
42389
48811
  CT_QualName (int size = 3) : 
42390
48812
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
48813
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42391
48814
  static const char *NodeId ();
 
48815
  /** Get the name of the node. Can be compared with NodeId(). */
42392
48816
  const char *NodeName () const { return NodeId (); }
42393
 
  void print (ostream &) const;
 
48817
  /** Print the qualified name on the given stream. 
 
48818
   *  \param os The output stream. */
 
48819
  void print (ostream &os) const;
 
48820
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
42394
48821
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
48822
  /** Get the string containing the last name of the qualified name. */
42395
48823
  const char *Text () const { return Name ()->Text (); }
 
48824
  /** Get the type of the last name. */
42396
48825
  CTypeInfo *Type () const { return Name ()->Type (); }
 
48826
  /** Get the value of the last name. */
42397
48827
  CExprValue *Value () const { return Name ()->Value (); }
 
48828
  /** Get the semantic value object of the last name. */
42398
48829
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
48830
  /** Get the semantic information object of the last name. */
42399
48831
  CSemObject *SemObject () const { return Name ()->SemObject (); }
42400
 
  // special new / delete with reusing memory
 
48832
 
 
48833
public:
 
48834
  /** Own new operator reusing memory. */
42401
48835
  void *operator new (size_t);
42402
 
  void  operator delete (void *);
 
48836
  /** Own delete operator. */
 
48837
  void operator delete (void *);
42403
48838
   private:
42404
48839
  typedef CT_QualName CCExprResolveExpr;
42405
48840
 
42406
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48841
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42407
48842
 public :
42408
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48843
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42409
48844
  typedef CT_QualName CExprResolveExpr;
42410
48845
 
42411
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48846
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42412
48847
 public :
42413
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42414
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48848
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48849
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42415
48850
};
42416
48851
 
 
48852
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
48853
 *  Tree node representing a qualified name with introducing name separator,
 
48854
 *  e.g. ::X::Y::Z. */
42417
48855
 
42418
 
#line 42419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48856
#line 48857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
42419
48857
} // closed Puma
 
48858
class CCExprResolve;
 
48859
class CExprResolve;
42420
48860
class WinIfExists;
42421
48861
class WinImportHandler;
42422
48862
class WinMacros;
42423
 
class CMatchSyntax;
42424
 
class ExtGnu;
 
48863
class WinAsm;
 
48864
class WinDeclSpecs;
 
48865
class WinMemberExplSpec;
 
48866
class WinTypeKeywords;
 
48867
class WinFriend;
42425
48868
class ExtAC;
42426
48869
class ExtACBuilderCoupling;
42427
48870
class ExtACSyntaxCoupling;
42428
48871
class ExtACTree;
42429
48872
class ExtACKeywords;
42430
 
class WinAsm;
42431
 
class WinDeclSpecs;
42432
 
class WinMemberExplSpec;
42433
 
class WinTypeKeywords;
 
48873
class ExtGnu;
42434
48874
class PragmaOnceUnitState;
42435
48875
class PragmaOnce;
42436
 
class CCExprResolve;
42437
 
class CExprResolve;
42438
 
namespace Puma {
42439
 
 
42440
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48876
class CMatchSyntax;
 
48877
namespace Puma {
 
48878
 
 
48879
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48880
 
 
48881
#line 48882 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48882
} // closed Puma
 
48883
 
 
48884
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48885
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48886
#include "CCExprResolveH.ah"
 
48887
#endif
 
48888
namespace Puma {
 
48889
 
 
48890
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48891
 
 
48892
#line 48893 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48893
} // closed Puma
 
48894
 
 
48895
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48896
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48897
#include "CExprResolveH.ah"
 
48898
#endif
 
48899
namespace Puma {
 
48900
 
 
48901
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42441
48902
class CT_RootQualName : public CT_QualName {
42442
 
#line 42443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48903
#line 48904 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48904
  friend class ::CCExprResolve;
 
48905
  friend class ::CExprResolve;
42443
48906
  friend class ::WinIfExists;
42444
48907
  friend class ::WinImportHandler;
42445
48908
  friend class ::WinMacros;
42446
 
  friend class ::CMatchSyntax;
42447
 
  friend class ::ExtGnu;
 
48909
  friend class ::WinAsm;
 
48910
  friend class ::WinDeclSpecs;
 
48911
  friend class ::WinMemberExplSpec;
 
48912
  friend class ::WinTypeKeywords;
 
48913
  friend class ::WinFriend;
42448
48914
  friend class ::ExtAC;
42449
48915
  friend class ::ExtACBuilderCoupling;
42450
48916
  friend class ::ExtACSyntaxCoupling;
42451
48917
  friend class ::ExtACTree;
42452
48918
  friend class ::ExtACKeywords;
42453
 
  friend class ::WinAsm;
42454
 
  friend class ::WinDeclSpecs;
42455
 
  friend class ::WinMemberExplSpec;
42456
 
  friend class ::WinTypeKeywords;
 
48919
  friend class ::ExtGnu;
42457
48920
  friend class ::PragmaOnceUnitState;
42458
48921
  friend class ::PragmaOnce;
42459
 
  friend class ::CCExprResolve;
42460
 
  friend class ::CExprResolve;
 
48922
  friend class ::CMatchSyntax;
42461
48923
 
42462
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48924
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42463
48925
 
42464
48926
public:
 
48927
  /** Constructor.
 
48928
   *  \param size Initial number of sub-name plus separator. */
42465
48929
  CT_RootQualName (int size = 2) : 
42466
48930
    CT_QualName (size) { AddProperties (INTRO); }
 
48931
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42467
48932
  static const char *NodeId ();
 
48933
  /** Get the name of the node. Can be compared with NodeId(). */
42468
48934
  const char *NodeName () const { return NodeId (); }
42469
 
  // special new / delete with reusing memory
 
48935
 
 
48936
public:
 
48937
  /** Own new operator reusing memory. */
42470
48938
  void *operator new (size_t);
42471
 
  void  operator delete (void *);
 
48939
  /** Own delete operator. */
 
48940
  void operator delete (void *);
42472
48941
   private:
42473
48942
  typedef CT_RootQualName CCExprResolveExpr;
42474
48943
 
42475
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
48944
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42476
48945
 public :
42477
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
48946
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42478
48947
  typedef CT_RootQualName CExprResolveExpr;
42479
48948
 
42480
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
48949
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42481
48950
 public :
42482
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42483
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48951
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
48952
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42484
48953
};
42485
48954
 
 
48955
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
48956
 *  Tree node representing a binary expression, e.g. a+b. */
42486
48957
 
42487
 
#line 42488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48958
#line 48959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
42488
48959
} // closed Puma
 
48960
class CCExprResolve;
 
48961
class CExprResolve;
42489
48962
class WinIfExists;
42490
48963
class WinImportHandler;
42491
48964
class WinMacros;
42492
 
class CMatchSyntax;
42493
 
class ExtGnu;
 
48965
class WinAsm;
 
48966
class WinDeclSpecs;
 
48967
class WinMemberExplSpec;
 
48968
class WinTypeKeywords;
 
48969
class WinFriend;
42494
48970
class ExtAC;
42495
48971
class ExtACBuilderCoupling;
42496
48972
class ExtACSyntaxCoupling;
42497
48973
class ExtACTree;
42498
48974
class ExtACKeywords;
42499
 
class WinAsm;
42500
 
class WinDeclSpecs;
42501
 
class WinMemberExplSpec;
42502
 
class WinTypeKeywords;
 
48975
class ExtGnu;
42503
48976
class PragmaOnceUnitState;
42504
48977
class PragmaOnce;
42505
 
class CCExprResolve;
42506
 
class CExprResolve;
42507
 
namespace Puma {
42508
 
 
42509
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42510
 
class CT_BinaryExpr : public CT_Expression {
42511
 
#line 42512 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
48978
class CMatchSyntax;
 
48979
namespace Puma {
 
48980
 
 
48981
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48982
 
 
48983
#line 48984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48984
} // closed Puma
 
48985
 
 
48986
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48987
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
48988
#include "CCExprResolveH.ah"
 
48989
#endif
 
48990
namespace Puma {
 
48991
 
 
48992
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
48993
 
 
48994
#line 48995 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
48995
} // closed Puma
 
48996
 
 
48997
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48998
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
48999
#include "CExprResolveH.ah"
 
49000
#endif
 
49001
namespace Puma {
 
49002
 
 
49003
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49004
class CT_BinaryExpr : public CT_Call {
 
49005
#line 49006 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49006
  friend class ::CCExprResolve;
 
49007
  friend class ::CExprResolve;
42512
49008
  friend class ::WinIfExists;
42513
49009
  friend class ::WinImportHandler;
42514
49010
  friend class ::WinMacros;
42515
 
  friend class ::CMatchSyntax;
42516
 
  friend class ::ExtGnu;
 
49011
  friend class ::WinAsm;
 
49012
  friend class ::WinDeclSpecs;
 
49013
  friend class ::WinMemberExplSpec;
 
49014
  friend class ::WinTypeKeywords;
 
49015
  friend class ::WinFriend;
42517
49016
  friend class ::ExtAC;
42518
49017
  friend class ::ExtACBuilderCoupling;
42519
49018
  friend class ::ExtACSyntaxCoupling;
42520
49019
  friend class ::ExtACTree;
42521
49020
  friend class ::ExtACKeywords;
42522
 
  friend class ::WinAsm;
42523
 
  friend class ::WinDeclSpecs;
42524
 
  friend class ::WinMemberExplSpec;
42525
 
  friend class ::WinTypeKeywords;
 
49021
  friend class ::ExtGnu;
42526
49022
  friend class ::PragmaOnceUnitState;
42527
49023
  friend class ::PragmaOnce;
42528
 
  friend class ::CCExprResolve;
42529
 
  friend class ::CExprResolve;
 
49024
  friend class ::CMatchSyntax;
42530
49025
 
42531
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49026
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42532
49027
 
42533
49028
  CTree *sons[3]; // expr, oper, expr
42534
49029
 
42535
49030
public:
 
49031
  /** Constructor. 
 
49032
   *  \param l Left hand side of the expression. 
 
49033
   *  \param o The operator token. 
 
49034
   *  \param r Right hand side of the expression. */
42536
49035
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
42537
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
49036
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
42538
49037
  }
 
49038
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42539
49039
  static const char *NodeId ();
 
49040
  /** Get the name of the node. Can be compared with NodeId(). */
42540
49041
  const char *NodeName () const { return NodeId (); }
 
49042
  /** Get the number of sons. */
42541
49043
  int Sons () const { return 3; }
 
49044
  /** Get the n-th son.
 
49045
   *  \param n The index of the son.
 
49046
   *  \return The n-th son or NULL. */
42542
49047
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
49048
  /** Replace a son.
 
49049
   *  \param old_son The son to replace.
 
49050
   *  \param new_son The new son. */
42543
49051
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42544
49052
    CTree::ReplaceSon (sons, 3, old_son, new_son);
42545
49053
  }
42546
49054
   private:
42547
49055
  typedef CT_BinaryExpr CCExprResolveExpr;
42548
49056
 
42549
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49057
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42550
49058
 public :
42551
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49059
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42552
49060
  typedef CT_BinaryExpr CExprResolveExpr;
42553
49061
 
42554
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49062
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42555
49063
 public :
42556
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42557
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49064
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49065
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42558
49066
};
42559
49067
 
 
49068
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
49069
 *  Tree node representing a member pointer expression, e.g. a->b. */
42560
49070
 
42561
 
#line 42562 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49071
#line 49072 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
42562
49072
} // closed Puma
 
49073
class CCExprResolve;
 
49074
class CExprResolve;
42563
49075
class WinIfExists;
42564
49076
class WinImportHandler;
42565
49077
class WinMacros;
42566
 
class CMatchSyntax;
42567
 
class ExtGnu;
 
49078
class WinAsm;
 
49079
class WinDeclSpecs;
 
49080
class WinMemberExplSpec;
 
49081
class WinTypeKeywords;
 
49082
class WinFriend;
42568
49083
class ExtAC;
42569
49084
class ExtACBuilderCoupling;
42570
49085
class ExtACSyntaxCoupling;
42571
49086
class ExtACTree;
42572
49087
class ExtACKeywords;
42573
 
class WinAsm;
42574
 
class WinDeclSpecs;
42575
 
class WinMemberExplSpec;
42576
 
class WinTypeKeywords;
 
49088
class ExtGnu;
42577
49089
class PragmaOnceUnitState;
42578
49090
class PragmaOnce;
42579
 
class CCExprResolve;
42580
 
class CExprResolve;
42581
 
namespace Puma {
42582
 
 
42583
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42584
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
42585
 
#line 42586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49091
class CMatchSyntax;
 
49092
namespace Puma {
 
49093
 
 
49094
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49095
 
 
49096
#line 49097 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49097
} // closed Puma
 
49098
 
 
49099
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49100
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49101
#include "CCExprResolveH.ah"
 
49102
#endif
 
49103
namespace Puma {
 
49104
 
 
49105
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49106
 
 
49107
#line 49108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49108
} // closed Puma
 
49109
 
 
49110
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49111
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49112
#include "CExprResolveH.ah"
 
49113
#endif
 
49114
namespace Puma {
 
49115
 
 
49116
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49117
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
49118
#line 49119 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49119
  friend class ::CCExprResolve;
 
49120
  friend class ::CExprResolve;
42586
49121
  friend class ::WinIfExists;
42587
49122
  friend class ::WinImportHandler;
42588
49123
  friend class ::WinMacros;
42589
 
  friend class ::CMatchSyntax;
42590
 
  friend class ::ExtGnu;
 
49124
  friend class ::WinAsm;
 
49125
  friend class ::WinDeclSpecs;
 
49126
  friend class ::WinMemberExplSpec;
 
49127
  friend class ::WinTypeKeywords;
 
49128
  friend class ::WinFriend;
42591
49129
  friend class ::ExtAC;
42592
49130
  friend class ::ExtACBuilderCoupling;
42593
49131
  friend class ::ExtACSyntaxCoupling;
42594
49132
  friend class ::ExtACTree;
42595
49133
  friend class ::ExtACKeywords;
42596
 
  friend class ::WinAsm;
42597
 
  friend class ::WinDeclSpecs;
42598
 
  friend class ::WinMemberExplSpec;
42599
 
  friend class ::WinTypeKeywords;
 
49134
  friend class ::ExtGnu;
42600
49135
  friend class ::PragmaOnceUnitState;
42601
49136
  friend class ::PragmaOnce;
42602
 
  friend class ::CCExprResolve;
42603
 
  friend class ::CExprResolve;
42604
 
 
42605
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42606
 
 
 
49137
  friend class ::CMatchSyntax;
 
49138
 
 
49139
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49140
 
 
49141
  CTree *sons[3]; // expr, oper, expr
 
49142
  
42607
49143
public:
42608
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
42609
 
    CT_BinaryExpr (e, o, i) {}
 
49144
  /** Constructor.
 
49145
   *  \param e Expression on which to call the member.
 
49146
   *  \param o The arrow operator token.
 
49147
   *  \param i The member name. */
 
49148
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
49149
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
49150
  }
 
49151
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42610
49152
  static const char *NodeId ();
 
49153
  /** Get the name of the node. Can be compared with NodeId(). */
42611
49154
  const char *NodeName () const { return NodeId (); }
42612
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
49155
  /** Get the number of sons. */
 
49156
  int Sons () const { return 3; }
 
49157
  /** Get the n-th son.
 
49158
   *  \param n The index of the son.
 
49159
   *  \return The n-th son or NULL. */
 
49160
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
49161
  /** Replace a son.
 
49162
   *  \param old_son The son to replace.
 
49163
   *  \param new_son The new son. */
 
49164
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
49165
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
49166
  }
42613
49167
   private:
42614
49168
  typedef CT_MembPtrExpr CCExprResolveExpr;
42615
49169
 
42616
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49170
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42617
49171
 public :
42618
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49172
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42619
49173
  typedef CT_MembPtrExpr CExprResolveExpr;
42620
49174
 
42621
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49175
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42622
49176
 public :
42623
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42624
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49177
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49178
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42625
49179
};
42626
49180
 
 
49181
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
49182
 *  Tree node representing a member reference expression, e.g. a.b. */
42627
49183
 
42628
 
#line 42629 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49184
#line 49185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
42629
49185
} // closed Puma
 
49186
class CCExprResolve;
 
49187
class CExprResolve;
42630
49188
class WinIfExists;
42631
49189
class WinImportHandler;
42632
49190
class WinMacros;
42633
 
class CMatchSyntax;
42634
 
class ExtGnu;
 
49191
class WinAsm;
 
49192
class WinDeclSpecs;
 
49193
class WinMemberExplSpec;
 
49194
class WinTypeKeywords;
 
49195
class WinFriend;
42635
49196
class ExtAC;
42636
49197
class ExtACBuilderCoupling;
42637
49198
class ExtACSyntaxCoupling;
42638
49199
class ExtACTree;
42639
49200
class ExtACKeywords;
42640
 
class WinAsm;
42641
 
class WinDeclSpecs;
42642
 
class WinMemberExplSpec;
42643
 
class WinTypeKeywords;
 
49201
class ExtGnu;
42644
49202
class PragmaOnceUnitState;
42645
49203
class PragmaOnce;
42646
 
class CCExprResolve;
42647
 
class CExprResolve;
42648
 
namespace Puma {
42649
 
 
42650
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49204
class CMatchSyntax;
 
49205
namespace Puma {
 
49206
 
 
49207
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49208
 
 
49209
#line 49210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49210
} // closed Puma
 
49211
 
 
49212
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49213
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49214
#include "CCExprResolveH.ah"
 
49215
#endif
 
49216
namespace Puma {
 
49217
 
 
49218
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49219
 
 
49220
#line 49221 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49221
} // closed Puma
 
49222
 
 
49223
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49224
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49225
#include "CExprResolveH.ah"
 
49226
#endif
 
49227
namespace Puma {
 
49228
 
 
49229
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42651
49230
class CT_MembRefExpr : public CT_MembPtrExpr {
42652
 
#line 42653 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49231
#line 49232 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49232
  friend class ::CCExprResolve;
 
49233
  friend class ::CExprResolve;
42653
49234
  friend class ::WinIfExists;
42654
49235
  friend class ::WinImportHandler;
42655
49236
  friend class ::WinMacros;
42656
 
  friend class ::CMatchSyntax;
42657
 
  friend class ::ExtGnu;
 
49237
  friend class ::WinAsm;
 
49238
  friend class ::WinDeclSpecs;
 
49239
  friend class ::WinMemberExplSpec;
 
49240
  friend class ::WinTypeKeywords;
 
49241
  friend class ::WinFriend;
42658
49242
  friend class ::ExtAC;
42659
49243
  friend class ::ExtACBuilderCoupling;
42660
49244
  friend class ::ExtACSyntaxCoupling;
42661
49245
  friend class ::ExtACTree;
42662
49246
  friend class ::ExtACKeywords;
42663
 
  friend class ::WinAsm;
42664
 
  friend class ::WinDeclSpecs;
42665
 
  friend class ::WinMemberExplSpec;
42666
 
  friend class ::WinTypeKeywords;
 
49247
  friend class ::ExtGnu;
42667
49248
  friend class ::PragmaOnceUnitState;
42668
49249
  friend class ::PragmaOnce;
42669
 
  friend class ::CCExprResolve;
42670
 
  friend class ::CExprResolve;
 
49250
  friend class ::CMatchSyntax;
42671
49251
 
42672
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49252
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42673
49253
 
42674
49254
public:
 
49255
  /** Constructor.
 
49256
   *  \param e Expression on which to call the member.
 
49257
   *  \param o The dot operator.
 
49258
   *  \param i The member name. */
42675
49259
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
42676
49260
    CT_MembPtrExpr (e, o, i) {}
 
49261
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42677
49262
  static const char *NodeId ();
 
49263
  /** Get the name of the node. Can be compared with NodeId(). */
42678
49264
  const char *NodeName () const { return NodeId (); }
42679
49265
   private:
42680
49266
  typedef CT_MembRefExpr CCExprResolveExpr;
42681
49267
 
42682
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49268
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42683
49269
 public :
42684
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49270
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42685
49271
  typedef CT_MembRefExpr CExprResolveExpr;
42686
49272
 
42687
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49273
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42688
49274
 public :
42689
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42690
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49275
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49276
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42691
49277
};
42692
49278
 
 
49279
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
49280
 *  Base class for tree nodes representing unary expressions. */
42693
49281
 
42694
 
#line 42695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49282
#line 49283 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
42695
49283
} // closed Puma
 
49284
class CCExprResolve;
 
49285
class CExprResolve;
42696
49286
class WinIfExists;
42697
49287
class WinImportHandler;
42698
49288
class WinMacros;
42699
 
class CMatchSyntax;
42700
 
class ExtGnu;
 
49289
class WinAsm;
 
49290
class WinDeclSpecs;
 
49291
class WinMemberExplSpec;
 
49292
class WinTypeKeywords;
 
49293
class WinFriend;
42701
49294
class ExtAC;
42702
49295
class ExtACBuilderCoupling;
42703
49296
class ExtACSyntaxCoupling;
42704
49297
class ExtACTree;
42705
49298
class ExtACKeywords;
42706
 
class WinAsm;
42707
 
class WinDeclSpecs;
42708
 
class WinMemberExplSpec;
42709
 
class WinTypeKeywords;
 
49299
class ExtGnu;
42710
49300
class PragmaOnceUnitState;
42711
49301
class PragmaOnce;
42712
 
class CCExprResolve;
42713
 
class CExprResolve;
42714
 
namespace Puma {
42715
 
 
42716
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
42717
 
class CT_UnaryExpr : public CT_Expression {
42718
 
#line 42719 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49302
class CMatchSyntax;
 
49303
namespace Puma {
 
49304
 
 
49305
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49306
 
 
49307
#line 49308 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49308
} // closed Puma
 
49309
 
 
49310
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49311
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49312
#include "CCExprResolveH.ah"
 
49313
#endif
 
49314
namespace Puma {
 
49315
 
 
49316
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49317
 
 
49318
#line 49319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49319
} // closed Puma
 
49320
 
 
49321
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49322
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49323
#include "CExprResolveH.ah"
 
49324
#endif
 
49325
namespace Puma {
 
49326
 
 
49327
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49328
class CT_UnaryExpr : public CT_Call {
 
49329
#line 49330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49330
  friend class ::CCExprResolve;
 
49331
  friend class ::CExprResolve;
42719
49332
  friend class ::WinIfExists;
42720
49333
  friend class ::WinImportHandler;
42721
49334
  friend class ::WinMacros;
42722
 
  friend class ::CMatchSyntax;
42723
 
  friend class ::ExtGnu;
 
49335
  friend class ::WinAsm;
 
49336
  friend class ::WinDeclSpecs;
 
49337
  friend class ::WinMemberExplSpec;
 
49338
  friend class ::WinTypeKeywords;
 
49339
  friend class ::WinFriend;
42724
49340
  friend class ::ExtAC;
42725
49341
  friend class ::ExtACBuilderCoupling;
42726
49342
  friend class ::ExtACSyntaxCoupling;
42727
49343
  friend class ::ExtACTree;
42728
49344
  friend class ::ExtACKeywords;
42729
 
  friend class ::WinAsm;
42730
 
  friend class ::WinDeclSpecs;
42731
 
  friend class ::WinMemberExplSpec;
42732
 
  friend class ::WinTypeKeywords;
 
49345
  friend class ::ExtGnu;
42733
49346
  friend class ::PragmaOnceUnitState;
42734
49347
  friend class ::PragmaOnce;
42735
 
  friend class ::CCExprResolve;
42736
 
  friend class ::CExprResolve;
 
49348
  friend class ::CMatchSyntax;
42737
49349
 
42738
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49350
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42739
49351
 
42740
49352
  CTree *sons[2]; // oper, expr
42741
49353
 
42742
49354
public:
42743
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
49355
  /** Constructor.
 
49356
   *  \param o The unary operator.
 
49357
   *  \param e The expression on which the operator is invoked. */
 
49358
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
49359
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42744
49360
  static const char *NodeId ();
 
49361
  /** Get the name of the node. Can be compared with NodeId(). */
42745
49362
  const char *NodeName () const { return NodeId (); }
 
49363
  /** Get the number of sons. */
42746
49364
  int Sons () const { return 2; }
 
49365
  /** Get the n-th son.
 
49366
   *  \param n The index of the son.
 
49367
   *  \return The n-th son or NULL. */
42747
49368
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
49369
  /** Replace a son.
 
49370
   *  \param old_son The son to replace.
 
49371
   *  \param new_son The new son. */
42748
49372
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
42749
49373
    CTree::ReplaceSon (sons, 2, old_son, new_son);
42750
49374
  }
 
49375
  /** Get the expression node. */
42751
49376
  CTree *Expr () const { return sons[1]; }
42752
49377
   private:
42753
49378
  typedef CT_UnaryExpr CCExprResolveExpr;
42754
49379
 
42755
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49380
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42756
49381
 public :
42757
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49382
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42758
49383
  typedef CT_UnaryExpr CExprResolveExpr;
42759
49384
 
42760
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49385
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42761
49386
 public :
42762
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42763
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49387
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49388
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42764
49389
};
42765
49390
 
 
49391
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
49392
 *  Tree node representing a postfix expression, e.g. a++. */
42766
49393
 
42767
 
#line 42768 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49394
#line 49395 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
42768
49395
} // closed Puma
 
49396
class CCExprResolve;
 
49397
class CExprResolve;
42769
49398
class WinIfExists;
42770
49399
class WinImportHandler;
42771
49400
class WinMacros;
42772
 
class CMatchSyntax;
42773
 
class ExtGnu;
 
49401
class WinAsm;
 
49402
class WinDeclSpecs;
 
49403
class WinMemberExplSpec;
 
49404
class WinTypeKeywords;
 
49405
class WinFriend;
42774
49406
class ExtAC;
42775
49407
class ExtACBuilderCoupling;
42776
49408
class ExtACSyntaxCoupling;
42777
49409
class ExtACTree;
42778
49410
class ExtACKeywords;
42779
 
class WinAsm;
42780
 
class WinDeclSpecs;
42781
 
class WinMemberExplSpec;
42782
 
class WinTypeKeywords;
 
49411
class ExtGnu;
42783
49412
class PragmaOnceUnitState;
42784
49413
class PragmaOnce;
42785
 
class CCExprResolve;
42786
 
class CExprResolve;
42787
 
namespace Puma {
42788
 
 
42789
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49414
class CMatchSyntax;
 
49415
namespace Puma {
 
49416
 
 
49417
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49418
 
 
49419
#line 49420 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49420
} // closed Puma
 
49421
 
 
49422
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49423
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49424
#include "CCExprResolveH.ah"
 
49425
#endif
 
49426
namespace Puma {
 
49427
 
 
49428
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49429
 
 
49430
#line 49431 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49431
} // closed Puma
 
49432
 
 
49433
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49434
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49435
#include "CExprResolveH.ah"
 
49436
#endif
 
49437
namespace Puma {
 
49438
 
 
49439
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42790
49440
class CT_PostfixExpr : public CT_UnaryExpr {
42791
 
#line 42792 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49441
#line 49442 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49442
  friend class ::CCExprResolve;
 
49443
  friend class ::CExprResolve;
42792
49444
  friend class ::WinIfExists;
42793
49445
  friend class ::WinImportHandler;
42794
49446
  friend class ::WinMacros;
42795
 
  friend class ::CMatchSyntax;
42796
 
  friend class ::ExtGnu;
 
49447
  friend class ::WinAsm;
 
49448
  friend class ::WinDeclSpecs;
 
49449
  friend class ::WinMemberExplSpec;
 
49450
  friend class ::WinTypeKeywords;
 
49451
  friend class ::WinFriend;
42797
49452
  friend class ::ExtAC;
42798
49453
  friend class ::ExtACBuilderCoupling;
42799
49454
  friend class ::ExtACSyntaxCoupling;
42800
49455
  friend class ::ExtACTree;
42801
49456
  friend class ::ExtACKeywords;
42802
 
  friend class ::WinAsm;
42803
 
  friend class ::WinDeclSpecs;
42804
 
  friend class ::WinMemberExplSpec;
42805
 
  friend class ::WinTypeKeywords;
 
49457
  friend class ::ExtGnu;
42806
49458
  friend class ::PragmaOnceUnitState;
42807
49459
  friend class ::PragmaOnce;
42808
 
  friend class ::CCExprResolve;
42809
 
  friend class ::CExprResolve;
 
49460
  friend class ::CMatchSyntax;
42810
49461
 
42811
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49462
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42812
49463
 
42813
49464
public:
 
49465
  /** Constructor.
 
49466
   *  \param e The expression on which to invoke the operator. 
 
49467
   *  \param o The postfix operator. */
42814
49468
  CT_PostfixExpr (CTree *e, CTree *o) :
42815
49469
    CT_UnaryExpr (e, o) {}
 
49470
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42816
49471
  static const char *NodeId ();
 
49472
  /** Get the name of the node. Can be compared with NodeId(). */
42817
49473
  const char *NodeName () const { return NodeId (); }
42818
49474
   private:
42819
49475
  typedef CT_PostfixExpr CCExprResolveExpr;
42820
49476
 
42821
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49477
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42822
49478
 public :
42823
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49479
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42824
49480
  typedef CT_PostfixExpr CExprResolveExpr;
42825
49481
 
42826
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49482
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42827
49483
 public :
42828
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42829
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49484
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49485
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42830
49486
};
42831
49487
 
 
49488
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
49489
 *  Tree node representing an address expression, e.g. &a. */
42832
49490
 
42833
 
#line 42834 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49491
#line 49492 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
42834
49492
} // closed Puma
 
49493
class CCExprResolve;
 
49494
class CExprResolve;
42835
49495
class WinIfExists;
42836
49496
class WinImportHandler;
42837
49497
class WinMacros;
42838
 
class CMatchSyntax;
42839
 
class ExtGnu;
 
49498
class WinAsm;
 
49499
class WinDeclSpecs;
 
49500
class WinMemberExplSpec;
 
49501
class WinTypeKeywords;
 
49502
class WinFriend;
42840
49503
class ExtAC;
42841
49504
class ExtACBuilderCoupling;
42842
49505
class ExtACSyntaxCoupling;
42843
49506
class ExtACTree;
42844
49507
class ExtACKeywords;
42845
 
class WinAsm;
42846
 
class WinDeclSpecs;
42847
 
class WinMemberExplSpec;
42848
 
class WinTypeKeywords;
 
49508
class ExtGnu;
42849
49509
class PragmaOnceUnitState;
42850
49510
class PragmaOnce;
42851
 
class CCExprResolve;
42852
 
class CExprResolve;
42853
 
namespace Puma {
42854
 
 
42855
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49511
class CMatchSyntax;
 
49512
namespace Puma {
 
49513
 
 
49514
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49515
 
 
49516
#line 49517 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49517
} // closed Puma
 
49518
 
 
49519
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49520
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49521
#include "CCExprResolveH.ah"
 
49522
#endif
 
49523
namespace Puma {
 
49524
 
 
49525
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49526
 
 
49527
#line 49528 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49528
} // closed Puma
 
49529
 
 
49530
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49531
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49532
#include "CExprResolveH.ah"
 
49533
#endif
 
49534
namespace Puma {
 
49535
 
 
49536
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42856
49537
class CT_AddrExpr : public CT_UnaryExpr {
42857
 
#line 42858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49538
#line 49539 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49539
  friend class ::CCExprResolve;
 
49540
  friend class ::CExprResolve;
42858
49541
  friend class ::WinIfExists;
42859
49542
  friend class ::WinImportHandler;
42860
49543
  friend class ::WinMacros;
42861
 
  friend class ::CMatchSyntax;
42862
 
  friend class ::ExtGnu;
 
49544
  friend class ::WinAsm;
 
49545
  friend class ::WinDeclSpecs;
 
49546
  friend class ::WinMemberExplSpec;
 
49547
  friend class ::WinTypeKeywords;
 
49548
  friend class ::WinFriend;
42863
49549
  friend class ::ExtAC;
42864
49550
  friend class ::ExtACBuilderCoupling;
42865
49551
  friend class ::ExtACSyntaxCoupling;
42866
49552
  friend class ::ExtACTree;
42867
49553
  friend class ::ExtACKeywords;
42868
 
  friend class ::WinAsm;
42869
 
  friend class ::WinDeclSpecs;
42870
 
  friend class ::WinMemberExplSpec;
42871
 
  friend class ::WinTypeKeywords;
 
49554
  friend class ::ExtGnu;
42872
49555
  friend class ::PragmaOnceUnitState;
42873
49556
  friend class ::PragmaOnce;
42874
 
  friend class ::CCExprResolve;
42875
 
  friend class ::CExprResolve;
 
49557
  friend class ::CMatchSyntax;
42876
49558
 
42877
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49559
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42878
49560
 
42879
49561
public:
 
49562
  /** Constructor.
 
49563
   *  \param o The address operator, i.e. '&'.
 
49564
   *  \param e The expression from which to take the address. */
42880
49565
  CT_AddrExpr (CTree *o, CTree *e) :
42881
49566
    CT_UnaryExpr (o, e) {}
 
49567
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42882
49568
  static const char *NodeId ();
 
49569
  /** Get the name of the node. Can be compared with NodeId(). */
42883
49570
  const char *NodeName () const { return NodeId (); }
42884
49571
   private:
42885
49572
  typedef CT_AddrExpr CCExprResolveExpr;
42886
49573
 
42887
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49574
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42888
49575
 public :
42889
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49576
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42890
49577
  typedef CT_AddrExpr CExprResolveExpr;
42891
49578
 
42892
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49579
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42893
49580
 public :
42894
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42895
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49581
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49582
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42896
49583
};
42897
49584
 
 
49585
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
49586
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
42898
49587
 
42899
 
#line 42900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49588
#line 49589 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
42900
49589
} // closed Puma
 
49590
class CCExprResolve;
 
49591
class CExprResolve;
42901
49592
class WinIfExists;
42902
49593
class WinImportHandler;
42903
49594
class WinMacros;
42904
 
class CMatchSyntax;
42905
 
class ExtGnu;
 
49595
class WinAsm;
 
49596
class WinDeclSpecs;
 
49597
class WinMemberExplSpec;
 
49598
class WinTypeKeywords;
 
49599
class WinFriend;
42906
49600
class ExtAC;
42907
49601
class ExtACBuilderCoupling;
42908
49602
class ExtACSyntaxCoupling;
42909
49603
class ExtACTree;
42910
49604
class ExtACKeywords;
42911
 
class WinAsm;
42912
 
class WinDeclSpecs;
42913
 
class WinMemberExplSpec;
42914
 
class WinTypeKeywords;
 
49605
class ExtGnu;
42915
49606
class PragmaOnceUnitState;
42916
49607
class PragmaOnce;
42917
 
class CCExprResolve;
42918
 
class CExprResolve;
42919
 
namespace Puma {
42920
 
 
42921
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49608
class CMatchSyntax;
 
49609
namespace Puma {
 
49610
 
 
49611
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49612
 
 
49613
#line 49614 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49614
} // closed Puma
 
49615
 
 
49616
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49617
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49618
#include "CCExprResolveH.ah"
 
49619
#endif
 
49620
namespace Puma {
 
49621
 
 
49622
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49623
 
 
49624
#line 49625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49625
} // closed Puma
 
49626
 
 
49627
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49628
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49629
#include "CExprResolveH.ah"
 
49630
#endif
 
49631
namespace Puma {
 
49632
 
 
49633
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42922
49634
class CT_DerefExpr : public CT_UnaryExpr {
42923
 
#line 42924 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49635
#line 49636 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49636
  friend class ::CCExprResolve;
 
49637
  friend class ::CExprResolve;
42924
49638
  friend class ::WinIfExists;
42925
49639
  friend class ::WinImportHandler;
42926
49640
  friend class ::WinMacros;
42927
 
  friend class ::CMatchSyntax;
42928
 
  friend class ::ExtGnu;
 
49641
  friend class ::WinAsm;
 
49642
  friend class ::WinDeclSpecs;
 
49643
  friend class ::WinMemberExplSpec;
 
49644
  friend class ::WinTypeKeywords;
 
49645
  friend class ::WinFriend;
42929
49646
  friend class ::ExtAC;
42930
49647
  friend class ::ExtACBuilderCoupling;
42931
49648
  friend class ::ExtACSyntaxCoupling;
42932
49649
  friend class ::ExtACTree;
42933
49650
  friend class ::ExtACKeywords;
42934
 
  friend class ::WinAsm;
42935
 
  friend class ::WinDeclSpecs;
42936
 
  friend class ::WinMemberExplSpec;
42937
 
  friend class ::WinTypeKeywords;
 
49651
  friend class ::ExtGnu;
42938
49652
  friend class ::PragmaOnceUnitState;
42939
49653
  friend class ::PragmaOnce;
42940
 
  friend class ::CCExprResolve;
42941
 
  friend class ::CExprResolve;
 
49654
  friend class ::CMatchSyntax;
42942
49655
 
42943
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49656
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42944
49657
 
42945
49658
public:
 
49659
  /** Constructor.
 
49660
   *  \param o The dereferencing operator, i.e. '*'.
 
49661
   *  \param e The expression to dereference. */
42946
49662
  CT_DerefExpr (CTree *o, CTree *e) :
42947
49663
    CT_UnaryExpr (o, e) {}
 
49664
  /** Get the identifier for this node type. Can be compared with NodeName(). */
42948
49665
  static const char *NodeId ();
 
49666
  /** Get the name of the node. Can be compared with NodeId(). */
42949
49667
  const char *NodeName () const { return NodeId (); }
42950
49668
   private:
42951
49669
  typedef CT_DerefExpr CCExprResolveExpr;
42952
49670
 
42953
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49671
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
42954
49672
 public :
42955
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49673
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
42956
49674
  typedef CT_DerefExpr CExprResolveExpr;
42957
49675
 
42958
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49676
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
42959
49677
 public :
42960
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
42961
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49678
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49679
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42962
49680
};
42963
49681
 
 
49682
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
49683
 *  Tree node representing a delete expression, e.g. delete a. */
42964
49684
 
42965
 
#line 42966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49685
#line 49686 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
42966
49686
} // closed Puma
 
49687
class CCExprResolve;
 
49688
class CExprResolve;
42967
49689
class WinIfExists;
42968
49690
class WinImportHandler;
42969
49691
class WinMacros;
42970
 
class CMatchSyntax;
42971
 
class ExtGnu;
 
49692
class WinAsm;
 
49693
class WinDeclSpecs;
 
49694
class WinMemberExplSpec;
 
49695
class WinTypeKeywords;
 
49696
class WinFriend;
42972
49697
class ExtAC;
42973
49698
class ExtACBuilderCoupling;
42974
49699
class ExtACSyntaxCoupling;
42975
49700
class ExtACTree;
42976
49701
class ExtACKeywords;
42977
 
class WinAsm;
42978
 
class WinDeclSpecs;
42979
 
class WinMemberExplSpec;
42980
 
class WinTypeKeywords;
 
49702
class ExtGnu;
42981
49703
class PragmaOnceUnitState;
42982
49704
class PragmaOnce;
42983
 
class CCExprResolve;
42984
 
class CExprResolve;
42985
 
namespace Puma {
42986
 
 
42987
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49705
class CMatchSyntax;
 
49706
namespace Puma {
 
49707
 
 
49708
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49709
 
 
49710
#line 49711 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49711
} // closed Puma
 
49712
 
 
49713
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49714
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49715
#include "CCExprResolveH.ah"
 
49716
#endif
 
49717
namespace Puma {
 
49718
 
 
49719
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49720
 
 
49721
#line 49722 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49722
} // closed Puma
 
49723
 
 
49724
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49725
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49726
#include "CExprResolveH.ah"
 
49727
#endif
 
49728
namespace Puma {
 
49729
 
 
49730
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
42988
49731
class CT_DeleteExpr : public CT_Expression, public CSemObject {
42989
 
#line 42990 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49732
#line 49733 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49733
  friend class ::CCExprResolve;
 
49734
  friend class ::CExprResolve;
42990
49735
  friend class ::WinIfExists;
42991
49736
  friend class ::WinImportHandler;
42992
49737
  friend class ::WinMacros;
42993
 
  friend class ::CMatchSyntax;
42994
 
  friend class ::ExtGnu;
 
49738
  friend class ::WinAsm;
 
49739
  friend class ::WinDeclSpecs;
 
49740
  friend class ::WinMemberExplSpec;
 
49741
  friend class ::WinTypeKeywords;
 
49742
  friend class ::WinFriend;
42995
49743
  friend class ::ExtAC;
42996
49744
  friend class ::ExtACBuilderCoupling;
42997
49745
  friend class ::ExtACSyntaxCoupling;
42998
49746
  friend class ::ExtACTree;
42999
49747
  friend class ::ExtACKeywords;
43000
 
  friend class ::WinAsm;
43001
 
  friend class ::WinDeclSpecs;
43002
 
  friend class ::WinMemberExplSpec;
43003
 
  friend class ::WinTypeKeywords;
 
49748
  friend class ::ExtGnu;
43004
49749
  friend class ::PragmaOnceUnitState;
43005
49750
  friend class ::PragmaOnce;
43006
 
  friend class ::CCExprResolve;
43007
 
  friend class ::CExprResolve;
 
49751
  friend class ::CMatchSyntax;
43008
49752
 
43009
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49753
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43010
49754
 
43011
49755
  CTree *sons[2]; // oper, expr
43012
49756
 
43013
49757
public:
43014
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
49758
  /** Constructor.
 
49759
   *  \param op The delete operator.
 
49760
   *  \param e The expression representing the object to delete. */
 
49761
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
49762
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43015
49763
  static const char *NodeId ();
 
49764
  /** Get the name of the node. Can be compared with NodeId(). */
43016
49765
  const char *NodeName () const { return NodeId (); }
 
49766
  /** Get the number of sons. */
43017
49767
  int Sons () const { return 2; }
 
49768
  /** Get the n-th son.
 
49769
   *  \param n The index of the son.
 
49770
   *  \return The n-th son or NULL. */
43018
49771
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
49772
  /** Replace a son.
 
49773
   *  \param old_son The son to replace.
 
49774
   *  \param new_son The new son. */
43019
49775
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43020
49776
    CTree::ReplaceSon (sons, 2, old_son, new_son);
43021
49777
  }
 
49778
  /** Get the expression. */
43022
49779
  CTree *Expr () const { return sons[1]; }
 
49780
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
43023
49781
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
49782
  /** Get the semantic information object. */
43024
49783
  CSemObject *SemObject () const { return (CSemObject*)this; }
43025
49784
   private:
43026
49785
  typedef CT_DeleteExpr CCExprResolveExpr;
43027
49786
 
43028
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49787
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
43029
49788
 public :
43030
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49789
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
43031
49790
  typedef CT_DeleteExpr CExprResolveExpr;
43032
49791
 
43033
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49792
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
43034
49793
 public :
43035
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
43036
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49794
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49795
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43037
49796
};
43038
49797
 
 
49798
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
49799
 *  Tree node representing a new expression, e.g. new A(). */
43039
49800
 
43040
 
#line 43041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49801
#line 49802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
43041
49802
} // closed Puma
 
49803
class CCExprResolve;
 
49804
class CExprResolve;
43042
49805
class WinIfExists;
43043
49806
class WinImportHandler;
43044
49807
class WinMacros;
43045
 
class CMatchSyntax;
43046
 
class ExtGnu;
 
49808
class WinAsm;
 
49809
class WinDeclSpecs;
 
49810
class WinMemberExplSpec;
 
49811
class WinTypeKeywords;
 
49812
class WinFriend;
43047
49813
class ExtAC;
43048
49814
class ExtACBuilderCoupling;
43049
49815
class ExtACSyntaxCoupling;
43050
49816
class ExtACTree;
43051
49817
class ExtACKeywords;
43052
 
class WinAsm;
43053
 
class WinDeclSpecs;
43054
 
class WinMemberExplSpec;
43055
 
class WinTypeKeywords;
 
49818
class ExtGnu;
43056
49819
class PragmaOnceUnitState;
43057
49820
class PragmaOnce;
43058
 
class CCExprResolve;
43059
 
class CExprResolve;
43060
 
namespace Puma {
43061
 
 
43062
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49821
class CMatchSyntax;
 
49822
namespace Puma {
 
49823
 
 
49824
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49825
 
 
49826
#line 49827 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49827
} // closed Puma
 
49828
 
 
49829
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49830
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49831
#include "CCExprResolveH.ah"
 
49832
#endif
 
49833
namespace Puma {
 
49834
 
 
49835
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49836
 
 
49837
#line 49838 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49838
} // closed Puma
 
49839
 
 
49840
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49841
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49842
#include "CExprResolveH.ah"
 
49843
#endif
 
49844
namespace Puma {
 
49845
 
 
49846
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43063
49847
class CT_NewExpr : public CT_Expression, public CSemObject {
43064
 
#line 43065 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49848
#line 49849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49849
  friend class ::CCExprResolve;
 
49850
  friend class ::CExprResolve;
43065
49851
  friend class ::WinIfExists;
43066
49852
  friend class ::WinImportHandler;
43067
49853
  friend class ::WinMacros;
43068
 
  friend class ::CMatchSyntax;
43069
 
  friend class ::ExtGnu;
 
49854
  friend class ::WinAsm;
 
49855
  friend class ::WinDeclSpecs;
 
49856
  friend class ::WinMemberExplSpec;
 
49857
  friend class ::WinTypeKeywords;
 
49858
  friend class ::WinFriend;
43070
49859
  friend class ::ExtAC;
43071
49860
  friend class ::ExtACBuilderCoupling;
43072
49861
  friend class ::ExtACSyntaxCoupling;
43073
49862
  friend class ::ExtACTree;
43074
49863
  friend class ::ExtACKeywords;
43075
 
  friend class ::WinAsm;
43076
 
  friend class ::WinDeclSpecs;
43077
 
  friend class ::WinMemberExplSpec;
43078
 
  friend class ::WinTypeKeywords;
 
49864
  friend class ::ExtGnu;
43079
49865
  friend class ::PragmaOnceUnitState;
43080
49866
  friend class ::PragmaOnce;
43081
 
  friend class ::CCExprResolve;
43082
 
  friend class ::CExprResolve;
 
49867
  friend class ::CMatchSyntax;
43083
49868
 
43084
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49869
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43085
49870
 
43086
49871
  CTree *sons[6]; // oper, placement, open, type, close, init
43087
49872
 
43088
49873
public:
 
49874
  /** Constructor.
 
49875
   *  \param op The new operator.
 
49876
   *  \param p The optional placement expression.
 
49877
   *  \param o The optional left parenthesis around the type identifier.
 
49878
   *  \param t The type identifier specifying the type of the object to create.
 
49879
   *  \param c The optional right parenthesis around the type identifier.
 
49880
   *  \param i The optional initializer. */
43089
49881
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
43090
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
49882
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
49883
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
43091
49884
  }
 
49885
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43092
49886
  static const char *NodeId ();
 
49887
  /** Get the name of the node. Can be compared with NodeId(). */
43093
49888
  const char *NodeName () const { return NodeId (); }
 
49889
  /** Get the number of sons. */
43094
49890
  int Sons () const { return CTree::Sons (sons, 6); }
 
49891
  /** Get the n-th son.
 
49892
   *  \param n The index of the son.
 
49893
   *  \return The n-th son or NULL. */
43095
49894
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
49895
  /** Replace a son.
 
49896
   *  \param old_son The son to replace.
 
49897
   *  \param new_son The new son. */
43096
49898
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43097
49899
    CTree::ReplaceSon (sons, 6, old_son, new_son);
43098
49900
  }
 
49901
  /** Get the operator name. */
43099
49902
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
49903
  /** Get the placement expression. */
43100
49904
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
49905
  /** Get the initializer. */
43101
49906
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
49907
  /** Get the type of the object to create. */
43102
49908
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
49909
  /** Get the semantic information object. */
43103
49910
  CSemObject *SemObject () const { return (CSemObject*)this; }
43104
49911
   private:
43105
49912
  typedef CT_NewExpr CCExprResolveExpr;
43106
49913
 
43107
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
49914
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
43108
49915
 public :
43109
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
49916
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
43110
49917
  typedef CT_NewExpr CExprResolveExpr;
43111
49918
 
43112
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
49919
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
43113
49920
 public :
43114
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
43115
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49921
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
49922
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43116
49923
};
43117
49924
 
 
49925
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
49926
 *  Tree node representing an if-then expression, 
 
49927
 *  e.g. a>0?a:b or a?:b. */
43118
49928
 
43119
 
#line 43120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49929
#line 49930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
43120
49930
} // closed Puma
 
49931
class CCExprResolve;
 
49932
class CExprResolve;
43121
49933
class WinIfExists;
43122
49934
class WinImportHandler;
43123
49935
class WinMacros;
43124
 
class CMatchSyntax;
43125
 
class ExtGnu;
 
49936
class WinAsm;
 
49937
class WinDeclSpecs;
 
49938
class WinMemberExplSpec;
 
49939
class WinTypeKeywords;
 
49940
class WinFriend;
43126
49941
class ExtAC;
43127
49942
class ExtACBuilderCoupling;
43128
49943
class ExtACSyntaxCoupling;
43129
49944
class ExtACTree;
43130
49945
class ExtACKeywords;
43131
 
class WinAsm;
43132
 
class WinDeclSpecs;
43133
 
class WinMemberExplSpec;
43134
 
class WinTypeKeywords;
 
49946
class ExtGnu;
43135
49947
class PragmaOnceUnitState;
43136
49948
class PragmaOnce;
43137
 
class CCExprResolve;
43138
 
class CExprResolve;
43139
 
namespace Puma {
43140
 
 
43141
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49949
class CMatchSyntax;
 
49950
namespace Puma {
 
49951
 
 
49952
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49953
 
 
49954
#line 49955 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49955
} // closed Puma
 
49956
 
 
49957
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49958
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
49959
#include "CCExprResolveH.ah"
 
49960
#endif
 
49961
namespace Puma {
 
49962
 
 
49963
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49964
 
 
49965
#line 49966 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49966
} // closed Puma
 
49967
 
 
49968
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49969
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
49970
#include "CExprResolveH.ah"
 
49971
#endif
 
49972
namespace Puma {
 
49973
 
 
49974
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43142
49975
class CT_IfThenExpr : public CT_Expression {
43143
 
#line 43144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
49976
#line 49977 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
49977
  friend class ::CCExprResolve;
 
49978
  friend class ::CExprResolve;
43144
49979
  friend class ::WinIfExists;
43145
49980
  friend class ::WinImportHandler;
43146
49981
  friend class ::WinMacros;
43147
 
  friend class ::CMatchSyntax;
43148
 
  friend class ::ExtGnu;
 
49982
  friend class ::WinAsm;
 
49983
  friend class ::WinDeclSpecs;
 
49984
  friend class ::WinMemberExplSpec;
 
49985
  friend class ::WinTypeKeywords;
 
49986
  friend class ::WinFriend;
43149
49987
  friend class ::ExtAC;
43150
49988
  friend class ::ExtACBuilderCoupling;
43151
49989
  friend class ::ExtACSyntaxCoupling;
43152
49990
  friend class ::ExtACTree;
43153
49991
  friend class ::ExtACKeywords;
43154
 
  friend class ::WinAsm;
43155
 
  friend class ::WinDeclSpecs;
43156
 
  friend class ::WinMemberExplSpec;
43157
 
  friend class ::WinTypeKeywords;
 
49992
  friend class ::ExtGnu;
43158
49993
  friend class ::PragmaOnceUnitState;
43159
49994
  friend class ::PragmaOnce;
43160
 
  friend class ::CCExprResolve;
43161
 
  friend class ::CExprResolve;
 
49995
  friend class ::CMatchSyntax;
43162
49996
 
43163
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
49997
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43164
49998
 
43165
49999
  CTree *sons[5]; // cond, oper, left, colon, right
43166
50000
 
43167
50001
public:
 
50002
  /** Constructor.
 
50003
   *  \param c1 The condition expression.
 
50004
   *  \param o The question mark operator. 
 
50005
   *  \param l The expression to the left of the colon.
 
50006
   *  \param c2 The colon operator.
 
50007
   *  \param r The expression to the right of the colon. */ 
43168
50008
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
43169
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
50009
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
50010
    AddSon (sons[3], c2); AddSon (sons[4], r);
43170
50011
  }
 
50012
  /** Constructor.
 
50013
   *  \param c1 The condition expression.
 
50014
   *  \param o The question mark operator. 
 
50015
   *  \param c2 The colon operator.
 
50016
   *  \param r The expression to the right of the colon. */ 
43171
50017
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
43172
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
50018
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
50019
    AddSon (sons[3], c2); AddSon (sons[4], r);
43173
50020
  }
 
50021
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43174
50022
  static const char *NodeId ();
 
50023
  /** Get the name of the node. Can be compared with NodeId(). */
43175
50024
  const char *NodeName () const { return NodeId (); }
 
50025
  /** Get the number of sons. */
43176
50026
  int Sons () const { return CTree::Sons (sons, 5); }
 
50027
  /** Get the n-th son.
 
50028
   *  \param n The index of the son.
 
50029
   *  \return The n-th son or NULL. */
43177
50030
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
50031
  /** Get the condition expression. */
43178
50032
  CTree *Condition () const { return sons[0]; }
 
50033
  /** Get the left expression (condition=true). */
43179
50034
  CTree *LeftOperand () const { return sons[2]; }
 
50035
  /** Get the right expression (condition=false). */
43180
50036
  CTree *RightOperand () const { return sons[4]; }
 
50037
  /** Replace a son.
 
50038
   *  \param old_son The son to replace.
 
50039
   *  \param new_son The new son. */
43181
50040
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43182
50041
    CTree::ReplaceSon (sons, 5, old_son, new_son);
43183
50042
  }
43184
50043
   private:
43185
50044
  typedef CT_IfThenExpr CCExprResolveExpr;
43186
50045
 
43187
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50046
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
43188
50047
 public :
43189
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50048
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
43190
50049
  typedef CT_IfThenExpr CExprResolveExpr;
43191
50050
 
43192
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50051
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
43193
50052
 public :
43194
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
43195
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50053
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50054
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43196
50055
};
43197
50056
 
 
50057
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
50058
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
43198
50059
 
43199
 
#line 43200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50060
#line 50061 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
43200
50061
} // closed Puma
 
50062
class CCExprResolve;
 
50063
class CExprResolve;
43201
50064
class WinIfExists;
43202
50065
class WinImportHandler;
43203
50066
class WinMacros;
43204
 
class CMatchSyntax;
43205
 
class ExtGnu;
 
50067
class WinAsm;
 
50068
class WinDeclSpecs;
 
50069
class WinMemberExplSpec;
 
50070
class WinTypeKeywords;
 
50071
class WinFriend;
43206
50072
class ExtAC;
43207
50073
class ExtACBuilderCoupling;
43208
50074
class ExtACSyntaxCoupling;
43209
50075
class ExtACTree;
43210
50076
class ExtACKeywords;
43211
 
class WinAsm;
43212
 
class WinDeclSpecs;
43213
 
class WinMemberExplSpec;
43214
 
class WinTypeKeywords;
 
50077
class ExtGnu;
43215
50078
class PragmaOnceUnitState;
43216
50079
class PragmaOnce;
43217
 
class CCExprResolve;
43218
 
class CExprResolve;
43219
 
namespace Puma {
43220
 
 
43221
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50080
class CMatchSyntax;
 
50081
namespace Puma {
 
50082
 
 
50083
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50084
 
 
50085
#line 50086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50086
} // closed Puma
 
50087
 
 
50088
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50089
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50090
#include "CCExprResolveH.ah"
 
50091
#endif
 
50092
namespace Puma {
 
50093
 
 
50094
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50095
 
 
50096
#line 50097 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50097
} // closed Puma
 
50098
 
 
50099
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50100
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50101
#include "CExprResolveH.ah"
 
50102
#endif
 
50103
namespace Puma {
 
50104
 
 
50105
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43222
50106
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
43223
 
#line 43224 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50107
#line 50108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50108
  friend class ::CCExprResolve;
 
50109
  friend class ::CExprResolve;
43224
50110
  friend class ::WinIfExists;
43225
50111
  friend class ::WinImportHandler;
43226
50112
  friend class ::WinMacros;
43227
 
  friend class ::CMatchSyntax;
43228
 
  friend class ::ExtGnu;
 
50113
  friend class ::WinAsm;
 
50114
  friend class ::WinDeclSpecs;
 
50115
  friend class ::WinMemberExplSpec;
 
50116
  friend class ::WinTypeKeywords;
 
50117
  friend class ::WinFriend;
43229
50118
  friend class ::ExtAC;
43230
50119
  friend class ::ExtACBuilderCoupling;
43231
50120
  friend class ::ExtACSyntaxCoupling;
43232
50121
  friend class ::ExtACTree;
43233
50122
  friend class ::ExtACKeywords;
43234
 
  friend class ::WinAsm;
43235
 
  friend class ::WinDeclSpecs;
43236
 
  friend class ::WinMemberExplSpec;
43237
 
  friend class ::WinTypeKeywords;
 
50123
  friend class ::ExtGnu;
43238
50124
  friend class ::PragmaOnceUnitState;
43239
50125
  friend class ::PragmaOnce;
43240
 
  friend class ::CCExprResolve;
43241
 
  friend class ::CExprResolve;
 
50126
  friend class ::CMatchSyntax;
43242
50127
 
43243
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50128
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43244
50129
 
43245
50130
  CTree *sons[4]; // open, type, close, init
43246
50131
 
43247
50132
public:
 
50133
  /** Constructor.
 
50134
   *  \param r Left parenthesis of the type name.
 
50135
   *  \param t The type name.
 
50136
   *  \param cr Right parenthesis of the type name.
 
50137
   *  \param i The initializer list. */
43248
50138
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
43249
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
50139
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
50140
    AddSon (sons[2], cr); AddSon (sons[3], i);
43250
50141
  }
 
50142
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43251
50143
  static const char *NodeId ();
 
50144
  /** Get the name of the node. Can be compared with NodeId(). */
43252
50145
  const char *NodeName () const { return NodeId (); }
 
50146
  /** Get the number of sons. */
43253
50147
  int Sons () const { return 4; }
 
50148
  /** Get the n-th son.
 
50149
   *  \param n The index of the son.
 
50150
   *  \return The n-th son or NULL. */
43254
50151
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
50152
  /** Replace a son.
 
50153
   *  \param old_son The son to replace.
 
50154
   *  \param new_son The new son. */
43255
50155
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43256
50156
    CTree::ReplaceSon (sons, 4, old_son, new_son);
43257
50157
  }
 
50158
  /** Get the type name. */
43258
50159
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
50160
  /** Get the initializer list. */
43259
50161
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
50162
  /** Get the semantic information object. */
43260
50163
  CSemObject *SemObject () const { return (CSemObject*)this; }
43261
50164
   private:
43262
50165
  typedef CT_CmpdLiteral CCExprResolveExpr;
43263
50166
 
43264
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50167
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
43265
50168
 public :
43266
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50169
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
43267
50170
  typedef CT_CmpdLiteral CExprResolveExpr;
43268
50171
 
43269
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50172
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
43270
50173
 public :
43271
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
43272
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50174
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50175
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43273
50176
};
43274
50177
 
 
50178
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
50179
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
43275
50180
 
43276
 
#line 43277 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50181
#line 50182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
43277
50182
} // closed Puma
 
50183
class CCExprResolve;
 
50184
class CExprResolve;
43278
50185
class WinIfExists;
43279
50186
class WinImportHandler;
43280
50187
class WinMacros;
43281
 
class CMatchSyntax;
43282
 
class ExtGnu;
 
50188
class WinAsm;
 
50189
class WinDeclSpecs;
 
50190
class WinMemberExplSpec;
 
50191
class WinTypeKeywords;
 
50192
class WinFriend;
43283
50193
class ExtAC;
43284
50194
class ExtACBuilderCoupling;
43285
50195
class ExtACSyntaxCoupling;
43286
50196
class ExtACTree;
43287
50197
class ExtACKeywords;
43288
 
class WinAsm;
43289
 
class WinDeclSpecs;
43290
 
class WinMemberExplSpec;
43291
 
class WinTypeKeywords;
 
50198
class ExtGnu;
43292
50199
class PragmaOnceUnitState;
43293
50200
class PragmaOnce;
43294
 
class CCExprResolve;
43295
 
class CExprResolve;
43296
 
namespace Puma {
43297
 
 
43298
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50201
class CMatchSyntax;
 
50202
namespace Puma {
 
50203
 
 
50204
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50205
 
 
50206
#line 50207 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50207
} // closed Puma
 
50208
 
 
50209
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50210
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50211
#include "CCExprResolveH.ah"
 
50212
#endif
 
50213
namespace Puma {
 
50214
 
 
50215
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50216
 
 
50217
#line 50218 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50218
} // closed Puma
 
50219
 
 
50220
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50221
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50222
#include "CExprResolveH.ah"
 
50223
#endif
 
50224
namespace Puma {
 
50225
 
 
50226
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43299
50227
class CT_ConstructExpr : public CT_Expression, public CSemObject {
43300
 
#line 43301 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50228
#line 50229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50229
  friend class ::CCExprResolve;
 
50230
  friend class ::CExprResolve;
43301
50231
  friend class ::WinIfExists;
43302
50232
  friend class ::WinImportHandler;
43303
50233
  friend class ::WinMacros;
43304
 
  friend class ::CMatchSyntax;
43305
 
  friend class ::ExtGnu;
 
50234
  friend class ::WinAsm;
 
50235
  friend class ::WinDeclSpecs;
 
50236
  friend class ::WinMemberExplSpec;
 
50237
  friend class ::WinTypeKeywords;
 
50238
  friend class ::WinFriend;
43306
50239
  friend class ::ExtAC;
43307
50240
  friend class ::ExtACBuilderCoupling;
43308
50241
  friend class ::ExtACSyntaxCoupling;
43309
50242
  friend class ::ExtACTree;
43310
50243
  friend class ::ExtACKeywords;
43311
 
  friend class ::WinAsm;
43312
 
  friend class ::WinDeclSpecs;
43313
 
  friend class ::WinMemberExplSpec;
43314
 
  friend class ::WinTypeKeywords;
 
50244
  friend class ::ExtGnu;
43315
50245
  friend class ::PragmaOnceUnitState;
43316
50246
  friend class ::PragmaOnce;
43317
 
  friend class ::CCExprResolve;
43318
 
  friend class ::CExprResolve;
 
50247
  friend class ::CMatchSyntax;
43319
50248
 
43320
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50249
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43321
50250
 
43322
50251
  CTree *sons[2]; // type, init
43323
50252
 
43324
50253
public:
43325
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
50254
  /** Constructor.
 
50255
   *  \param t The type name.
 
50256
   *  \param i The initializer list. */
 
50257
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
50258
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43326
50259
  static const char *NodeId ();
 
50260
  /** Get the name of the node. Can be compared with NodeId(). */
43327
50261
  const char *NodeName () const { return NodeId (); }
 
50262
  /** Get the number of sons. */
43328
50263
  int Sons () const { return 2; }
 
50264
  /** Get the n-th son.
 
50265
   *  \param n The index of the son.
 
50266
   *  \return The n-th son or NULL. */
43329
50267
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
50268
  /** Replace a son.
 
50269
   *  \param old_son The son to replace.
 
50270
   *  \param new_son The new son. */
43330
50271
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43331
50272
    CTree::ReplaceSon (sons, 2, old_son, new_son);
43332
50273
  }
 
50274
  /** Get the type name. */
43333
50275
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
50276
  /** Get the initializer. */
43334
50277
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
50278
  /** Get the semantic information object. */
43335
50279
  CSemObject *SemObject () const { return (CSemObject*)this; }
43336
50280
   private:
43337
50281
  typedef CT_ConstructExpr CCExprResolveExpr;
43338
50282
 
43339
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50283
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
43340
50284
 public :
43341
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50285
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
43342
50286
  typedef CT_ConstructExpr CExprResolveExpr;
43343
50287
 
43344
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50288
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
43345
50289
 public :
43346
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
43347
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50290
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50291
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43348
50292
};
43349
50293
 
 
50294
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
50295
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
43350
50296
 
43351
 
#line 43352 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50297
#line 50298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
43352
50298
} // closed Puma
 
50299
class CCExprResolve;
 
50300
class CExprResolve;
43353
50301
class WinIfExists;
43354
50302
class WinImportHandler;
43355
50303
class WinMacros;
43356
 
class CMatchSyntax;
43357
 
class ExtGnu;
 
50304
class WinAsm;
 
50305
class WinDeclSpecs;
 
50306
class WinMemberExplSpec;
 
50307
class WinTypeKeywords;
 
50308
class WinFriend;
43358
50309
class ExtAC;
43359
50310
class ExtACBuilderCoupling;
43360
50311
class ExtACSyntaxCoupling;
43361
50312
class ExtACTree;
43362
50313
class ExtACKeywords;
43363
 
class WinAsm;
43364
 
class WinDeclSpecs;
43365
 
class WinMemberExplSpec;
43366
 
class WinTypeKeywords;
 
50314
class ExtGnu;
43367
50315
class PragmaOnceUnitState;
43368
50316
class PragmaOnce;
43369
 
class CCExprResolve;
43370
 
class CExprResolve;
43371
 
namespace Puma {
43372
 
 
43373
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50317
class CMatchSyntax;
 
50318
namespace Puma {
 
50319
 
 
50320
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50321
 
 
50322
#line 50323 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50323
} // closed Puma
 
50324
 
 
50325
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50326
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50327
#include "CCExprResolveH.ah"
 
50328
#endif
 
50329
namespace Puma {
 
50330
 
 
50331
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50332
 
 
50333
#line 50334 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50334
} // closed Puma
 
50335
 
 
50336
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50337
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50338
#include "CExprResolveH.ah"
 
50339
#endif
 
50340
namespace Puma {
 
50341
 
 
50342
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43374
50343
class CT_ThrowExpr : public CT_Expression {
43375
 
#line 43376 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50344
#line 50345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50345
  friend class ::CCExprResolve;
 
50346
  friend class ::CExprResolve;
43376
50347
  friend class ::WinIfExists;
43377
50348
  friend class ::WinImportHandler;
43378
50349
  friend class ::WinMacros;
43379
 
  friend class ::CMatchSyntax;
43380
 
  friend class ::ExtGnu;
 
50350
  friend class ::WinAsm;
 
50351
  friend class ::WinDeclSpecs;
 
50352
  friend class ::WinMemberExplSpec;
 
50353
  friend class ::WinTypeKeywords;
 
50354
  friend class ::WinFriend;
43381
50355
  friend class ::ExtAC;
43382
50356
  friend class ::ExtACBuilderCoupling;
43383
50357
  friend class ::ExtACSyntaxCoupling;
43384
50358
  friend class ::ExtACTree;
43385
50359
  friend class ::ExtACKeywords;
43386
 
  friend class ::WinAsm;
43387
 
  friend class ::WinDeclSpecs;
43388
 
  friend class ::WinMemberExplSpec;
43389
 
  friend class ::WinTypeKeywords;
 
50360
  friend class ::ExtGnu;
43390
50361
  friend class ::PragmaOnceUnitState;
43391
50362
  friend class ::PragmaOnce;
43392
 
  friend class ::CCExprResolve;
43393
 
  friend class ::CExprResolve;
 
50363
  friend class ::CMatchSyntax;
43394
50364
 
43395
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50365
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43396
50366
 
43397
50367
  CTree *sons[2]; // throw, expr
43398
50368
 
43399
50369
public:
43400
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
50370
  /** Constructor.
 
50371
   *  \param t The 'throw' keyword.
 
50372
   *  \param e The expression. */
 
50373
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
50374
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43401
50375
  static const char *NodeId ();
 
50376
  /** Get the name of the node. Can be compared with NodeId(). */
43402
50377
  const char *NodeName () const { return NodeId (); }
 
50378
  /** Get the number of sons. */
43403
50379
  int Sons () const { return CTree::Sons (sons, 2); }
 
50380
  /** Get the n-th son.
 
50381
   *  \param n The index of the son.
 
50382
   *  \return The n-th son or NULL. */
43404
50383
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
50384
  /** Replace a son.
 
50385
   *  \param old_son The son to replace.
 
50386
   *  \param new_son The new son. */
43405
50387
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43406
50388
    CTree::ReplaceSon (sons, 2, old_son, new_son);
43407
50389
  }
 
50390
  /** Get the expression. */
43408
50391
  CTree *Expr () const { return sons[1]; }
43409
50392
   private:
43410
50393
  typedef CT_ThrowExpr CCExprResolveExpr;
43411
50394
 
43412
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50395
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
43413
50396
 public :
43414
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50397
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
43415
50398
  typedef CT_ThrowExpr CExprResolveExpr;
43416
50399
 
43417
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50400
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
43418
50401
 public :
43419
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
43420
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50402
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50403
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43421
50404
};
43422
50405
 
 
50406
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
50407
 *  Tree node representing an index expression. */
43423
50408
 
43424
 
#line 43425 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50409
#line 50410 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
43425
50410
} // closed Puma
 
50411
class CCExprResolve;
 
50412
class CExprResolve;
43426
50413
class WinIfExists;
43427
50414
class WinImportHandler;
43428
50415
class WinMacros;
43429
 
class CMatchSyntax;
43430
 
class ExtGnu;
 
50416
class WinAsm;
 
50417
class WinDeclSpecs;
 
50418
class WinMemberExplSpec;
 
50419
class WinTypeKeywords;
 
50420
class WinFriend;
43431
50421
class ExtAC;
43432
50422
class ExtACBuilderCoupling;
43433
50423
class ExtACSyntaxCoupling;
43434
50424
class ExtACTree;
43435
50425
class ExtACKeywords;
43436
 
class WinAsm;
43437
 
class WinDeclSpecs;
43438
 
class WinMemberExplSpec;
43439
 
class WinTypeKeywords;
 
50426
class ExtGnu;
43440
50427
class PragmaOnceUnitState;
43441
50428
class PragmaOnce;
43442
 
class CCExprResolve;
43443
 
class CExprResolve;
43444
 
namespace Puma {
43445
 
 
43446
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43447
 
class CT_IndexExpr : public CT_Expression {
43448
 
#line 43449 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50429
class CMatchSyntax;
 
50430
namespace Puma {
 
50431
 
 
50432
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50433
 
 
50434
#line 50435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50435
} // closed Puma
 
50436
 
 
50437
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50438
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50439
#include "CCExprResolveH.ah"
 
50440
#endif
 
50441
namespace Puma {
 
50442
 
 
50443
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50444
 
 
50445
#line 50446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50446
} // closed Puma
 
50447
 
 
50448
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50449
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50450
#include "CExprResolveH.ah"
 
50451
#endif
 
50452
namespace Puma {
 
50453
 
 
50454
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50455
class CT_IndexExpr : public CT_Call {
 
50456
#line 50457 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50457
  friend class ::CCExprResolve;
 
50458
  friend class ::CExprResolve;
43449
50459
  friend class ::WinIfExists;
43450
50460
  friend class ::WinImportHandler;
43451
50461
  friend class ::WinMacros;
43452
 
  friend class ::CMatchSyntax;
43453
 
  friend class ::ExtGnu;
 
50462
  friend class ::WinAsm;
 
50463
  friend class ::WinDeclSpecs;
 
50464
  friend class ::WinMemberExplSpec;
 
50465
  friend class ::WinTypeKeywords;
 
50466
  friend class ::WinFriend;
43454
50467
  friend class ::ExtAC;
43455
50468
  friend class ::ExtACBuilderCoupling;
43456
50469
  friend class ::ExtACSyntaxCoupling;
43457
50470
  friend class ::ExtACTree;
43458
50471
  friend class ::ExtACKeywords;
43459
 
  friend class ::WinAsm;
43460
 
  friend class ::WinDeclSpecs;
43461
 
  friend class ::WinMemberExplSpec;
43462
 
  friend class ::WinTypeKeywords;
 
50472
  friend class ::ExtGnu;
43463
50473
  friend class ::PragmaOnceUnitState;
43464
50474
  friend class ::PragmaOnce;
43465
 
  friend class ::CCExprResolve;
43466
 
  friend class ::CExprResolve;
 
50475
  friend class ::CMatchSyntax;
43467
50476
 
43468
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50477
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43469
50478
 
43470
50479
  CTree *sons[4]; // expr, open, index, close
43471
50480
 
43472
50481
public:
 
50482
  /** Constructor.
 
50483
   *  \param e The expression on which to invoke the index operator.
 
50484
   *  \param o Left parenthesis of the index expression.
 
50485
   *  \param i The index expression. 
 
50486
   *  \param c Right parenthesis of the index expression. */
43473
50487
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
43474
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
50488
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
50489
    AddSon (sons[2], i); AddSon (sons[3], c);
43475
50490
  }
 
50491
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43476
50492
  static const char *NodeId ();
 
50493
  /** Get the name of the node. Can be compared with NodeId(). */
43477
50494
  const char *NodeName () const { return NodeId (); }
 
50495
  /** Get the number of sons. */
43478
50496
  int Sons () const { return 4; }
 
50497
  /** Get the n-th son.
 
50498
   *  \param n The index of the son.
 
50499
   *  \return The n-th son or NULL. */
43479
50500
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
50501
  /** Replace a son.
 
50502
   *  \param old_son The son to replace.
 
50503
   *  \param new_son The new son. */
43480
50504
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43481
50505
    CTree::ReplaceSon (sons, 4, old_son, new_son);
43482
50506
  }
43483
50507
   private:
43484
50508
  typedef CT_IndexExpr CCExprResolveExpr;
43485
50509
 
43486
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50510
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
43487
50511
 public :
43488
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50512
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
43489
50513
  typedef CT_IndexExpr CExprResolveExpr;
43490
50514
 
43491
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50515
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
43492
50516
 public :
43493
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
43494
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50517
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50518
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43495
50519
};
43496
50520
 
 
50521
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
50522
 *  Tree node representing a function call expression, e.g. f(i). */
43497
50523
 
43498
 
#line 43499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50524
#line 50525 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
43499
50525
} // closed Puma
 
50526
class CCExprResolve;
 
50527
class CExprResolve;
43500
50528
class WinIfExists;
43501
50529
class WinImportHandler;
43502
50530
class WinMacros;
43503
 
class CMatchSyntax;
43504
 
class ExtGnu;
 
50531
class WinAsm;
 
50532
class WinDeclSpecs;
 
50533
class WinMemberExplSpec;
 
50534
class WinTypeKeywords;
 
50535
class WinFriend;
43505
50536
class ExtAC;
43506
50537
class ExtACBuilderCoupling;
43507
50538
class ExtACSyntaxCoupling;
43508
50539
class ExtACTree;
43509
50540
class ExtACKeywords;
43510
 
class WinAsm;
43511
 
class WinDeclSpecs;
43512
 
class WinMemberExplSpec;
43513
 
class WinTypeKeywords;
 
50541
class ExtGnu;
43514
50542
class PragmaOnceUnitState;
43515
50543
class PragmaOnce;
43516
 
class CCExprResolve;
43517
 
class CExprResolve;
43518
 
namespace Puma {
43519
 
 
43520
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
43521
 
class CT_CallExpr : public CT_Expression, public CSemObject {
43522
 
#line 43523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50544
class CMatchSyntax;
 
50545
namespace Puma {
 
50546
 
 
50547
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50548
 
 
50549
#line 50550 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50550
} // closed Puma
 
50551
 
 
50552
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50553
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50554
#include "CCExprResolveH.ah"
 
50555
#endif
 
50556
namespace Puma {
 
50557
 
 
50558
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50559
 
 
50560
#line 50561 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50561
} // closed Puma
 
50562
 
 
50563
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50564
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50565
#include "CExprResolveH.ah"
 
50566
#endif
 
50567
namespace Puma {
 
50568
 
 
50569
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50570
class CT_CallExpr : public CT_Call {
 
50571
#line 50572 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50572
  friend class ::CCExprResolve;
 
50573
  friend class ::CExprResolve;
43523
50574
  friend class ::WinIfExists;
43524
50575
  friend class ::WinImportHandler;
43525
50576
  friend class ::WinMacros;
43526
 
  friend class ::CMatchSyntax;
43527
 
  friend class ::ExtGnu;
 
50577
  friend class ::WinAsm;
 
50578
  friend class ::WinDeclSpecs;
 
50579
  friend class ::WinMemberExplSpec;
 
50580
  friend class ::WinTypeKeywords;
 
50581
  friend class ::WinFriend;
43528
50582
  friend class ::ExtAC;
43529
50583
  friend class ::ExtACBuilderCoupling;
43530
50584
  friend class ::ExtACSyntaxCoupling;
43531
50585
  friend class ::ExtACTree;
43532
50586
  friend class ::ExtACKeywords;
43533
 
  friend class ::WinAsm;
43534
 
  friend class ::WinDeclSpecs;
43535
 
  friend class ::WinMemberExplSpec;
43536
 
  friend class ::WinTypeKeywords;
 
50587
  friend class ::ExtGnu;
43537
50588
  friend class ::PragmaOnceUnitState;
43538
50589
  friend class ::PragmaOnce;
43539
 
  friend class ::CCExprResolve;
43540
 
  friend class ::CExprResolve;
 
50590
  friend class ::CMatchSyntax;
43541
50591
 
43542
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50592
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43543
50593
 
43544
50594
  CTree *sons[2]; // expr, args
43545
50595
 
43546
50596
public:
43547
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
43548
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
50597
  /** Constructor.
 
50598
   *  \param e The expression on which the call is invoked. */
 
50599
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
50600
  /** Constructor.
 
50601
   *  \param e The expression on which the call is invoked.
 
50602
   *  \param l The argument list of the call. */
 
50603
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
50604
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43549
50605
  static const char *NodeId ();
 
50606
  /** Get the name of the node. Can be compared with NodeId(). */
43550
50607
  const char *NodeName () const { return NodeId (); }
 
50608
  /** Get the number of sons. */
43551
50609
  int Sons () const { return CTree::Sons (sons, 2); }
 
50610
  /** Get the n-th son.
 
50611
   *  \param n The index of the son.
 
50612
   *  \return The n-th son or NULL. */
43552
50613
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
50614
  /** Replace a son.
 
50615
   *  \param old_son The son to replace.
 
50616
   *  \param new_son The new son. */
43553
50617
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43554
50618
    CTree::ReplaceSon (sons, 2, old_son, new_son);
43555
50619
  }
43556
50620
  CTree *Expr () const { return sons[0]; }
43557
50621
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
43558
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
43559
50622
   private:
43560
50623
  typedef CT_CallExpr CCExprResolveExpr;
43561
50624
 
43562
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50625
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
43563
50626
 public :
43564
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50627
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
43565
50628
  typedef CT_CallExpr CExprResolveExpr;
43566
50629
 
43567
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50630
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
43568
50631
 public :
43569
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
43570
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50632
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50633
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43571
50634
};
43572
50635
 
 
50636
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
50637
 *  Tree node representing a cast expression, e.g. (int)a. */
43573
50638
 
43574
 
#line 43575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50639
#line 50640 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
43575
50640
} // closed Puma
 
50641
class CCExprResolve;
 
50642
class CExprResolve;
43576
50643
class WinIfExists;
43577
50644
class WinImportHandler;
43578
50645
class WinMacros;
43579
 
class CMatchSyntax;
43580
 
class ExtGnu;
 
50646
class WinAsm;
 
50647
class WinDeclSpecs;
 
50648
class WinMemberExplSpec;
 
50649
class WinTypeKeywords;
 
50650
class WinFriend;
43581
50651
class ExtAC;
43582
50652
class ExtACBuilderCoupling;
43583
50653
class ExtACSyntaxCoupling;
43584
50654
class ExtACTree;
43585
50655
class ExtACKeywords;
43586
 
class WinAsm;
43587
 
class WinDeclSpecs;
43588
 
class WinMemberExplSpec;
43589
 
class WinTypeKeywords;
 
50656
class ExtGnu;
43590
50657
class PragmaOnceUnitState;
43591
50658
class PragmaOnce;
43592
 
class CCExprResolve;
43593
 
class CExprResolve;
43594
 
namespace Puma {
43595
 
 
43596
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50659
class CMatchSyntax;
 
50660
namespace Puma {
 
50661
 
 
50662
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50663
 
 
50664
#line 50665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50665
} // closed Puma
 
50666
 
 
50667
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50668
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50669
#include "CCExprResolveH.ah"
 
50670
#endif
 
50671
namespace Puma {
 
50672
 
 
50673
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50674
 
 
50675
#line 50676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50676
} // closed Puma
 
50677
 
 
50678
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50679
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50680
#include "CExprResolveH.ah"
 
50681
#endif
 
50682
namespace Puma {
 
50683
 
 
50684
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43597
50685
class CT_CastExpr : public CT_Expression {
43598
 
#line 43599 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50686
#line 50687 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50687
  friend class ::CCExprResolve;
 
50688
  friend class ::CExprResolve;
43599
50689
  friend class ::WinIfExists;
43600
50690
  friend class ::WinImportHandler;
43601
50691
  friend class ::WinMacros;
43602
 
  friend class ::CMatchSyntax;
43603
 
  friend class ::ExtGnu;
 
50692
  friend class ::WinAsm;
 
50693
  friend class ::WinDeclSpecs;
 
50694
  friend class ::WinMemberExplSpec;
 
50695
  friend class ::WinTypeKeywords;
 
50696
  friend class ::WinFriend;
43604
50697
  friend class ::ExtAC;
43605
50698
  friend class ::ExtACBuilderCoupling;
43606
50699
  friend class ::ExtACSyntaxCoupling;
43607
50700
  friend class ::ExtACTree;
43608
50701
  friend class ::ExtACKeywords;
43609
 
  friend class ::WinAsm;
43610
 
  friend class ::WinDeclSpecs;
43611
 
  friend class ::WinMemberExplSpec;
43612
 
  friend class ::WinTypeKeywords;
 
50702
  friend class ::ExtGnu;
43613
50703
  friend class ::PragmaOnceUnitState;
43614
50704
  friend class ::PragmaOnce;
43615
 
  friend class ::CCExprResolve;
43616
 
  friend class ::CExprResolve;
 
50705
  friend class ::CMatchSyntax;
43617
50706
 
43618
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50707
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43619
50708
 
43620
50709
  CTree *sons[4]; // open, type, close, expr
43621
50710
 
43622
50711
public:
 
50712
  /** Constructor.
 
50713
   *  \param o Left parenthesis of the type name.
 
50714
   *  \param t The type to cast to.
 
50715
   *  \param c Right parenthesis of the type name. 
 
50716
   *  \param e The expression to cast. */
43623
50717
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
43624
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
50718
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
50719
    AddSon (sons[2], c); AddSon (sons[3], e);
43625
50720
  }
 
50721
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43626
50722
  static const char *NodeId ();
 
50723
  /** Get the name of the node. Can be compared with NodeId(). */
43627
50724
  const char *NodeName () const { return NodeId (); }
 
50725
  /** Get the number of sons. */
43628
50726
  int Sons () const { return 4; }
 
50727
  /** Get the n-th son.
 
50728
   *  \param n The index of the son.
 
50729
   *  \return The n-th son or NULL. */
43629
50730
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
50731
  /** Replace a son.
 
50732
   *  \param old_son The son to replace.
 
50733
   *  \param new_son The new son. */
43630
50734
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43631
50735
    CTree::ReplaceSon (sons, 4, old_son, new_son);
43632
50736
  }
 
50737
  /** Get the casted expression. */
43633
50738
  CTree *Expr () const { return sons[3]; }
 
50739
  /** Get the type to cast to. */
43634
50740
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
43635
50741
   private:
43636
50742
  typedef CT_CastExpr CCExprResolveExpr;
43637
50743
 
43638
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50744
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
43639
50745
 public :
43640
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50746
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
43641
50747
  typedef CT_CastExpr CExprResolveExpr;
43642
50748
 
43643
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50749
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
43644
50750
 public :
43645
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
43646
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50751
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50752
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43647
50753
};
43648
50754
 
 
50755
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
50756
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
43649
50757
 
43650
 
#line 43651 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50758
#line 50759 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
43651
50759
} // closed Puma
 
50760
class CCExprResolve;
 
50761
class CExprResolve;
43652
50762
class WinIfExists;
43653
50763
class WinImportHandler;
43654
50764
class WinMacros;
43655
 
class CMatchSyntax;
43656
 
class ExtGnu;
 
50765
class WinAsm;
 
50766
class WinDeclSpecs;
 
50767
class WinMemberExplSpec;
 
50768
class WinTypeKeywords;
 
50769
class WinFriend;
43657
50770
class ExtAC;
43658
50771
class ExtACBuilderCoupling;
43659
50772
class ExtACSyntaxCoupling;
43660
50773
class ExtACTree;
43661
50774
class ExtACKeywords;
43662
 
class WinAsm;
43663
 
class WinDeclSpecs;
43664
 
class WinMemberExplSpec;
43665
 
class WinTypeKeywords;
 
50775
class ExtGnu;
43666
50776
class PragmaOnceUnitState;
43667
50777
class PragmaOnce;
43668
 
class CCExprResolve;
43669
 
class CExprResolve;
43670
 
namespace Puma {
43671
 
 
43672
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50778
class CMatchSyntax;
 
50779
namespace Puma {
 
50780
 
 
50781
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50782
 
 
50783
#line 50784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50784
} // closed Puma
 
50785
 
 
50786
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50787
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50788
#include "CCExprResolveH.ah"
 
50789
#endif
 
50790
namespace Puma {
 
50791
 
 
50792
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50793
 
 
50794
#line 50795 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50795
} // closed Puma
 
50796
 
 
50797
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50798
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50799
#include "CExprResolveH.ah"
 
50800
#endif
 
50801
namespace Puma {
 
50802
 
 
50803
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43673
50804
class CT_StaticCast : public CT_Expression {
43674
 
#line 43675 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50805
#line 50806 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50806
  friend class ::CCExprResolve;
 
50807
  friend class ::CExprResolve;
43675
50808
  friend class ::WinIfExists;
43676
50809
  friend class ::WinImportHandler;
43677
50810
  friend class ::WinMacros;
43678
 
  friend class ::CMatchSyntax;
43679
 
  friend class ::ExtGnu;
 
50811
  friend class ::WinAsm;
 
50812
  friend class ::WinDeclSpecs;
 
50813
  friend class ::WinMemberExplSpec;
 
50814
  friend class ::WinTypeKeywords;
 
50815
  friend class ::WinFriend;
43680
50816
  friend class ::ExtAC;
43681
50817
  friend class ::ExtACBuilderCoupling;
43682
50818
  friend class ::ExtACSyntaxCoupling;
43683
50819
  friend class ::ExtACTree;
43684
50820
  friend class ::ExtACKeywords;
43685
 
  friend class ::WinAsm;
43686
 
  friend class ::WinDeclSpecs;
43687
 
  friend class ::WinMemberExplSpec;
43688
 
  friend class ::WinTypeKeywords;
 
50821
  friend class ::ExtGnu;
43689
50822
  friend class ::PragmaOnceUnitState;
43690
50823
  friend class ::PragmaOnce;
43691
 
  friend class ::CCExprResolve;
43692
 
  friend class ::CExprResolve;
 
50824
  friend class ::CMatchSyntax;
43693
50825
 
43694
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50826
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43695
50827
 
43696
50828
  CTree *sons[5]; // cast, open, type, close, expr
43697
50829
 
43698
50830
public:
 
50831
  /** Constructor.
 
50832
   *  \param cst The cast operator, i.e. 'static_cast'.
 
50833
   *  \param o Left arrow bracket of the type name.
 
50834
   *  \param t The type to cast to.
 
50835
   *  \param c Right array bracket of the type name.
 
50836
   *  \param e The expression to cast. */
43699
50837
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
43700
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
50838
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
50839
    AddSon (sons[3], c); AddSon (sons[4], e);
43701
50840
  }
 
50841
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43702
50842
  static const char *NodeId ();
 
50843
  /** Get the name of the node. Can be compared with NodeId(). */
43703
50844
  const char *NodeName () const { return NodeId (); }
 
50845
  /** Get the number of sons. */
43704
50846
  int Sons () const { return 5; }
 
50847
  /** Get the n-th son.
 
50848
   *  \param n The index of the son.
 
50849
   *  \return The n-th son or NULL. */
43705
50850
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
50851
  /** Replace a son.
 
50852
   *  \param old_son The son to replace.
 
50853
   *  \param new_son The new son. */
43706
50854
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
43707
50855
    CTree::ReplaceSon (sons, 5, old_son, new_son);
43708
50856
  }
 
50857
  /** Get the casted expression. */
43709
50858
  CTree *Expr () const { return sons[4]; }
 
50859
  /** Get the type to cast to. */
43710
50860
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
43711
50861
   private:
43712
50862
  typedef CT_StaticCast CCExprResolveExpr;
43713
50863
 
43714
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50864
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
43715
50865
 public :
43716
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50866
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
43717
50867
  typedef CT_StaticCast CExprResolveExpr;
43718
50868
 
43719
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50869
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
43720
50870
 public :
43721
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
43722
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50871
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50872
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43723
50873
};
43724
50874
 
 
50875
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
50876
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
43725
50877
 
43726
 
#line 43727 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50878
#line 50879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
43727
50879
} // closed Puma
 
50880
class CCExprResolve;
 
50881
class CExprResolve;
43728
50882
class WinIfExists;
43729
50883
class WinImportHandler;
43730
50884
class WinMacros;
43731
 
class CMatchSyntax;
43732
 
class ExtGnu;
 
50885
class WinAsm;
 
50886
class WinDeclSpecs;
 
50887
class WinMemberExplSpec;
 
50888
class WinTypeKeywords;
 
50889
class WinFriend;
43733
50890
class ExtAC;
43734
50891
class ExtACBuilderCoupling;
43735
50892
class ExtACSyntaxCoupling;
43736
50893
class ExtACTree;
43737
50894
class ExtACKeywords;
43738
 
class WinAsm;
43739
 
class WinDeclSpecs;
43740
 
class WinMemberExplSpec;
43741
 
class WinTypeKeywords;
 
50895
class ExtGnu;
43742
50896
class PragmaOnceUnitState;
43743
50897
class PragmaOnce;
43744
 
class CCExprResolve;
43745
 
class CExprResolve;
43746
 
namespace Puma {
43747
 
 
43748
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50898
class CMatchSyntax;
 
50899
namespace Puma {
 
50900
 
 
50901
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50902
 
 
50903
#line 50904 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50904
} // closed Puma
 
50905
 
 
50906
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50907
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
50908
#include "CCExprResolveH.ah"
 
50909
#endif
 
50910
namespace Puma {
 
50911
 
 
50912
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50913
 
 
50914
#line 50915 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50915
} // closed Puma
 
50916
 
 
50917
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50918
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
50919
#include "CExprResolveH.ah"
 
50920
#endif
 
50921
namespace Puma {
 
50922
 
 
50923
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43749
50924
class CT_ConstCast : public CT_StaticCast {
43750
 
#line 43751 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50925
#line 50926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
50926
  friend class ::CCExprResolve;
 
50927
  friend class ::CExprResolve;
43751
50928
  friend class ::WinIfExists;
43752
50929
  friend class ::WinImportHandler;
43753
50930
  friend class ::WinMacros;
43754
 
  friend class ::CMatchSyntax;
43755
 
  friend class ::ExtGnu;
 
50931
  friend class ::WinAsm;
 
50932
  friend class ::WinDeclSpecs;
 
50933
  friend class ::WinMemberExplSpec;
 
50934
  friend class ::WinTypeKeywords;
 
50935
  friend class ::WinFriend;
43756
50936
  friend class ::ExtAC;
43757
50937
  friend class ::ExtACBuilderCoupling;
43758
50938
  friend class ::ExtACSyntaxCoupling;
43759
50939
  friend class ::ExtACTree;
43760
50940
  friend class ::ExtACKeywords;
43761
 
  friend class ::WinAsm;
43762
 
  friend class ::WinDeclSpecs;
43763
 
  friend class ::WinMemberExplSpec;
43764
 
  friend class ::WinTypeKeywords;
 
50941
  friend class ::ExtGnu;
43765
50942
  friend class ::PragmaOnceUnitState;
43766
50943
  friend class ::PragmaOnce;
43767
 
  friend class ::CCExprResolve;
43768
 
  friend class ::CExprResolve;
 
50944
  friend class ::CMatchSyntax;
43769
50945
 
43770
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50946
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43771
50947
 
43772
50948
public:
 
50949
  /** Constructor.
 
50950
   *  \param cst The cast operator, i.e. 'const_cast'.
 
50951
   *  \param o Left arrow bracket of the type name.
 
50952
   *  \param t The type to cast to.
 
50953
   *  \param c Right array bracket of the type name.
 
50954
   *  \param e The expression to cast. */
43773
50955
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
43774
50956
    CT_StaticCast (cst, o, t, c, e) {}
 
50957
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43775
50958
  static const char *NodeId ();
 
50959
  /** Get the name of the node. Can be compared with NodeId(). */
43776
50960
  const char *NodeName () const { return NodeId (); }
43777
50961
   private:
43778
50962
  typedef CT_ConstCast CCExprResolveExpr;
43779
50963
 
43780
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
50964
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
43781
50965
 public :
43782
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
50966
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
43783
50967
  typedef CT_ConstCast CExprResolveExpr;
43784
50968
 
43785
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
50969
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
43786
50970
 public :
43787
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
43788
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50971
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
50972
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43789
50973
};
43790
50974
 
 
50975
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
50976
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
43791
50977
 
43792
 
#line 43793 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
50978
#line 50979 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
43793
50979
} // closed Puma
 
50980
class CCExprResolve;
 
50981
class CExprResolve;
43794
50982
class WinIfExists;
43795
50983
class WinImportHandler;
43796
50984
class WinMacros;
43797
 
class CMatchSyntax;
43798
 
class ExtGnu;
 
50985
class WinAsm;
 
50986
class WinDeclSpecs;
 
50987
class WinMemberExplSpec;
 
50988
class WinTypeKeywords;
 
50989
class WinFriend;
43799
50990
class ExtAC;
43800
50991
class ExtACBuilderCoupling;
43801
50992
class ExtACSyntaxCoupling;
43802
50993
class ExtACTree;
43803
50994
class ExtACKeywords;
43804
 
class WinAsm;
43805
 
class WinDeclSpecs;
43806
 
class WinMemberExplSpec;
43807
 
class WinTypeKeywords;
 
50995
class ExtGnu;
43808
50996
class PragmaOnceUnitState;
43809
50997
class PragmaOnce;
43810
 
class CCExprResolve;
43811
 
class CExprResolve;
43812
 
namespace Puma {
43813
 
 
43814
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
50998
class CMatchSyntax;
 
50999
namespace Puma {
 
51000
 
 
51001
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51002
 
 
51003
#line 51004 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51004
} // closed Puma
 
51005
 
 
51006
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51007
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51008
#include "CCExprResolveH.ah"
 
51009
#endif
 
51010
namespace Puma {
 
51011
 
 
51012
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51013
 
 
51014
#line 51015 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51015
} // closed Puma
 
51016
 
 
51017
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51018
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51019
#include "CExprResolveH.ah"
 
51020
#endif
 
51021
namespace Puma {
 
51022
 
 
51023
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43815
51024
class CT_ReintCast : public CT_StaticCast {
43816
 
#line 43817 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51025
#line 51026 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51026
  friend class ::CCExprResolve;
 
51027
  friend class ::CExprResolve;
43817
51028
  friend class ::WinIfExists;
43818
51029
  friend class ::WinImportHandler;
43819
51030
  friend class ::WinMacros;
43820
 
  friend class ::CMatchSyntax;
43821
 
  friend class ::ExtGnu;
 
51031
  friend class ::WinAsm;
 
51032
  friend class ::WinDeclSpecs;
 
51033
  friend class ::WinMemberExplSpec;
 
51034
  friend class ::WinTypeKeywords;
 
51035
  friend class ::WinFriend;
43822
51036
  friend class ::ExtAC;
43823
51037
  friend class ::ExtACBuilderCoupling;
43824
51038
  friend class ::ExtACSyntaxCoupling;
43825
51039
  friend class ::ExtACTree;
43826
51040
  friend class ::ExtACKeywords;
43827
 
  friend class ::WinAsm;
43828
 
  friend class ::WinDeclSpecs;
43829
 
  friend class ::WinMemberExplSpec;
43830
 
  friend class ::WinTypeKeywords;
 
51041
  friend class ::ExtGnu;
43831
51042
  friend class ::PragmaOnceUnitState;
43832
51043
  friend class ::PragmaOnce;
43833
 
  friend class ::CCExprResolve;
43834
 
  friend class ::CExprResolve;
 
51044
  friend class ::CMatchSyntax;
43835
51045
 
43836
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51046
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43837
51047
 
43838
51048
public:
 
51049
  /** Constructor.
 
51050
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
51051
   *  \param o Left arrow bracket of the type name.
 
51052
   *  \param t The type to cast to.
 
51053
   *  \param c Right array bracket of the type name.
 
51054
   *  \param e The expression to cast. */
43839
51055
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
43840
51056
    CT_StaticCast (cst, o, t, c, e) {}
 
51057
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43841
51058
  static const char *NodeId ();
 
51059
  /** Get the name of the node. Can be compared with NodeId(). */
43842
51060
  const char *NodeName () const { return NodeId (); }
43843
51061
   private:
43844
51062
  typedef CT_ReintCast CCExprResolveExpr;
43845
51063
 
43846
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51064
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
43847
51065
 public :
43848
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51066
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
43849
51067
  typedef CT_ReintCast CExprResolveExpr;
43850
51068
 
43851
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51069
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
43852
51070
 public :
43853
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
43854
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51071
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51072
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43855
51073
};
43856
51074
 
 
51075
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
51076
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
43857
51077
 
43858
 
#line 43859 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51078
#line 51079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
43859
51079
} // closed Puma
 
51080
class CCExprResolve;
 
51081
class CExprResolve;
43860
51082
class WinIfExists;
43861
51083
class WinImportHandler;
43862
51084
class WinMacros;
43863
 
class CMatchSyntax;
43864
 
class ExtGnu;
 
51085
class WinAsm;
 
51086
class WinDeclSpecs;
 
51087
class WinMemberExplSpec;
 
51088
class WinTypeKeywords;
 
51089
class WinFriend;
43865
51090
class ExtAC;
43866
51091
class ExtACBuilderCoupling;
43867
51092
class ExtACSyntaxCoupling;
43868
51093
class ExtACTree;
43869
51094
class ExtACKeywords;
43870
 
class WinAsm;
43871
 
class WinDeclSpecs;
43872
 
class WinMemberExplSpec;
43873
 
class WinTypeKeywords;
 
51095
class ExtGnu;
43874
51096
class PragmaOnceUnitState;
43875
51097
class PragmaOnce;
43876
 
class CCExprResolve;
43877
 
class CExprResolve;
43878
 
namespace Puma {
43879
 
 
43880
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51098
class CMatchSyntax;
 
51099
namespace Puma {
 
51100
 
 
51101
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51102
 
 
51103
#line 51104 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51104
} // closed Puma
 
51105
 
 
51106
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51107
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51108
#include "CCExprResolveH.ah"
 
51109
#endif
 
51110
namespace Puma {
 
51111
 
 
51112
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51113
 
 
51114
#line 51115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51115
} // closed Puma
 
51116
 
 
51117
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51118
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51119
#include "CExprResolveH.ah"
 
51120
#endif
 
51121
namespace Puma {
 
51122
 
 
51123
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43881
51124
class CT_DynamicCast : public CT_StaticCast {
43882
 
#line 43883 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51125
#line 51126 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51126
  friend class ::CCExprResolve;
 
51127
  friend class ::CExprResolve;
43883
51128
  friend class ::WinIfExists;
43884
51129
  friend class ::WinImportHandler;
43885
51130
  friend class ::WinMacros;
43886
 
  friend class ::CMatchSyntax;
43887
 
  friend class ::ExtGnu;
 
51131
  friend class ::WinAsm;
 
51132
  friend class ::WinDeclSpecs;
 
51133
  friend class ::WinMemberExplSpec;
 
51134
  friend class ::WinTypeKeywords;
 
51135
  friend class ::WinFriend;
43888
51136
  friend class ::ExtAC;
43889
51137
  friend class ::ExtACBuilderCoupling;
43890
51138
  friend class ::ExtACSyntaxCoupling;
43891
51139
  friend class ::ExtACTree;
43892
51140
  friend class ::ExtACKeywords;
43893
 
  friend class ::WinAsm;
43894
 
  friend class ::WinDeclSpecs;
43895
 
  friend class ::WinMemberExplSpec;
43896
 
  friend class ::WinTypeKeywords;
 
51141
  friend class ::ExtGnu;
43897
51142
  friend class ::PragmaOnceUnitState;
43898
51143
  friend class ::PragmaOnce;
43899
 
  friend class ::CCExprResolve;
43900
 
  friend class ::CExprResolve;
 
51144
  friend class ::CMatchSyntax;
43901
51145
 
43902
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51146
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43903
51147
 
43904
51148
public:
 
51149
  /** Constructor.
 
51150
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
51151
   *  \param o Left arrow bracket of the type name.
 
51152
   *  \param t The type to cast to.
 
51153
   *  \param c Right array bracket of the type name.
 
51154
   *  \param e The expression to cast. */
43905
51155
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
43906
51156
    CT_StaticCast (cst, o, t, c, e) {}
 
51157
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43907
51158
  static const char *NodeId ();
 
51159
  /** Get the name of the node. Can be compared with NodeId(). */
43908
51160
  const char *NodeName () const { return NodeId (); }
43909
51161
   private:
43910
51162
  typedef CT_DynamicCast CCExprResolveExpr;
43911
51163
 
43912
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51164
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
43913
51165
 public :
43914
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51166
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
43915
51167
  typedef CT_DynamicCast CExprResolveExpr;
43916
51168
 
43917
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51169
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
43918
51170
 public :
43919
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
43920
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51171
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51172
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43921
51173
};
43922
51174
 
 
51175
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
51176
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
51177
 *  where 1.2 is implicitely casted from float to int. */
43923
51178
 
43924
 
#line 43925 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51179
#line 51180 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
43925
51180
} // closed Puma
 
51181
class CCExprResolve;
 
51182
class CExprResolve;
43926
51183
class WinIfExists;
43927
51184
class WinImportHandler;
43928
51185
class WinMacros;
43929
 
class CMatchSyntax;
43930
 
class ExtGnu;
 
51186
class WinAsm;
 
51187
class WinDeclSpecs;
 
51188
class WinMemberExplSpec;
 
51189
class WinTypeKeywords;
 
51190
class WinFriend;
43931
51191
class ExtAC;
43932
51192
class ExtACBuilderCoupling;
43933
51193
class ExtACSyntaxCoupling;
43934
51194
class ExtACTree;
43935
51195
class ExtACKeywords;
43936
 
class WinAsm;
43937
 
class WinDeclSpecs;
43938
 
class WinMemberExplSpec;
43939
 
class WinTypeKeywords;
 
51196
class ExtGnu;
43940
51197
class PragmaOnceUnitState;
43941
51198
class PragmaOnce;
43942
 
class CCExprResolve;
43943
 
class CExprResolve;
43944
 
namespace Puma {
43945
 
 
43946
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51199
class CMatchSyntax;
 
51200
namespace Puma {
 
51201
 
 
51202
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51203
 
 
51204
#line 51205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51205
} // closed Puma
 
51206
 
 
51207
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51208
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51209
#include "CCExprResolveH.ah"
 
51210
#endif
 
51211
namespace Puma {
 
51212
 
 
51213
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51214
 
 
51215
#line 51216 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51216
} // closed Puma
 
51217
 
 
51218
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51219
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51220
#include "CExprResolveH.ah"
 
51221
#endif
 
51222
namespace Puma {
 
51223
 
 
51224
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43947
51225
class CT_ImplicitCast : public CT_Expression {
43948
 
#line 43949 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51226
#line 51227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51227
  friend class ::CCExprResolve;
 
51228
  friend class ::CExprResolve;
43949
51229
  friend class ::WinIfExists;
43950
51230
  friend class ::WinImportHandler;
43951
51231
  friend class ::WinMacros;
43952
 
  friend class ::CMatchSyntax;
43953
 
  friend class ::ExtGnu;
 
51232
  friend class ::WinAsm;
 
51233
  friend class ::WinDeclSpecs;
 
51234
  friend class ::WinMemberExplSpec;
 
51235
  friend class ::WinTypeKeywords;
 
51236
  friend class ::WinFriend;
43954
51237
  friend class ::ExtAC;
43955
51238
  friend class ::ExtACBuilderCoupling;
43956
51239
  friend class ::ExtACSyntaxCoupling;
43957
51240
  friend class ::ExtACTree;
43958
51241
  friend class ::ExtACKeywords;
43959
 
  friend class ::WinAsm;
43960
 
  friend class ::WinDeclSpecs;
43961
 
  friend class ::WinMemberExplSpec;
43962
 
  friend class ::WinTypeKeywords;
 
51242
  friend class ::ExtGnu;
43963
51243
  friend class ::PragmaOnceUnitState;
43964
51244
  friend class ::PragmaOnce;
43965
 
  friend class ::CCExprResolve;
43966
 
  friend class ::CExprResolve;
 
51245
  friend class ::CMatchSyntax;
43967
51246
 
43968
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51247
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43969
51248
 
43970
51249
  CTree *_expr; // casted expression
43971
51250
 
43972
51251
public:
43973
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
51252
  /** Constructor.
 
51253
   *  \param e The expression that is implicitely casted. */
 
51254
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
51255
  /** Get the identifier for this node type. Can be compared with NodeName(). */
43974
51256
  static const char *NodeId ();
 
51257
  /** Get the name of the node. Can be compared with NodeId(). */
43975
51258
  const char *NodeName () const { return NodeId (); }
 
51259
  /** Get the number of sons. */
43976
51260
  int Sons () const { return 1; }
 
51261
  /** Get the n-th son.
 
51262
   *  \param n The index of the son.
 
51263
   *  \return The n-th son or NULL. */
43977
51264
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
51265
  /** Get the casted expression. */
43978
51266
  CTree *Expr () const { return _expr; }
 
51267
  /** Replace a son.
 
51268
   *  \param old_son The son to replace.
 
51269
   *  \param new_son The new son. */
43979
51270
  void ReplaceSon (CTree *old_son, CTree *new_son) 
43980
 
   { if (old_son == _expr) _expr = new_son; }
 
51271
   { CTree::ReplaceSon (_expr, old_son, new_son); }
43981
51272
   private:
43982
51273
  typedef CT_ImplicitCast CCExprResolveExpr;
43983
51274
 
43984
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51275
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
43985
51276
 public :
43986
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51277
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
43987
51278
  typedef CT_ImplicitCast CExprResolveExpr;
43988
51279
 
43989
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51280
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
43990
51281
 public :
43991
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
43992
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51282
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51283
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
43993
51284
};
43994
51285
 
 
51286
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
51287
 *  Tree node representing a typeid expression, e.g. typeid(X). */
43995
51288
 
43996
 
#line 43997 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51289
#line 51290 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
43997
51290
} // closed Puma
 
51291
class CCExprResolve;
 
51292
class CExprResolve;
43998
51293
class WinIfExists;
43999
51294
class WinImportHandler;
44000
51295
class WinMacros;
44001
 
class CMatchSyntax;
44002
 
class ExtGnu;
 
51296
class WinAsm;
 
51297
class WinDeclSpecs;
 
51298
class WinMemberExplSpec;
 
51299
class WinTypeKeywords;
 
51300
class WinFriend;
44003
51301
class ExtAC;
44004
51302
class ExtACBuilderCoupling;
44005
51303
class ExtACSyntaxCoupling;
44006
51304
class ExtACTree;
44007
51305
class ExtACKeywords;
44008
 
class WinAsm;
44009
 
class WinDeclSpecs;
44010
 
class WinMemberExplSpec;
44011
 
class WinTypeKeywords;
 
51306
class ExtGnu;
44012
51307
class PragmaOnceUnitState;
44013
51308
class PragmaOnce;
44014
 
class CCExprResolve;
44015
 
class CExprResolve;
44016
 
namespace Puma {
44017
 
 
44018
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51309
class CMatchSyntax;
 
51310
namespace Puma {
 
51311
 
 
51312
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51313
 
 
51314
#line 51315 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51315
} // closed Puma
 
51316
 
 
51317
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51318
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51319
#include "CCExprResolveH.ah"
 
51320
#endif
 
51321
namespace Puma {
 
51322
 
 
51323
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51324
 
 
51325
#line 51326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51326
} // closed Puma
 
51327
 
 
51328
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51329
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51330
#include "CExprResolveH.ah"
 
51331
#endif
 
51332
namespace Puma {
 
51333
 
 
51334
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44019
51335
class CT_TypeidExpr : public CT_Expression {
44020
 
#line 44021 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51336
#line 51337 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51337
  friend class ::CCExprResolve;
 
51338
  friend class ::CExprResolve;
44021
51339
  friend class ::WinIfExists;
44022
51340
  friend class ::WinImportHandler;
44023
51341
  friend class ::WinMacros;
44024
 
  friend class ::CMatchSyntax;
44025
 
  friend class ::ExtGnu;
 
51342
  friend class ::WinAsm;
 
51343
  friend class ::WinDeclSpecs;
 
51344
  friend class ::WinMemberExplSpec;
 
51345
  friend class ::WinTypeKeywords;
 
51346
  friend class ::WinFriend;
44026
51347
  friend class ::ExtAC;
44027
51348
  friend class ::ExtACBuilderCoupling;
44028
51349
  friend class ::ExtACSyntaxCoupling;
44029
51350
  friend class ::ExtACTree;
44030
51351
  friend class ::ExtACKeywords;
44031
 
  friend class ::WinAsm;
44032
 
  friend class ::WinDeclSpecs;
44033
 
  friend class ::WinMemberExplSpec;
44034
 
  friend class ::WinTypeKeywords;
 
51352
  friend class ::ExtGnu;
44035
51353
  friend class ::PragmaOnceUnitState;
44036
51354
  friend class ::PragmaOnce;
44037
 
  friend class ::CCExprResolve;
44038
 
  friend class ::CExprResolve;
 
51355
  friend class ::CMatchSyntax;
44039
51356
 
44040
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51357
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44041
51358
 
44042
51359
  CTree *sons[4]; // typeid, open, type_id/expr, close
44043
51360
 
44044
51361
public:
 
51362
  /** Constructor.
 
51363
   *  \param tid The 'typeid' operator.
 
51364
   *  \param o The left parenthesis of the type name or expression.
 
51365
   *  \param e The expression or type name for which to get the type identifier.
 
51366
   *  \param c The right parenthesis of the type name or expression. */
44045
51367
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
44046
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
51368
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
51369
    AddSon (sons[2], e); AddSon (sons[3], c);
44047
51370
  }
 
51371
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44048
51372
  static const char *NodeId ();
 
51373
  /** Get the name of the node. Can be compared with NodeId(). */
44049
51374
  const char *NodeName () const { return NodeId (); }
 
51375
  /** Get the number of sons. */
44050
51376
  int Sons () const { return 4; }
 
51377
  /** Get the n-th son.
 
51378
   *  \param n The index of the son.
 
51379
   *  \return The n-th son or NULL. */
44051
51380
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
51381
  /** Replace a son.
 
51382
   *  \param old_son The son to replace.
 
51383
   *  \param new_son The new son. */
44052
51384
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44053
51385
    CTree::ReplaceSon (sons, 4, old_son, new_son);
44054
51386
  }
 
51387
  /** Get the typeid argument, i.e. the expression or type name for
 
51388
   *  which to get the type identifier. */
44055
51389
  CTree *Arg () const { return sons[2]; }
44056
51390
   private:
44057
51391
  typedef CT_TypeidExpr CCExprResolveExpr;
44058
51392
 
44059
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51393
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
44060
51394
 public :
44061
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51395
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
44062
51396
  typedef CT_TypeidExpr CExprResolveExpr;
44063
51397
 
44064
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51398
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
44065
51399
 public :
44066
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
44067
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51400
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51401
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44068
51402
};
44069
51403
 
 
51404
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
51405
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
44070
51406
 
44071
 
#line 44072 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51407
#line 51408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44072
51408
} // closed Puma
 
51409
class CCExprResolve;
 
51410
class CExprResolve;
44073
51411
class WinIfExists;
44074
51412
class WinImportHandler;
44075
51413
class WinMacros;
44076
 
class CMatchSyntax;
44077
 
class ExtGnu;
 
51414
class WinAsm;
 
51415
class WinDeclSpecs;
 
51416
class WinMemberExplSpec;
 
51417
class WinTypeKeywords;
 
51418
class WinFriend;
44078
51419
class ExtAC;
44079
51420
class ExtACBuilderCoupling;
44080
51421
class ExtACSyntaxCoupling;
44081
51422
class ExtACTree;
44082
51423
class ExtACKeywords;
44083
 
class WinAsm;
44084
 
class WinDeclSpecs;
44085
 
class WinMemberExplSpec;
44086
 
class WinTypeKeywords;
 
51424
class ExtGnu;
44087
51425
class PragmaOnceUnitState;
44088
51426
class PragmaOnce;
44089
 
class CCExprResolve;
44090
 
class CExprResolve;
44091
 
namespace Puma {
44092
 
 
44093
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51427
class CMatchSyntax;
 
51428
namespace Puma {
 
51429
 
 
51430
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51431
 
 
51432
#line 51433 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51433
} // closed Puma
 
51434
 
 
51435
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51436
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51437
#include "CCExprResolveH.ah"
 
51438
#endif
 
51439
namespace Puma {
 
51440
 
 
51441
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51442
 
 
51443
#line 51444 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51444
} // closed Puma
 
51445
 
 
51446
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51447
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51448
#include "CExprResolveH.ah"
 
51449
#endif
 
51450
namespace Puma {
 
51451
 
 
51452
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44094
51453
class CT_SizeofExpr : public CT_Expression {
44095
 
#line 44096 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51454
#line 51455 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51455
  friend class ::CCExprResolve;
 
51456
  friend class ::CExprResolve;
44096
51457
  friend class ::WinIfExists;
44097
51458
  friend class ::WinImportHandler;
44098
51459
  friend class ::WinMacros;
44099
 
  friend class ::CMatchSyntax;
44100
 
  friend class ::ExtGnu;
 
51460
  friend class ::WinAsm;
 
51461
  friend class ::WinDeclSpecs;
 
51462
  friend class ::WinMemberExplSpec;
 
51463
  friend class ::WinTypeKeywords;
 
51464
  friend class ::WinFriend;
44101
51465
  friend class ::ExtAC;
44102
51466
  friend class ::ExtACBuilderCoupling;
44103
51467
  friend class ::ExtACSyntaxCoupling;
44104
51468
  friend class ::ExtACTree;
44105
51469
  friend class ::ExtACKeywords;
44106
 
  friend class ::WinAsm;
44107
 
  friend class ::WinDeclSpecs;
44108
 
  friend class ::WinMemberExplSpec;
44109
 
  friend class ::WinTypeKeywords;
 
51470
  friend class ::ExtGnu;
44110
51471
  friend class ::PragmaOnceUnitState;
44111
51472
  friend class ::PragmaOnce;
44112
 
  friend class ::CCExprResolve;
44113
 
  friend class ::CExprResolve;
 
51473
  friend class ::CMatchSyntax;
44114
51474
 
44115
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51475
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44116
51476
 
44117
51477
  CTree *sons[5]; // key, open, type, close, expr
44118
51478
 
44119
51479
public:
 
51480
  /** Constructor.
 
51481
   *  \param k The 'sizeof' keyword.
 
51482
   *  \param o Left parenthesis around the type name.
 
51483
   *  \param t The type from which to get the size.
 
51484
   *  \param c Right parenthesis around the type name. */
44120
51485
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
44121
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
51486
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
51487
    AddSon (sons[3], c); AddSon (sons[4], 0);
44122
51488
  }
 
51489
  /** Constructor.
 
51490
   *  \param k The 'sizeof' keyword.
 
51491
   *  \param e The expression from which to get the size. */
44123
51492
  CT_SizeofExpr (CTree *k, CTree *e) {
44124
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
51493
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
51494
    AddSon (sons[3], 0); AddSon (sons[4], e);
44125
51495
  }
 
51496
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44126
51497
  static const char *NodeId ();
 
51498
  /** Get the name of the node. Can be compared with NodeId(). */
44127
51499
  const char *NodeName () const { return NodeId (); }
 
51500
  /** Get the number of sons. */
44128
51501
  int Sons () const { return CTree::Sons (sons, 5); }
 
51502
  /** Get the n-th son.
 
51503
   *  \param n The index of the son.
 
51504
   *  \return The n-th son or NULL. */
44129
51505
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
51506
  /** Replace a son.
 
51507
   *  \param old_son The son to replace.
 
51508
   *  \param new_son The new son. */
44130
51509
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44131
51510
    CTree::ReplaceSon (sons, 5, old_son, new_son);
44132
51511
  }
 
51512
  /** Get the expression. */
44133
51513
  CTree *Expr () const { return sons[4]; }
 
51514
  /** Get the type name. */
44134
51515
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
44135
51516
   private:
44136
51517
  typedef CT_SizeofExpr CCExprResolveExpr;
44137
51518
 
44138
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51519
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
44139
51520
 public :
44140
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51521
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
44141
51522
  typedef CT_SizeofExpr CExprResolveExpr;
44142
51523
 
44143
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51524
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
44144
51525
 public :
44145
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
44146
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51526
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51527
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44147
51528
};
44148
51529
 
 
51530
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
51531
 *  Tree node representing an index designator, i.e. [1]. */
44149
51532
 
44150
 
#line 44151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51533
#line 51534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44151
51534
} // closed Puma
 
51535
class CCExprResolve;
 
51536
class CExprResolve;
44152
51537
class WinIfExists;
44153
51538
class WinImportHandler;
44154
51539
class WinMacros;
44155
 
class CMatchSyntax;
44156
 
class ExtGnu;
 
51540
class WinAsm;
 
51541
class WinDeclSpecs;
 
51542
class WinMemberExplSpec;
 
51543
class WinTypeKeywords;
 
51544
class WinFriend;
44157
51545
class ExtAC;
44158
51546
class ExtACBuilderCoupling;
44159
51547
class ExtACSyntaxCoupling;
44160
51548
class ExtACTree;
44161
51549
class ExtACKeywords;
44162
 
class WinAsm;
44163
 
class WinDeclSpecs;
44164
 
class WinMemberExplSpec;
44165
 
class WinTypeKeywords;
 
51550
class ExtGnu;
44166
51551
class PragmaOnceUnitState;
44167
51552
class PragmaOnce;
44168
 
class CCExprResolve;
44169
 
class CExprResolve;
44170
 
namespace Puma {
44171
 
 
44172
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51553
class CMatchSyntax;
 
51554
namespace Puma {
 
51555
 
 
51556
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51557
 
 
51558
#line 51559 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51559
} // closed Puma
 
51560
 
 
51561
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51562
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51563
#include "CCExprResolveH.ah"
 
51564
#endif
 
51565
namespace Puma {
 
51566
 
 
51567
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51568
 
 
51569
#line 51570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51570
} // closed Puma
 
51571
 
 
51572
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51573
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51574
#include "CExprResolveH.ah"
 
51575
#endif
 
51576
namespace Puma {
 
51577
 
 
51578
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44173
51579
class CT_IndexDesignator : public CT_Expression {
44174
 
#line 44175 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51580
#line 51581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51581
  friend class ::CCExprResolve;
 
51582
  friend class ::CExprResolve;
44175
51583
  friend class ::WinIfExists;
44176
51584
  friend class ::WinImportHandler;
44177
51585
  friend class ::WinMacros;
44178
 
  friend class ::CMatchSyntax;
44179
 
  friend class ::ExtGnu;
 
51586
  friend class ::WinAsm;
 
51587
  friend class ::WinDeclSpecs;
 
51588
  friend class ::WinMemberExplSpec;
 
51589
  friend class ::WinTypeKeywords;
 
51590
  friend class ::WinFriend;
44180
51591
  friend class ::ExtAC;
44181
51592
  friend class ::ExtACBuilderCoupling;
44182
51593
  friend class ::ExtACSyntaxCoupling;
44183
51594
  friend class ::ExtACTree;
44184
51595
  friend class ::ExtACKeywords;
44185
 
  friend class ::WinAsm;
44186
 
  friend class ::WinDeclSpecs;
44187
 
  friend class ::WinMemberExplSpec;
44188
 
  friend class ::WinTypeKeywords;
 
51596
  friend class ::ExtGnu;
44189
51597
  friend class ::PragmaOnceUnitState;
44190
51598
  friend class ::PragmaOnce;
44191
 
  friend class ::CCExprResolve;
44192
 
  friend class ::CExprResolve;
 
51599
  friend class ::CMatchSyntax;
44193
51600
 
44194
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51601
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44195
51602
 
44196
51603
  CTree *sons[3]; // open, index, close
44197
51604
 
44198
51605
public:
 
51606
  /** Constructor.
 
51607
   *  \param o Left bracket of the index designator.
 
51608
   *  \param i The index expression.
 
51609
   *  \param c Right bracket of the index designator. */
44199
51610
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
44200
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
51611
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
44201
51612
  }
 
51613
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44202
51614
  static const char *NodeId ();
 
51615
  /** Get the name of the node. Can be compared with NodeId(). */
44203
51616
  const char *NodeName () const { return NodeId (); }
 
51617
  /** Get the number of sons. */
44204
51618
  int Sons () const { return 3; }
 
51619
  /** Get the n-th son.
 
51620
   *  \param n The index of the son.
 
51621
   *  \return The n-th son or NULL. */
44205
51622
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
51623
  /** Replace a son.
 
51624
   *  \param old_son The son to replace.
 
51625
   *  \param new_son The new son. */
44206
51626
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44207
51627
    CTree::ReplaceSon (sons, 3, old_son, new_son);
44208
51628
  }
44209
51629
   private:
44210
51630
  typedef CT_IndexDesignator CCExprResolveExpr;
44211
51631
 
44212
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51632
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
44213
51633
 public :
44214
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51634
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
44215
51635
  typedef CT_IndexDesignator CExprResolveExpr;
44216
51636
 
44217
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51637
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
44218
51638
 public :
44219
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
44220
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51639
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51640
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44221
51641
};
44222
51642
 
 
51643
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
51644
 *  Tree node representing a member designator, e.g. .a. */
44223
51645
 
44224
 
#line 44225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51646
#line 51647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44225
51647
} // closed Puma
 
51648
class CCExprResolve;
 
51649
class CExprResolve;
44226
51650
class WinIfExists;
44227
51651
class WinImportHandler;
44228
51652
class WinMacros;
44229
 
class CMatchSyntax;
44230
 
class ExtGnu;
 
51653
class WinAsm;
 
51654
class WinDeclSpecs;
 
51655
class WinMemberExplSpec;
 
51656
class WinTypeKeywords;
 
51657
class WinFriend;
44231
51658
class ExtAC;
44232
51659
class ExtACBuilderCoupling;
44233
51660
class ExtACSyntaxCoupling;
44234
51661
class ExtACTree;
44235
51662
class ExtACKeywords;
44236
 
class WinAsm;
44237
 
class WinDeclSpecs;
44238
 
class WinMemberExplSpec;
44239
 
class WinTypeKeywords;
 
51663
class ExtGnu;
44240
51664
class PragmaOnceUnitState;
44241
51665
class PragmaOnce;
44242
 
class CCExprResolve;
44243
 
class CExprResolve;
44244
 
namespace Puma {
44245
 
 
44246
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51666
class CMatchSyntax;
 
51667
namespace Puma {
 
51668
 
 
51669
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51670
 
 
51671
#line 51672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51672
} // closed Puma
 
51673
 
 
51674
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51675
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
51676
#include "CCExprResolveH.ah"
 
51677
#endif
 
51678
namespace Puma {
 
51679
 
 
51680
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51681
 
 
51682
#line 51683 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51683
} // closed Puma
 
51684
 
 
51685
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51686
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
51687
#include "CExprResolveH.ah"
 
51688
#endif
 
51689
namespace Puma {
 
51690
 
 
51691
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44247
51692
class CT_MembDesignator : public CT_Expression {
44248
 
#line 44249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51693
#line 51694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51694
  friend class ::CCExprResolve;
 
51695
  friend class ::CExprResolve;
44249
51696
  friend class ::WinIfExists;
44250
51697
  friend class ::WinImportHandler;
44251
51698
  friend class ::WinMacros;
44252
 
  friend class ::CMatchSyntax;
44253
 
  friend class ::ExtGnu;
 
51699
  friend class ::WinAsm;
 
51700
  friend class ::WinDeclSpecs;
 
51701
  friend class ::WinMemberExplSpec;
 
51702
  friend class ::WinTypeKeywords;
 
51703
  friend class ::WinFriend;
44254
51704
  friend class ::ExtAC;
44255
51705
  friend class ::ExtACBuilderCoupling;
44256
51706
  friend class ::ExtACSyntaxCoupling;
44257
51707
  friend class ::ExtACTree;
44258
51708
  friend class ::ExtACKeywords;
44259
 
  friend class ::WinAsm;
44260
 
  friend class ::WinDeclSpecs;
44261
 
  friend class ::WinMemberExplSpec;
44262
 
  friend class ::WinTypeKeywords;
 
51709
  friend class ::ExtGnu;
44263
51710
  friend class ::PragmaOnceUnitState;
44264
51711
  friend class ::PragmaOnce;
44265
 
  friend class ::CCExprResolve;
44266
 
  friend class ::CExprResolve;
 
51712
  friend class ::CMatchSyntax;
44267
51713
 
44268
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51714
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44269
51715
 
44270
51716
  CTree *sons[2]; // dot, member
44271
51717
 
44272
51718
public:
44273
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
51719
  /** Constructor.
 
51720
   *  \param d The dot before the member name.
 
51721
   *  \param m The member name. */
 
51722
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
51723
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44274
51724
  static const char *NodeId ();
 
51725
  /** Get the name of the node. Can be compared with NodeId(). */
44275
51726
  const char *NodeName () const { return NodeId (); }
 
51727
  /** Get the number of sons. */
44276
51728
  int Sons () const { return 2; }
 
51729
  /** Get the n-th son.
 
51730
   *  \param n The index of the son.
 
51731
   *  \return The n-th son or NULL. */
44277
51732
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
51733
  /** Replace a son.
 
51734
   *  \param old_son The son to replace.
 
51735
   *  \param new_son The new son. */
44278
51736
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44279
51737
    CTree::ReplaceSon (sons, 2, old_son, new_son);
44280
51738
  }
44281
51739
   private:
44282
51740
  typedef CT_MembDesignator CCExprResolveExpr;
44283
51741
 
44284
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
51742
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
44285
51743
 public :
44286
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
51744
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
44287
51745
  typedef CT_MembDesignator CExprResolveExpr;
44288
51746
 
44289
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
51747
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
44290
51748
 public :
44291
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
44292
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51749
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
51750
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44293
51751
};
44294
51752
 
 
51753
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
51754
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
44295
51755
 
44296
 
#line 44297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51756
#line 51757 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44297
51757
} // closed Puma
 
51758
class CCExprResolve;
 
51759
class CExprResolve;
44298
51760
class WinIfExists;
44299
51761
class WinImportHandler;
44300
51762
class WinMacros;
44301
 
class CMatchSyntax;
44302
 
class ExtGnu;
 
51763
class WinAsm;
 
51764
class WinDeclSpecs;
 
51765
class WinMemberExplSpec;
 
51766
class WinTypeKeywords;
 
51767
class WinFriend;
44303
51768
class ExtAC;
44304
51769
class ExtACBuilderCoupling;
44305
51770
class ExtACSyntaxCoupling;
44306
51771
class ExtACTree;
44307
51772
class ExtACKeywords;
44308
 
class WinAsm;
44309
 
class WinDeclSpecs;
44310
 
class WinMemberExplSpec;
44311
 
class WinTypeKeywords;
 
51773
class ExtGnu;
44312
51774
class PragmaOnceUnitState;
44313
51775
class PragmaOnce;
44314
 
class CCExprResolve;
44315
 
class CExprResolve;
 
51776
class CMatchSyntax;
44316
51777
namespace Puma {
44317
51778
 
44318
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51779
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44319
51780
class CT_DesignatorSeq : public CT_List, public CSemValue {
44320
 
#line 44321 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51781
#line 51782 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51782
  friend class ::CCExprResolve;
 
51783
  friend class ::CExprResolve;
44321
51784
  friend class ::WinIfExists;
44322
51785
  friend class ::WinImportHandler;
44323
51786
  friend class ::WinMacros;
44324
 
  friend class ::CMatchSyntax;
44325
 
  friend class ::ExtGnu;
 
51787
  friend class ::WinAsm;
 
51788
  friend class ::WinDeclSpecs;
 
51789
  friend class ::WinMemberExplSpec;
 
51790
  friend class ::WinTypeKeywords;
 
51791
  friend class ::WinFriend;
44326
51792
  friend class ::ExtAC;
44327
51793
  friend class ::ExtACBuilderCoupling;
44328
51794
  friend class ::ExtACSyntaxCoupling;
44329
51795
  friend class ::ExtACTree;
44330
51796
  friend class ::ExtACKeywords;
44331
 
  friend class ::WinAsm;
44332
 
  friend class ::WinDeclSpecs;
44333
 
  friend class ::WinMemberExplSpec;
44334
 
  friend class ::WinTypeKeywords;
 
51797
  friend class ::ExtGnu;
44335
51798
  friend class ::PragmaOnceUnitState;
44336
51799
  friend class ::PragmaOnce;
44337
 
  friend class ::CCExprResolve;
44338
 
  friend class ::CExprResolve;
 
51800
  friend class ::CMatchSyntax;
44339
51801
 
44340
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51802
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44341
51803
 
44342
51804
public:
 
51805
  /** Constructor.
 
51806
   *  \param size Initial number of designators. */
44343
51807
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
51808
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44344
51809
  static const char *NodeId ();
 
51810
  /** Get the name of the node. Can be compared with NodeId(). */
44345
51811
  const char *NodeName () const { return NodeId (); }
44346
51812
 
 
51813
  /** Get the type of the entity to initialize. */
44347
51814
  CTypeInfo *Type () const { return type; }
 
51815
  /** Get the value of the entity to initialize. */
44348
51816
  CExprValue *Value () const { return value; }
 
51817
  /** Get the semantic value object. */
44349
51818
  CSemValue *SemValue () const { return (CSemValue*)this; }
44350
51819
};
44351
51820
 
44355
51824
/*                                                                           */
44356
51825
/*****************************************************************************/
44357
51826
 
 
51827
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
51828
 *  Base class for all tree nodes representing declaration specifiers. */
44358
51829
 
44359
 
#line 44360 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51830
#line 51831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44360
51831
} // closed Puma
 
51832
class CCExprResolve;
 
51833
class CExprResolve;
44361
51834
class WinIfExists;
44362
51835
class WinImportHandler;
44363
51836
class WinMacros;
44364
 
class CMatchSyntax;
44365
 
class ExtGnu;
 
51837
class WinAsm;
 
51838
class WinDeclSpecs;
 
51839
class WinMemberExplSpec;
 
51840
class WinTypeKeywords;
 
51841
class WinFriend;
44366
51842
class ExtAC;
44367
51843
class ExtACBuilderCoupling;
44368
51844
class ExtACSyntaxCoupling;
44369
51845
class ExtACTree;
44370
51846
class ExtACKeywords;
44371
 
class WinAsm;
44372
 
class WinDeclSpecs;
44373
 
class WinMemberExplSpec;
44374
 
class WinTypeKeywords;
 
51847
class ExtGnu;
44375
51848
class PragmaOnceUnitState;
44376
51849
class PragmaOnce;
44377
 
class CCExprResolve;
44378
 
class CExprResolve;
 
51850
class CMatchSyntax;
44379
51851
namespace Puma {
44380
51852
 
44381
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51853
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44382
51854
class CT_DeclSpec : public CTree {
44383
 
#line 44384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51855
#line 51856 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51856
  friend class ::CCExprResolve;
 
51857
  friend class ::CExprResolve;
44384
51858
  friend class ::WinIfExists;
44385
51859
  friend class ::WinImportHandler;
44386
51860
  friend class ::WinMacros;
44387
 
  friend class ::CMatchSyntax;
44388
 
  friend class ::ExtGnu;
 
51861
  friend class ::WinAsm;
 
51862
  friend class ::WinDeclSpecs;
 
51863
  friend class ::WinMemberExplSpec;
 
51864
  friend class ::WinTypeKeywords;
 
51865
  friend class ::WinFriend;
44389
51866
  friend class ::ExtAC;
44390
51867
  friend class ::ExtACBuilderCoupling;
44391
51868
  friend class ::ExtACSyntaxCoupling;
44392
51869
  friend class ::ExtACTree;
44393
51870
  friend class ::ExtACKeywords;
44394
 
  friend class ::WinAsm;
44395
 
  friend class ::WinDeclSpecs;
44396
 
  friend class ::WinMemberExplSpec;
44397
 
  friend class ::WinTypeKeywords;
 
51871
  friend class ::ExtGnu;
44398
51872
  friend class ::PragmaOnceUnitState;
44399
51873
  friend class ::PragmaOnce;
44400
 
  friend class ::CCExprResolve;
44401
 
  friend class ::CExprResolve;
 
51874
  friend class ::CMatchSyntax;
44402
51875
 
44403
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51876
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44404
51877
 
44405
51878
protected:
 
51879
  /** Constructor. */
44406
51880
  CT_DeclSpec () {}
44407
51881
};
44408
51882
 
 
51883
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
51884
 *  Tree node representing a primitive declaration specifier. */
44409
51885
 
44410
 
#line 44411 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51886
#line 51887 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44411
51887
} // closed Puma
 
51888
class CCExprResolve;
 
51889
class CExprResolve;
44412
51890
class WinIfExists;
44413
51891
class WinImportHandler;
44414
51892
class WinMacros;
44415
 
class CMatchSyntax;
44416
 
class ExtGnu;
 
51893
class WinAsm;
 
51894
class WinDeclSpecs;
 
51895
class WinMemberExplSpec;
 
51896
class WinTypeKeywords;
 
51897
class WinFriend;
44417
51898
class ExtAC;
44418
51899
class ExtACBuilderCoupling;
44419
51900
class ExtACSyntaxCoupling;
44420
51901
class ExtACTree;
44421
51902
class ExtACKeywords;
44422
 
class WinAsm;
44423
 
class WinDeclSpecs;
44424
 
class WinMemberExplSpec;
44425
 
class WinTypeKeywords;
 
51903
class ExtGnu;
44426
51904
class PragmaOnceUnitState;
44427
51905
class PragmaOnce;
44428
 
class CCExprResolve;
44429
 
class CExprResolve;
 
51906
class CMatchSyntax;
44430
51907
namespace Puma {
44431
51908
 
44432
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51909
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44433
51910
class CT_PrimDeclSpec : public CT_DeclSpec {
44434
 
#line 44435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
51911
#line 51912 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
51912
  friend class ::CCExprResolve;
 
51913
  friend class ::CExprResolve;
44435
51914
  friend class ::WinIfExists;
44436
51915
  friend class ::WinImportHandler;
44437
51916
  friend class ::WinMacros;
44438
 
  friend class ::CMatchSyntax;
44439
 
  friend class ::ExtGnu;
 
51917
  friend class ::WinAsm;
 
51918
  friend class ::WinDeclSpecs;
 
51919
  friend class ::WinMemberExplSpec;
 
51920
  friend class ::WinTypeKeywords;
 
51921
  friend class ::WinFriend;
44440
51922
  friend class ::ExtAC;
44441
51923
  friend class ::ExtACBuilderCoupling;
44442
51924
  friend class ::ExtACSyntaxCoupling;
44443
51925
  friend class ::ExtACTree;
44444
51926
  friend class ::ExtACKeywords;
44445
 
  friend class ::WinAsm;
44446
 
  friend class ::WinDeclSpecs;
44447
 
  friend class ::WinMemberExplSpec;
44448
 
  friend class ::WinTypeKeywords;
 
51927
  friend class ::ExtGnu;
44449
51928
  friend class ::PragmaOnceUnitState;
44450
51929
  friend class ::PragmaOnce;
44451
 
  friend class ::CCExprResolve;
44452
 
  friend class ::CExprResolve;
 
51930
  friend class ::CMatchSyntax;
44453
51931
 
44454
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
51932
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44455
51933
 
44456
51934
public:
44457
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
44458
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
44459
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
44460
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
44461
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
44462
 
              // AspectC++ specific type specifier
44463
 
              PDS_UNKNOWN_T,
44464
 
              // Win specific declaration specifiers
44465
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
44466
 
              PDS_UNKNOWN, PDS_NUM };
 
51935
  /** Declaration specifier types. */
 
51936
  enum Type { 
 
51937
    PDS_FRIEND,    /** friend */
 
51938
    PDS_TYPEDEF,   /** typedef */
 
51939
    PDS_AUTO,      /** auto */
 
51940
    PDS_REGISTER,  /** register */
 
51941
    PDS_STATIC,    /** static */
 
51942
    PDS_EXTERN,    /** extern */
 
51943
    PDS_MUTABLE,   /** mutable */
 
51944
    PDS_INLINE,    /** inline */
 
51945
    PDS_VIRTUAL,   /** virtual */
 
51946
    PDS_EXPLICIT,  /** explicit */
 
51947
    PDS_CONST,     /** const */
 
51948
    PDS_VOLATILE,  /** volatile */
 
51949
    PDS_RESTRICT,  /** restrict */
 
51950
    PDS_CHAR,      /** char */
 
51951
    PDS_WCHAR_T,   /** wchar_t */
 
51952
    PDS_BOOL,      /** bool */
 
51953
    PDS_SHORT,     /** short */
 
51954
    PDS_INT,       /** int */
 
51955
    PDS_LONG,      /** long */
 
51956
    PDS_SIGNED,    /** signed */
 
51957
    PDS_UNSIGNED,  /** unsigned */
 
51958
    PDS_FLOAT,     /** float */
 
51959
    PDS_DOUBLE,    /** double */
 
51960
    PDS_VOID,      /** void */
 
51961
    // AspectC++ specific type specifier
 
51962
    PDS_UNKNOWN_T, /** unknown_t */
 
51963
    // Win specific declaration specifiers
 
51964
    PDS_CDECL,     /** __cdecl */
 
51965
    PDS_STDCALL,   /** __stdcall */
 
51966
    PDS_FASTCALL,  /** __fastcall */
 
51967
    PDS_INT64,     /** __int64 */
 
51968
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
51969
    PDS_NUM        /** Number of declaration specifier types. */
 
51970
  };
44467
51971
 
44468
51972
private:
44469
51973
  Type _type;
44470
 
  CT_Token *_token;
 
51974
  CTree *_token; // has to be a CT_Token
44471
51975
 
44472
51976
  void determine_type ();
44473
51977
 
44474
51978
public:
44475
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
51979
  /** Constructor.
 
51980
   *  \param t The token containing the declaration specifier. */
 
51981
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
51982
  /** Constructor.
 
51983
   *  \param t The declaration specifier type. */
44476
51984
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
51985
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44477
51986
  static const char *NodeId ();
 
51987
  /** Get the name of the node. Can be compared with NodeId(). */
44478
51988
  const char *NodeName () const { return NodeId (); }
 
51989
  /** Get the number of sons. */
44479
51990
  int Sons () const { return _token ? 1 : 0; }
 
51991
  /** Get the n-th son.
 
51992
   *  \param n The index of the son.
 
51993
   *  \return The n-th son or NULL. */
44480
51994
  CTree *Son (int n) const 
44481
51995
   { return (n == 0) ? _token : (CTree*)0; }
 
51996
  /** Get the textual representation of the declaration specifier.
 
51997
   *  \return The string representation or " ". */
44482
51998
  const char *SpecText () const 
44483
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
51999
   { return _token ? _token->token ()->text () : " "; }
 
52000
  /** Get the declaration specifier type. */
44484
52001
  Type SpecType () const { return _type; }
 
52002
  /** Number of declaration specifier types. */
44485
52003
  static const int NumTypes = PDS_NUM;
 
52004
  /** Replace a son.
 
52005
   *  \param old_son The son to replace.
 
52006
   *  \param new_son The new son. */
 
52007
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
52008
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
52009
    determine_type ();
 
52010
  }
44486
52011
};
44487
52012
 
 
52013
/** \class CT_NamedType CTree.h Puma/CTree.h
 
52014
 *  Tree node representing a named type, e.g. (int*)a. 
 
52015
 *  where int* is a type with a generated name. */
44488
52016
 
44489
 
#line 44490 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52017
#line 52018 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44490
52018
} // closed Puma
 
52019
class CCExprResolve;
 
52020
class CExprResolve;
44491
52021
class WinIfExists;
44492
52022
class WinImportHandler;
44493
52023
class WinMacros;
44494
 
class CMatchSyntax;
44495
 
class ExtGnu;
 
52024
class WinAsm;
 
52025
class WinDeclSpecs;
 
52026
class WinMemberExplSpec;
 
52027
class WinTypeKeywords;
 
52028
class WinFriend;
44496
52029
class ExtAC;
44497
52030
class ExtACBuilderCoupling;
44498
52031
class ExtACSyntaxCoupling;
44499
52032
class ExtACTree;
44500
52033
class ExtACKeywords;
44501
 
class WinAsm;
44502
 
class WinDeclSpecs;
44503
 
class WinMemberExplSpec;
44504
 
class WinTypeKeywords;
 
52034
class ExtGnu;
44505
52035
class PragmaOnceUnitState;
44506
52036
class PragmaOnce;
44507
 
class CCExprResolve;
44508
 
class CExprResolve;
 
52037
class CMatchSyntax;
44509
52038
namespace Puma {
44510
52039
 
44511
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52040
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44512
52041
class CT_NamedType : public CT_DeclSpec, public CSemObject {
44513
 
#line 44514 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52042
#line 52043 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
52043
  friend class ::CCExprResolve;
 
52044
  friend class ::CExprResolve;
44514
52045
  friend class ::WinIfExists;
44515
52046
  friend class ::WinImportHandler;
44516
52047
  friend class ::WinMacros;
44517
 
  friend class ::CMatchSyntax;
44518
 
  friend class ::ExtGnu;
 
52048
  friend class ::WinAsm;
 
52049
  friend class ::WinDeclSpecs;
 
52050
  friend class ::WinMemberExplSpec;
 
52051
  friend class ::WinTypeKeywords;
 
52052
  friend class ::WinFriend;
44519
52053
  friend class ::ExtAC;
44520
52054
  friend class ::ExtACBuilderCoupling;
44521
52055
  friend class ::ExtACSyntaxCoupling;
44522
52056
  friend class ::ExtACTree;
44523
52057
  friend class ::ExtACKeywords;
44524
 
  friend class ::WinAsm;
44525
 
  friend class ::WinDeclSpecs;
44526
 
  friend class ::WinMemberExplSpec;
44527
 
  friend class ::WinTypeKeywords;
 
52058
  friend class ::ExtGnu;
44528
52059
  friend class ::PragmaOnceUnitState;
44529
52060
  friend class ::PragmaOnce;
44530
 
  friend class ::CCExprResolve;
44531
 
  friend class ::CExprResolve;
 
52061
  friend class ::CMatchSyntax;
44532
52062
 
44533
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52063
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44534
52064
 
44535
52065
  CTree *sons[2]; // declspecs, declarator
44536
52066
 
44537
52067
public:
44538
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
52068
  /** Constructor.
 
52069
   *  \param dss The declaration specifier sequence of the type.
 
52070
   *  \param d The type declarator. */
 
52071
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
52072
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44539
52073
  static const char *NodeId ();
 
52074
  /** Get the name of the node. Can be compared with NodeId(). */
44540
52075
  const char *NodeName () const { return NodeId (); }
 
52076
  /** Get the number of sons. */
44541
52077
  int Sons () const { return CTree::Sons (sons, 2); }
 
52078
  /** Get the n-th son.
 
52079
   *  \param n The index of the son.
 
52080
   *  \return The n-th son or NULL. */
44542
52081
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
52082
  /** Get the declarator. */
44543
52083
  CTree *Declarator () const { return sons[1]; }
 
52084
  /** Replace a son.
 
52085
   *  \param old_son The son to replace.
 
52086
   *  \param new_son The new son. */
44544
52087
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44545
52088
    CTree::ReplaceSon (sons, 2, old_son, new_son);
44546
52089
  }
 
52090
  /** Get the semantic information object. */
44547
52091
  CSemObject *SemObject () const { return (CSemObject*)this; }
44548
52092
};
44549
52093
      
 
52094
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
52095
 *  Tree node representing a class specifier, e.g. class X. */
44550
52096
 
44551
 
#line 44552 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52097
#line 52098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44552
52098
} // closed Puma
 
52099
class CCExprResolve;
 
52100
class CExprResolve;
44553
52101
class WinIfExists;
44554
52102
class WinImportHandler;
44555
52103
class WinMacros;
44556
 
class CMatchSyntax;
44557
 
class ExtGnu;
 
52104
class WinAsm;
 
52105
class WinDeclSpecs;
 
52106
class WinMemberExplSpec;
 
52107
class WinTypeKeywords;
 
52108
class WinFriend;
44558
52109
class ExtAC;
44559
52110
class ExtACBuilderCoupling;
44560
52111
class ExtACSyntaxCoupling;
44561
52112
class ExtACTree;
44562
52113
class ExtACKeywords;
44563
 
class WinAsm;
44564
 
class WinDeclSpecs;
44565
 
class WinMemberExplSpec;
44566
 
class WinTypeKeywords;
 
52114
class ExtGnu;
44567
52115
class PragmaOnceUnitState;
44568
52116
class PragmaOnce;
44569
 
class CCExprResolve;
44570
 
class CExprResolve;
 
52117
class CMatchSyntax;
44571
52118
namespace Puma {
44572
52119
 
44573
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52120
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44574
52121
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
44575
 
#line 44576 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52122
#line 52123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
52123
  friend class ::CCExprResolve;
 
52124
  friend class ::CExprResolve;
44576
52125
  friend class ::WinIfExists;
44577
52126
  friend class ::WinImportHandler;
44578
52127
  friend class ::WinMacros;
44579
 
  friend class ::CMatchSyntax;
44580
 
  friend class ::ExtGnu;
 
52128
  friend class ::WinAsm;
 
52129
  friend class ::WinDeclSpecs;
 
52130
  friend class ::WinMemberExplSpec;
 
52131
  friend class ::WinTypeKeywords;
 
52132
  friend class ::WinFriend;
44581
52133
  friend class ::ExtAC;
44582
52134
  friend class ::ExtACBuilderCoupling;
44583
52135
  friend class ::ExtACSyntaxCoupling;
44584
52136
  friend class ::ExtACTree;
44585
52137
  friend class ::ExtACKeywords;
44586
 
  friend class ::WinAsm;
44587
 
  friend class ::WinDeclSpecs;
44588
 
  friend class ::WinMemberExplSpec;
44589
 
  friend class ::WinTypeKeywords;
 
52138
  friend class ::ExtGnu;
44590
52139
  friend class ::PragmaOnceUnitState;
44591
52140
  friend class ::PragmaOnce;
44592
 
  friend class ::CCExprResolve;
44593
 
  friend class ::CExprResolve;
 
52141
  friend class ::CMatchSyntax;
44594
52142
 
44595
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52143
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44596
52144
 
44597
52145
  CTree *sons[2]; // key, name
44598
52146
  
44599
52147
public:
44600
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
52148
  /** Constructor.
 
52149
   *  \param k The 'class' or 'struct' keyword.
 
52150
   *  \param n The class name. */
 
52151
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
52152
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44601
52153
  static const char *NodeId ();
 
52154
  /** Get the name of the node. Can be compared with NodeId(). */
44602
52155
  const char *NodeName () const { return NodeId (); }
 
52156
  /** Get the number of sons. */
44603
52157
  int Sons () const { return 2; }
 
52158
  /** Get the n-th son.
 
52159
   *  \param n The index of the son.
 
52160
   *  \return The n-th son or NULL. */
44604
52161
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
52162
  /** Get the class name. */
44605
52163
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
52164
  /** Get the semantic information object. */
44606
52165
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
52166
  /** Replace a son.
 
52167
   *  \param old_son The son to replace.
 
52168
   *  \param new_son The new son. */
44607
52169
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44608
52170
    CTree::ReplaceSon (sons, 2, old_son, new_son);
44609
52171
  }
44610
52172
};
44611
52173
 
 
52174
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
52175
 *  Tree node representing a union specifier, e.g. union X. */
44612
52176
 
44613
 
#line 44614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52177
#line 52178 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44614
52178
} // closed Puma
 
52179
class CCExprResolve;
 
52180
class CExprResolve;
44615
52181
class WinIfExists;
44616
52182
class WinImportHandler;
44617
52183
class WinMacros;
44618
 
class CMatchSyntax;
44619
 
class ExtGnu;
 
52184
class WinAsm;
 
52185
class WinDeclSpecs;
 
52186
class WinMemberExplSpec;
 
52187
class WinTypeKeywords;
 
52188
class WinFriend;
44620
52189
class ExtAC;
44621
52190
class ExtACBuilderCoupling;
44622
52191
class ExtACSyntaxCoupling;
44623
52192
class ExtACTree;
44624
52193
class ExtACKeywords;
44625
 
class WinAsm;
44626
 
class WinDeclSpecs;
44627
 
class WinMemberExplSpec;
44628
 
class WinTypeKeywords;
 
52194
class ExtGnu;
44629
52195
class PragmaOnceUnitState;
44630
52196
class PragmaOnce;
44631
 
class CCExprResolve;
44632
 
class CExprResolve;
 
52197
class CMatchSyntax;
44633
52198
namespace Puma {
44634
52199
 
44635
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52200
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44636
52201
class CT_UnionSpec : public CT_ClassSpec {
44637
 
#line 44638 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52202
#line 52203 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
52203
  friend class ::CCExprResolve;
 
52204
  friend class ::CExprResolve;
44638
52205
  friend class ::WinIfExists;
44639
52206
  friend class ::WinImportHandler;
44640
52207
  friend class ::WinMacros;
44641
 
  friend class ::CMatchSyntax;
44642
 
  friend class ::ExtGnu;
 
52208
  friend class ::WinAsm;
 
52209
  friend class ::WinDeclSpecs;
 
52210
  friend class ::WinMemberExplSpec;
 
52211
  friend class ::WinTypeKeywords;
 
52212
  friend class ::WinFriend;
44643
52213
  friend class ::ExtAC;
44644
52214
  friend class ::ExtACBuilderCoupling;
44645
52215
  friend class ::ExtACSyntaxCoupling;
44646
52216
  friend class ::ExtACTree;
44647
52217
  friend class ::ExtACKeywords;
44648
 
  friend class ::WinAsm;
44649
 
  friend class ::WinDeclSpecs;
44650
 
  friend class ::WinMemberExplSpec;
44651
 
  friend class ::WinTypeKeywords;
 
52218
  friend class ::ExtGnu;
44652
52219
  friend class ::PragmaOnceUnitState;
44653
52220
  friend class ::PragmaOnce;
44654
 
  friend class ::CCExprResolve;
44655
 
  friend class ::CExprResolve;
 
52221
  friend class ::CMatchSyntax;
44656
52222
 
44657
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52223
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44658
52224
 
44659
52225
public:
 
52226
  /** Constructor.
 
52227
   *  \param k The 'union' keyword.
 
52228
   *  \param n The name of the union. */
44660
52229
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
52230
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44661
52231
  static const char *NodeId ();
 
52232
  /** Get the name of the node. Can be compared with NodeId(). */
44662
52233
  const char *NodeName () const { return NodeId (); }
44663
52234
};
44664
52235
 
 
52236
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
52237
 *  Tree node representing an enumeration specifier, e.g. enum X. */
44665
52238
 
44666
 
#line 44667 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52239
#line 52240 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44667
52240
} // closed Puma
 
52241
class CCExprResolve;
 
52242
class CExprResolve;
44668
52243
class WinIfExists;
44669
52244
class WinImportHandler;
44670
52245
class WinMacros;
44671
 
class CMatchSyntax;
44672
 
class ExtGnu;
 
52246
class WinAsm;
 
52247
class WinDeclSpecs;
 
52248
class WinMemberExplSpec;
 
52249
class WinTypeKeywords;
 
52250
class WinFriend;
44673
52251
class ExtAC;
44674
52252
class ExtACBuilderCoupling;
44675
52253
class ExtACSyntaxCoupling;
44676
52254
class ExtACTree;
44677
52255
class ExtACKeywords;
44678
 
class WinAsm;
44679
 
class WinDeclSpecs;
44680
 
class WinMemberExplSpec;
44681
 
class WinTypeKeywords;
 
52256
class ExtGnu;
44682
52257
class PragmaOnceUnitState;
44683
52258
class PragmaOnce;
44684
 
class CCExprResolve;
44685
 
class CExprResolve;
 
52259
class CMatchSyntax;
44686
52260
namespace Puma {
44687
52261
 
44688
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52262
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44689
52263
class CT_EnumSpec : public CT_ClassSpec {
44690
 
#line 44691 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52264
#line 52265 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
52265
  friend class ::CCExprResolve;
 
52266
  friend class ::CExprResolve;
44691
52267
  friend class ::WinIfExists;
44692
52268
  friend class ::WinImportHandler;
44693
52269
  friend class ::WinMacros;
44694
 
  friend class ::CMatchSyntax;
44695
 
  friend class ::ExtGnu;
 
52270
  friend class ::WinAsm;
 
52271
  friend class ::WinDeclSpecs;
 
52272
  friend class ::WinMemberExplSpec;
 
52273
  friend class ::WinTypeKeywords;
 
52274
  friend class ::WinFriend;
44696
52275
  friend class ::ExtAC;
44697
52276
  friend class ::ExtACBuilderCoupling;
44698
52277
  friend class ::ExtACSyntaxCoupling;
44699
52278
  friend class ::ExtACTree;
44700
52279
  friend class ::ExtACKeywords;
44701
 
  friend class ::WinAsm;
44702
 
  friend class ::WinDeclSpecs;
44703
 
  friend class ::WinMemberExplSpec;
44704
 
  friend class ::WinTypeKeywords;
 
52280
  friend class ::ExtGnu;
44705
52281
  friend class ::PragmaOnceUnitState;
44706
52282
  friend class ::PragmaOnce;
44707
 
  friend class ::CCExprResolve;
44708
 
  friend class ::CExprResolve;
 
52283
  friend class ::CMatchSyntax;
44709
52284
 
44710
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52285
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44711
52286
 
44712
52287
public:
 
52288
  /** Constructor.
 
52289
   *  \param k The 'enum' keyword. 
 
52290
   *  \param n The name of the enumeration. */
44713
52291
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
52292
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44714
52293
  static const char *NodeId ();
 
52294
  /** Get the name of the node. Can be compared with NodeId(). */
44715
52295
  const char *NodeName () const { return NodeId (); }
44716
52296
};
44717
52297
 
 
52298
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
52299
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
44718
52300
 
44719
 
#line 44720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52301
#line 52302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44720
52302
} // closed Puma
 
52303
class CCExprResolve;
 
52304
class CExprResolve;
44721
52305
class WinIfExists;
44722
52306
class WinImportHandler;
44723
52307
class WinMacros;
44724
 
class CMatchSyntax;
44725
 
class ExtGnu;
 
52308
class WinAsm;
 
52309
class WinDeclSpecs;
 
52310
class WinMemberExplSpec;
 
52311
class WinTypeKeywords;
 
52312
class WinFriend;
44726
52313
class ExtAC;
44727
52314
class ExtACBuilderCoupling;
44728
52315
class ExtACSyntaxCoupling;
44729
52316
class ExtACTree;
44730
52317
class ExtACKeywords;
44731
 
class WinAsm;
44732
 
class WinDeclSpecs;
44733
 
class WinMemberExplSpec;
44734
 
class WinTypeKeywords;
 
52318
class ExtGnu;
44735
52319
class PragmaOnceUnitState;
44736
52320
class PragmaOnce;
44737
 
class CCExprResolve;
44738
 
class CExprResolve;
 
52321
class CMatchSyntax;
44739
52322
namespace Puma {
44740
52323
 
44741
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52324
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44742
52325
class CT_ExceptionSpec : public CT_DeclSpec {
44743
 
#line 44744 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52326
#line 52327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
52327
  friend class ::CCExprResolve;
 
52328
  friend class ::CExprResolve;
44744
52329
  friend class ::WinIfExists;
44745
52330
  friend class ::WinImportHandler;
44746
52331
  friend class ::WinMacros;
44747
 
  friend class ::CMatchSyntax;
44748
 
  friend class ::ExtGnu;
 
52332
  friend class ::WinAsm;
 
52333
  friend class ::WinDeclSpecs;
 
52334
  friend class ::WinMemberExplSpec;
 
52335
  friend class ::WinTypeKeywords;
 
52336
  friend class ::WinFriend;
44749
52337
  friend class ::ExtAC;
44750
52338
  friend class ::ExtACBuilderCoupling;
44751
52339
  friend class ::ExtACSyntaxCoupling;
44752
52340
  friend class ::ExtACTree;
44753
52341
  friend class ::ExtACKeywords;
44754
 
  friend class ::WinAsm;
44755
 
  friend class ::WinDeclSpecs;
44756
 
  friend class ::WinMemberExplSpec;
44757
 
  friend class ::WinTypeKeywords;
 
52342
  friend class ::ExtGnu;
44758
52343
  friend class ::PragmaOnceUnitState;
44759
52344
  friend class ::PragmaOnce;
44760
 
  friend class ::CCExprResolve;
44761
 
  friend class ::CExprResolve;
 
52345
  friend class ::CMatchSyntax;
44762
52346
 
44763
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52347
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44764
52348
 
44765
52349
  CTree *sons[2]; // throw, type_id_list
44766
52350
  
44767
52351
public:
44768
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
52352
  /** Constructor.
 
52353
   *  \param k The 'throw' keyword.
 
52354
   *  \param l The type list for the exception type to throw. */
 
52355
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
52356
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44769
52357
  static const char *NodeId ();
 
52358
  /** Get the name of the node. Can be compared with NodeId(). */
44770
52359
  const char *NodeName () const { return NodeId (); }
 
52360
  /** Get the number of sons. */
44771
52361
  int Sons () const { return 2; }
 
52362
  /** Get the n-th son.
 
52363
   *  \param n The index of the son.
 
52364
   *  \return The n-th son or NULL. */
44772
52365
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
52366
  /** Get the exception type list. */
44773
52367
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
52368
  /** Replace a son.
 
52369
   *  \param old_son The son to replace.
 
52370
   *  \param new_son The new son. */
44774
52371
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44775
52372
    CTree::ReplaceSon (sons, 2, old_son, new_son);
44776
52373
  }
44782
52379
/*                                                                           */
44783
52380
/*****************************************************************************/
44784
52381
 
 
52382
/** \class CT_Decl CTree.h Puma/CTree.h
 
52383
 *  Base class for all tree nodes representing declarations. */
44785
52384
 
44786
 
#line 44787 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52385
#line 52386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44787
52386
} // closed Puma
 
52387
class CCExprResolve;
 
52388
class CExprResolve;
44788
52389
class WinIfExists;
44789
52390
class WinImportHandler;
44790
52391
class WinMacros;
44791
 
class CMatchSyntax;
44792
 
class ExtGnu;
 
52392
class WinAsm;
 
52393
class WinDeclSpecs;
 
52394
class WinMemberExplSpec;
 
52395
class WinTypeKeywords;
 
52396
class WinFriend;
44793
52397
class ExtAC;
44794
52398
class ExtACBuilderCoupling;
44795
52399
class ExtACSyntaxCoupling;
44796
52400
class ExtACTree;
44797
52401
class ExtACKeywords;
44798
 
class WinAsm;
44799
 
class WinDeclSpecs;
44800
 
class WinMemberExplSpec;
44801
 
class WinTypeKeywords;
 
52402
class ExtGnu;
44802
52403
class PragmaOnceUnitState;
44803
52404
class PragmaOnce;
44804
 
class CCExprResolve;
44805
 
class CExprResolve;
 
52405
class CMatchSyntax;
44806
52406
namespace Puma {
44807
52407
 
44808
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52408
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44809
52409
class CT_Decl : public CTree {
44810
 
#line 44811 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52410
#line 52411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
52411
  friend class ::CCExprResolve;
 
52412
  friend class ::CExprResolve;
44811
52413
  friend class ::WinIfExists;
44812
52414
  friend class ::WinImportHandler;
44813
52415
  friend class ::WinMacros;
44814
 
  friend class ::CMatchSyntax;
44815
 
  friend class ::ExtGnu;
 
52416
  friend class ::WinAsm;
 
52417
  friend class ::WinDeclSpecs;
 
52418
  friend class ::WinMemberExplSpec;
 
52419
  friend class ::WinTypeKeywords;
 
52420
  friend class ::WinFriend;
44816
52421
  friend class ::ExtAC;
44817
52422
  friend class ::ExtACBuilderCoupling;
44818
52423
  friend class ::ExtACSyntaxCoupling;
44819
52424
  friend class ::ExtACTree;
44820
52425
  friend class ::ExtACKeywords;
44821
 
  friend class ::WinAsm;
44822
 
  friend class ::WinDeclSpecs;
44823
 
  friend class ::WinMemberExplSpec;
44824
 
  friend class ::WinTypeKeywords;
 
52426
  friend class ::ExtGnu;
44825
52427
  friend class ::PragmaOnceUnitState;
44826
52428
  friend class ::PragmaOnce;
44827
 
  friend class ::CCExprResolve;
44828
 
  friend class ::CExprResolve;
 
52429
  friend class ::CMatchSyntax;
44829
52430
 
44830
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52431
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44831
52432
 
44832
52433
  CT_LinkageSpec *_linkage;
 
52434
  
44833
52435
protected:
 
52436
  /** Constructor. */
44834
52437
  CT_Decl () : _linkage (0) {}
 
52438
  
44835
52439
public:
 
52440
  /** Set the linkage of the declared entity.
 
52441
   *  \param l The linkage specifiers. */
44836
52442
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
52443
  /** Get the linkage specifiers. */
44837
52444
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
52445
  /** Get this. */
 
52446
  virtual CT_Decl *IsDeclaration () { return this; }
44838
52447
};
44839
52448
 
 
52449
/** \class CT_Program CTree.h Puma/CTree.h
 
52450
 *  Root node of C/C++ syntax tree. */
44840
52451
 
44841
 
#line 44842 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52452
#line 52453 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44842
52453
} // closed Puma
 
52454
class CCExprResolve;
 
52455
class CExprResolve;
44843
52456
class WinIfExists;
44844
52457
class WinImportHandler;
44845
52458
class WinMacros;
44846
 
class CMatchSyntax;
44847
 
class ExtGnu;
 
52459
class WinAsm;
 
52460
class WinDeclSpecs;
 
52461
class WinMemberExplSpec;
 
52462
class WinTypeKeywords;
 
52463
class WinFriend;
44848
52464
class ExtAC;
44849
52465
class ExtACBuilderCoupling;
44850
52466
class ExtACSyntaxCoupling;
44851
52467
class ExtACTree;
44852
52468
class ExtACKeywords;
44853
 
class WinAsm;
44854
 
class WinDeclSpecs;
44855
 
class WinMemberExplSpec;
44856
 
class WinTypeKeywords;
 
52469
class ExtGnu;
44857
52470
class PragmaOnceUnitState;
44858
52471
class PragmaOnce;
44859
 
class CCExprResolve;
44860
 
class CExprResolve;
 
52472
class CMatchSyntax;
44861
52473
namespace Puma {
44862
52474
 
44863
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52475
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44864
52476
class CT_Program : public CT_DeclList, public CSemScope {
44865
 
#line 44866 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52477
#line 52478 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
52478
  friend class ::CCExprResolve;
 
52479
  friend class ::CExprResolve;
44866
52480
  friend class ::WinIfExists;
44867
52481
  friend class ::WinImportHandler;
44868
52482
  friend class ::WinMacros;
44869
 
  friend class ::CMatchSyntax;
44870
 
  friend class ::ExtGnu;
 
52483
  friend class ::WinAsm;
 
52484
  friend class ::WinDeclSpecs;
 
52485
  friend class ::WinMemberExplSpec;
 
52486
  friend class ::WinTypeKeywords;
 
52487
  friend class ::WinFriend;
44871
52488
  friend class ::ExtAC;
44872
52489
  friend class ::ExtACBuilderCoupling;
44873
52490
  friend class ::ExtACSyntaxCoupling;
44874
52491
  friend class ::ExtACTree;
44875
52492
  friend class ::ExtACKeywords;
44876
 
  friend class ::WinAsm;
44877
 
  friend class ::WinDeclSpecs;
44878
 
  friend class ::WinMemberExplSpec;
44879
 
  friend class ::WinTypeKeywords;
 
52493
  friend class ::ExtGnu;
44880
52494
  friend class ::PragmaOnceUnitState;
44881
52495
  friend class ::PragmaOnce;
44882
 
  friend class ::CCExprResolve;
44883
 
  friend class ::CExprResolve;
 
52496
  friend class ::CMatchSyntax;
44884
52497
 
44885
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52498
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44886
52499
 
44887
52500
public:
 
52501
  /** Constructor.
 
52502
   *  \param size The initial number of declarations in the program.
 
52503
   *  \param incr The initial increment count. */
44888
52504
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
52505
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44889
52506
  static const char *NodeId ();
 
52507
  /** Get the name of the node. Can be compared with NodeId(). */
44890
52508
  const char *NodeName () const { return NodeId (); }
 
52509
  /** Get the semantic scope object. */
 
52510
  CSemScope *SemScope () const { return (CSemScope*)this; }
44891
52511
};
44892
52512
   
 
52513
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
52514
 *  Tree node representing an object declaration, e.g. int *i. */
44893
52515
 
44894
 
#line 44895 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52516
#line 52517 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44895
52517
} // closed Puma
 
52518
class CCExprResolve;
 
52519
class CExprResolve;
44896
52520
class WinIfExists;
44897
52521
class WinImportHandler;
44898
52522
class WinMacros;
44899
 
class CMatchSyntax;
44900
 
class ExtGnu;
 
52523
class WinAsm;
 
52524
class WinDeclSpecs;
 
52525
class WinMemberExplSpec;
 
52526
class WinTypeKeywords;
 
52527
class WinFriend;
44901
52528
class ExtAC;
44902
52529
class ExtACBuilderCoupling;
44903
52530
class ExtACSyntaxCoupling;
44904
52531
class ExtACTree;
44905
52532
class ExtACKeywords;
44906
 
class WinAsm;
44907
 
class WinDeclSpecs;
44908
 
class WinMemberExplSpec;
44909
 
class WinTypeKeywords;
 
52533
class ExtGnu;
44910
52534
class PragmaOnceUnitState;
44911
52535
class PragmaOnce;
44912
 
class CCExprResolve;
44913
 
class CExprResolve;
 
52536
class CMatchSyntax;
44914
52537
namespace Puma {
44915
52538
 
44916
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52539
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44917
52540
class CT_ObjDecl : public CT_Decl {
44918
 
#line 44919 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52541
#line 52542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
52542
  friend class ::CCExprResolve;
 
52543
  friend class ::CExprResolve;
44919
52544
  friend class ::WinIfExists;
44920
52545
  friend class ::WinImportHandler;
44921
52546
  friend class ::WinMacros;
44922
 
  friend class ::CMatchSyntax;
44923
 
  friend class ::ExtGnu;
 
52547
  friend class ::WinAsm;
 
52548
  friend class ::WinDeclSpecs;
 
52549
  friend class ::WinMemberExplSpec;
 
52550
  friend class ::WinTypeKeywords;
 
52551
  friend class ::WinFriend;
44924
52552
  friend class ::ExtAC;
44925
52553
  friend class ::ExtACBuilderCoupling;
44926
52554
  friend class ::ExtACSyntaxCoupling;
44927
52555
  friend class ::ExtACTree;
44928
52556
  friend class ::ExtACKeywords;
44929
 
  friend class ::WinAsm;
44930
 
  friend class ::WinDeclSpecs;
44931
 
  friend class ::WinMemberExplSpec;
44932
 
  friend class ::WinTypeKeywords;
 
52557
  friend class ::ExtGnu;
44933
52558
  friend class ::PragmaOnceUnitState;
44934
52559
  friend class ::PragmaOnce;
44935
 
  friend class ::CCExprResolve;
44936
 
  friend class ::CExprResolve;
 
52560
  friend class ::CMatchSyntax;
44937
52561
 
44938
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52562
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44939
52563
 
44940
52564
  CTree *sons[3]; // declspecs, declarators, colon
44941
52565
 
44942
52566
public:
 
52567
  /** Constructor.
 
52568
   *  \param dsl The declaration specifier sequence.
 
52569
   *  \param dl The declarator list.
 
52570
   *  \param c Optional colon. */
44943
52571
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
44944
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
52572
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
44945
52573
  }
 
52574
  /** Get the identifier for this node type. Can be compared with NodeName(). */
44946
52575
  static const char *NodeId ();
 
52576
  /** Get the name of the node. Can be compared with NodeId(). */
44947
52577
  const char *NodeName () const { return NodeId (); }
 
52578
  /** Get the number of sons. */
44948
52579
  int Sons () const { return 3; }
 
52580
  /** Get the n-th son.
 
52581
   *  \param n The index of the son.
 
52582
   *  \return The n-th son or NULL. */
44949
52583
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
52584
  /** Get the declaration specifier sequence. */
44950
52585
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
52586
  /** Get the declarator list. */
44951
52587
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
52588
  /** Replace a son.
 
52589
   *  \param old_son The son to replace.
 
52590
   *  \param new_son The new son. */
44952
52591
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
44953
52592
    CTree::ReplaceSon (sons, 3, old_son, new_son);
44954
52593
  }
44955
52594
};
44956
52595
 
 
52596
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
52597
 *  Tree node representing a template declaration. */
44957
52598
 
44958
 
#line 44959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52599
#line 52600 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
44959
52600
} // closed Puma
 
52601
class CCExprResolve;
 
52602
class CExprResolve;
44960
52603
class WinIfExists;
44961
52604
class WinImportHandler;
44962
52605
class WinMacros;
44963
 
class CMatchSyntax;
44964
 
class ExtGnu;
 
52606
class WinAsm;
 
52607
class WinDeclSpecs;
 
52608
class WinMemberExplSpec;
 
52609
class WinTypeKeywords;
 
52610
class WinFriend;
44965
52611
class ExtAC;
44966
52612
class ExtACBuilderCoupling;
44967
52613
class ExtACSyntaxCoupling;
44968
52614
class ExtACTree;
44969
52615
class ExtACKeywords;
44970
 
class WinAsm;
44971
 
class WinDeclSpecs;
44972
 
class WinMemberExplSpec;
44973
 
class WinTypeKeywords;
 
52616
class ExtGnu;
44974
52617
class PragmaOnceUnitState;
44975
52618
class PragmaOnce;
44976
 
class CCExprResolve;
44977
 
class CExprResolve;
 
52619
class CMatchSyntax;
44978
52620
namespace Puma {
44979
52621
 
44980
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52622
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
44981
52623
class CT_TemplateDecl : public CT_Decl, public CSemScope {
44982
 
#line 44983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52624
#line 52625 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
52625
  friend class ::CCExprResolve;
 
52626
  friend class ::CExprResolve;
44983
52627
  friend class ::WinIfExists;
44984
52628
  friend class ::WinImportHandler;
44985
52629
  friend class ::WinMacros;
44986
 
  friend class ::CMatchSyntax;
44987
 
  friend class ::ExtGnu;
 
52630
  friend class ::WinAsm;
 
52631
  friend class ::WinDeclSpecs;
 
52632
  friend class ::WinMemberExplSpec;
 
52633
  friend class ::WinTypeKeywords;
 
52634
  friend class ::WinFriend;
44988
52635
  friend class ::ExtAC;
44989
52636
  friend class ::ExtACBuilderCoupling;
44990
52637
  friend class ::ExtACSyntaxCoupling;
44991
52638
  friend class ::ExtACTree;
44992
52639
  friend class ::ExtACKeywords;
44993
 
  friend class ::WinAsm;
44994
 
  friend class ::WinDeclSpecs;
44995
 
  friend class ::WinMemberExplSpec;
44996
 
  friend class ::WinTypeKeywords;
 
52640
  friend class ::ExtGnu;
44997
52641
  friend class ::PragmaOnceUnitState;
44998
52642
  friend class ::PragmaOnce;
44999
 
  friend class ::CCExprResolve;
45000
 
  friend class ::CExprResolve;
 
52643
  friend class ::CMatchSyntax;
45001
52644
 
45002
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52645
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45003
52646
 
45004
52647
  CTree *sons[3]; // export, param_list, decl
45005
52648
 
45006
52649
public:
 
52650
  /** Constructor.
 
52651
   *  \param e Optional 'export' keyword. 
 
52652
   *  \param p The template parameter list.
 
52653
   *  \param d The class or function declaration. */
45007
52654
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
45008
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
52655
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
45009
52656
  }
 
52657
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45010
52658
  static const char *NodeId ();
 
52659
  /** Get the name of the node. Can be compared with NodeId(). */
45011
52660
  const char *NodeName () const { return NodeId (); }
 
52661
  /** Get the number of sons. */
45012
52662
  int Sons () const { return CTree::Sons (sons, 3); }
 
52663
  /** Get the n-th son.
 
52664
   *  \param n The index of the son.
 
52665
   *  \return The n-th son or NULL. */
45013
52666
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
52667
  /** Replace a son.
 
52668
   *  \param old_son The son to replace.
 
52669
   *  \param new_son The new son. */
45014
52670
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45015
52671
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
45016
52672
  }
 
52673
  /** Get the 'export' keyword. */
45017
52674
  CTree *Export () const { return sons[0]; }
 
52675
  /** Get the template parameter list. */
45018
52676
  CT_TemplateParamList *Parameters () const { 
45019
52677
    return (CT_TemplateParamList*)sons[1]; 
45020
52678
  }
 
52679
  /** Get the class or function declaration. */
45021
52680
  CTree *Declaration () const { return sons[2]; }
 
52681
  /** Get the semantic scope object. */
 
52682
  CSemScope *SemScope () const { return (CSemScope*)this; }
45022
52683
};
45023
52684
 
 
52685
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
52686
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
45024
52687
 
45025
 
#line 45026 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52688
#line 52689 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45026
52689
} // closed Puma
 
52690
class CCExprResolve;
 
52691
class CExprResolve;
45027
52692
class WinIfExists;
45028
52693
class WinImportHandler;
45029
52694
class WinMacros;
45030
 
class CMatchSyntax;
45031
 
class ExtGnu;
 
52695
class WinAsm;
 
52696
class WinDeclSpecs;
 
52697
class WinMemberExplSpec;
 
52698
class WinTypeKeywords;
 
52699
class WinFriend;
45032
52700
class ExtAC;
45033
52701
class ExtACBuilderCoupling;
45034
52702
class ExtACSyntaxCoupling;
45035
52703
class ExtACTree;
45036
52704
class ExtACKeywords;
45037
 
class WinAsm;
45038
 
class WinDeclSpecs;
45039
 
class WinMemberExplSpec;
45040
 
class WinTypeKeywords;
 
52705
class ExtGnu;
45041
52706
class PragmaOnceUnitState;
45042
52707
class PragmaOnce;
45043
 
class CCExprResolve;
45044
 
class CExprResolve;
 
52708
class CMatchSyntax;
45045
52709
namespace Puma {
45046
52710
 
45047
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52711
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45048
52712
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
45049
 
#line 45050 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52713
#line 52714 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
52714
  friend class ::CCExprResolve;
 
52715
  friend class ::CExprResolve;
45050
52716
  friend class ::WinIfExists;
45051
52717
  friend class ::WinImportHandler;
45052
52718
  friend class ::WinMacros;
45053
 
  friend class ::CMatchSyntax;
45054
 
  friend class ::ExtGnu;
 
52719
  friend class ::WinAsm;
 
52720
  friend class ::WinDeclSpecs;
 
52721
  friend class ::WinMemberExplSpec;
 
52722
  friend class ::WinTypeKeywords;
 
52723
  friend class ::WinFriend;
45055
52724
  friend class ::ExtAC;
45056
52725
  friend class ::ExtACBuilderCoupling;
45057
52726
  friend class ::ExtACSyntaxCoupling;
45058
52727
  friend class ::ExtACTree;
45059
52728
  friend class ::ExtACKeywords;
45060
 
  friend class ::WinAsm;
45061
 
  friend class ::WinDeclSpecs;
45062
 
  friend class ::WinMemberExplSpec;
45063
 
  friend class ::WinTypeKeywords;
 
52729
  friend class ::ExtGnu;
45064
52730
  friend class ::PragmaOnceUnitState;
45065
52731
  friend class ::PragmaOnce;
45066
 
  friend class ::CCExprResolve;
45067
 
  friend class ::CExprResolve;
 
52732
  friend class ::CMatchSyntax;
45068
52733
 
45069
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52734
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45070
52735
 
45071
52736
protected:
 
52737
  /** Constructor. */
45072
52738
  CT_TemplateParamDecl () {}
45073
52739
  
45074
52740
public:
 
52741
  /** Get the template default argument. */
45075
52742
  virtual CT_ExprList *DefaultArgument () const = 0;
 
52743
  /** Get the semantic information object. */
45076
52744
  CSemObject *SemObject () const { return (CSemObject*)this; }
45077
52745
};
45078
52746
 
45079
52747
 
45080
 
#line 45081 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52748
#line 52749 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45081
52749
} // closed Puma
 
52750
class CCExprResolve;
 
52751
class CExprResolve;
45082
52752
class WinIfExists;
45083
52753
class WinImportHandler;
45084
52754
class WinMacros;
45085
 
class CMatchSyntax;
45086
 
class ExtGnu;
 
52755
class WinAsm;
 
52756
class WinDeclSpecs;
 
52757
class WinMemberExplSpec;
 
52758
class WinTypeKeywords;
 
52759
class WinFriend;
45087
52760
class ExtAC;
45088
52761
class ExtACBuilderCoupling;
45089
52762
class ExtACSyntaxCoupling;
45090
52763
class ExtACTree;
45091
52764
class ExtACKeywords;
45092
 
class WinAsm;
45093
 
class WinDeclSpecs;
45094
 
class WinMemberExplSpec;
45095
 
class WinTypeKeywords;
 
52765
class ExtGnu;
45096
52766
class PragmaOnceUnitState;
45097
52767
class PragmaOnce;
45098
 
class CCExprResolve;
45099
 
class CExprResolve;
 
52768
class CMatchSyntax;
45100
52769
namespace Puma {
45101
52770
 
45102
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52771
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45103
52772
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
45104
 
#line 45105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52773
#line 52774 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
52774
  friend class ::CCExprResolve;
 
52775
  friend class ::CExprResolve;
45105
52776
  friend class ::WinIfExists;
45106
52777
  friend class ::WinImportHandler;
45107
52778
  friend class ::WinMacros;
45108
 
  friend class ::CMatchSyntax;
45109
 
  friend class ::ExtGnu;
 
52779
  friend class ::WinAsm;
 
52780
  friend class ::WinDeclSpecs;
 
52781
  friend class ::WinMemberExplSpec;
 
52782
  friend class ::WinTypeKeywords;
 
52783
  friend class ::WinFriend;
45110
52784
  friend class ::ExtAC;
45111
52785
  friend class ::ExtACBuilderCoupling;
45112
52786
  friend class ::ExtACSyntaxCoupling;
45113
52787
  friend class ::ExtACTree;
45114
52788
  friend class ::ExtACKeywords;
45115
 
  friend class ::WinAsm;
45116
 
  friend class ::WinDeclSpecs;
45117
 
  friend class ::WinMemberExplSpec;
45118
 
  friend class ::WinTypeKeywords;
 
52789
  friend class ::ExtGnu;
45119
52790
  friend class ::PragmaOnceUnitState;
45120
52791
  friend class ::PragmaOnce;
45121
 
  friend class ::CCExprResolve;
45122
 
  friend class ::CExprResolve;
 
52792
  friend class ::CMatchSyntax;
45123
52793
 
45124
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52794
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45125
52795
 
45126
52796
  CTree *sons[3]; // declspecs, declarator, init
45127
52797
 
45128
52798
public:
45129
52799
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
45130
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
52800
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
45131
52801
  }
 
52802
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45132
52803
  static const char *NodeId ();
 
52804
  /** Get the name of the node. Can be compared with NodeId(). */
45133
52805
  const char *NodeName () const { return NodeId (); }
 
52806
  /** Get the number of sons. */
45134
52807
  int Sons () const { return CTree::Sons (sons, 3); }
 
52808
  /** Get the n-th son.
 
52809
   *  \param n The index of the son.
 
52810
   *  \return The n-th son or NULL. */
45135
52811
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
45136
52812
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
45137
52813
  CTree *Declarator () const { return sons[1]; }
45138
52814
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
45139
52815
  CSemObject *SemObject () const { return (CSemObject*)this; }
45140
 
  void Initializer (CTree *i) { sons[2] = i; }
 
52816
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
52817
  /** Replace a son.
 
52818
   *  \param old_son The son to replace.
 
52819
   *  \param new_son The new son. */
45141
52820
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45142
52821
    CTree::ReplaceSon (sons, 3, old_son, new_son);
45143
52822
  }
45144
52823
};
45145
52824
 
45146
52825
 
45147
 
#line 45148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52826
#line 52827 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45148
52827
} // closed Puma
 
52828
class CCExprResolve;
 
52829
class CExprResolve;
45149
52830
class WinIfExists;
45150
52831
class WinImportHandler;
45151
52832
class WinMacros;
45152
 
class CMatchSyntax;
45153
 
class ExtGnu;
 
52833
class WinAsm;
 
52834
class WinDeclSpecs;
 
52835
class WinMemberExplSpec;
 
52836
class WinTypeKeywords;
 
52837
class WinFriend;
45154
52838
class ExtAC;
45155
52839
class ExtACBuilderCoupling;
45156
52840
class ExtACSyntaxCoupling;
45157
52841
class ExtACTree;
45158
52842
class ExtACKeywords;
45159
 
class WinAsm;
45160
 
class WinDeclSpecs;
45161
 
class WinMemberExplSpec;
45162
 
class WinTypeKeywords;
 
52843
class ExtGnu;
45163
52844
class PragmaOnceUnitState;
45164
52845
class PragmaOnce;
45165
 
class CCExprResolve;
45166
 
class CExprResolve;
 
52846
class CMatchSyntax;
45167
52847
namespace Puma {
45168
52848
 
45169
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52849
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45170
52850
class CT_TypeParamDecl : public CT_TemplateParamDecl {
45171
 
#line 45172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52851
#line 52852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
52852
  friend class ::CCExprResolve;
 
52853
  friend class ::CExprResolve;
45172
52854
  friend class ::WinIfExists;
45173
52855
  friend class ::WinImportHandler;
45174
52856
  friend class ::WinMacros;
45175
 
  friend class ::CMatchSyntax;
45176
 
  friend class ::ExtGnu;
 
52857
  friend class ::WinAsm;
 
52858
  friend class ::WinDeclSpecs;
 
52859
  friend class ::WinMemberExplSpec;
 
52860
  friend class ::WinTypeKeywords;
 
52861
  friend class ::WinFriend;
45177
52862
  friend class ::ExtAC;
45178
52863
  friend class ::ExtACBuilderCoupling;
45179
52864
  friend class ::ExtACSyntaxCoupling;
45180
52865
  friend class ::ExtACTree;
45181
52866
  friend class ::ExtACKeywords;
45182
 
  friend class ::WinAsm;
45183
 
  friend class ::WinDeclSpecs;
45184
 
  friend class ::WinMemberExplSpec;
45185
 
  friend class ::WinTypeKeywords;
 
52867
  friend class ::ExtGnu;
45186
52868
  friend class ::PragmaOnceUnitState;
45187
52869
  friend class ::PragmaOnce;
45188
 
  friend class ::CCExprResolve;
45189
 
  friend class ::CExprResolve;
 
52870
  friend class ::CMatchSyntax;
45190
52871
 
45191
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52872
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45192
52873
 
45193
52874
  CTree *sons[4]; // params, key, id, init
45194
52875
 
45195
52876
public:
45196
52877
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
45197
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
52878
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
52879
    AddSon (sons[2], id); AddSon (sons[3], i);
45198
52880
  }
 
52881
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45199
52882
  static const char *NodeId ();
 
52883
  /** Get the name of the node. Can be compared with NodeId(). */
45200
52884
  const char *NodeName () const { return NodeId (); }
 
52885
  /** Get the number of sons. */
45201
52886
  int Sons () const { return CTree::Sons (sons, 4); }
 
52887
  /** Get the n-th son.
 
52888
   *  \param n The index of the son.
 
52889
   *  \return The n-th son or NULL. */
45202
52890
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
45203
52891
  CT_TemplateParamList *Parameters () const { 
45204
52892
    return (CT_TemplateParamList*)sons[0]; 
45205
52893
  }
45206
52894
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
45207
52895
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
45208
 
  void Initializer (CTree *i) { sons[3] = i; }
 
52896
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
52897
  /** Replace a son.
 
52898
   *  \param old_son The son to replace.
 
52899
   *  \param new_son The new son. */
45209
52900
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45210
52901
    CTree::ReplaceSon (sons, 4, old_son, new_son);
45211
52902
  }
45212
52903
};
45213
52904
 
45214
52905
 
45215
 
#line 45216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52906
#line 52907 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45216
52907
} // closed Puma
 
52908
class CCExprResolve;
 
52909
class CExprResolve;
45217
52910
class WinIfExists;
45218
52911
class WinImportHandler;
45219
52912
class WinMacros;
45220
 
class CMatchSyntax;
45221
 
class ExtGnu;
 
52913
class WinAsm;
 
52914
class WinDeclSpecs;
 
52915
class WinMemberExplSpec;
 
52916
class WinTypeKeywords;
 
52917
class WinFriend;
45222
52918
class ExtAC;
45223
52919
class ExtACBuilderCoupling;
45224
52920
class ExtACSyntaxCoupling;
45225
52921
class ExtACTree;
45226
52922
class ExtACKeywords;
45227
 
class WinAsm;
45228
 
class WinDeclSpecs;
45229
 
class WinMemberExplSpec;
45230
 
class WinTypeKeywords;
 
52923
class ExtGnu;
45231
52924
class PragmaOnceUnitState;
45232
52925
class PragmaOnce;
45233
 
class CCExprResolve;
45234
 
class CExprResolve;
 
52926
class CMatchSyntax;
45235
52927
namespace Puma {
45236
52928
 
45237
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52929
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45238
52930
class CT_EnumDef : public CT_Decl, public CSemObject {
45239
 
#line 45240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52931
#line 52932 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
52932
  friend class ::CCExprResolve;
 
52933
  friend class ::CExprResolve;
45240
52934
  friend class ::WinIfExists;
45241
52935
  friend class ::WinImportHandler;
45242
52936
  friend class ::WinMacros;
45243
 
  friend class ::CMatchSyntax;
45244
 
  friend class ::ExtGnu;
 
52937
  friend class ::WinAsm;
 
52938
  friend class ::WinDeclSpecs;
 
52939
  friend class ::WinMemberExplSpec;
 
52940
  friend class ::WinTypeKeywords;
 
52941
  friend class ::WinFriend;
45245
52942
  friend class ::ExtAC;
45246
52943
  friend class ::ExtACBuilderCoupling;
45247
52944
  friend class ::ExtACSyntaxCoupling;
45248
52945
  friend class ::ExtACTree;
45249
52946
  friend class ::ExtACKeywords;
45250
 
  friend class ::WinAsm;
45251
 
  friend class ::WinDeclSpecs;
45252
 
  friend class ::WinMemberExplSpec;
45253
 
  friend class ::WinTypeKeywords;
 
52947
  friend class ::ExtGnu;
45254
52948
  friend class ::PragmaOnceUnitState;
45255
52949
  friend class ::PragmaOnce;
45256
 
  friend class ::CCExprResolve;
45257
 
  friend class ::CExprResolve;
 
52950
  friend class ::CMatchSyntax;
45258
52951
 
45259
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
52952
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45260
52953
 
45261
52954
  CTree *sons[3]; // key, name, enumerators
45262
52955
 
45263
52956
public:
45264
52957
  CT_EnumDef (CTree *k, CTree *n) {
45265
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
52958
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
45266
52959
  }
 
52960
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45267
52961
  static const char *NodeId ();
 
52962
  /** Get the name of the node. Can be compared with NodeId(). */
45268
52963
  const char *NodeName () const { return NodeId (); }
 
52964
  /** Get the number of sons. */
45269
52965
  int Sons () const { return CTree::Sons (sons, 3); }
 
52966
  /** Get the n-th son.
 
52967
   *  \param n The index of the son.
 
52968
   *  \return The n-th son or NULL. */
45270
52969
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
45271
52970
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
45272
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
52971
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
45273
52972
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
52973
  /** Replace a son.
 
52974
   *  \param old_son The son to replace.
 
52975
   *  \param new_son The new son. */
45274
52976
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45275
52977
    CTree::ReplaceSon (sons, 3, old_son, new_son);
45276
52978
  }
45278
52980
};
45279
52981
 
45280
52982
 
45281
 
#line 45282 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
52983
#line 52984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45282
52984
} // closed Puma
 
52985
class CCExprResolve;
 
52986
class CExprResolve;
45283
52987
class WinIfExists;
45284
52988
class WinImportHandler;
45285
52989
class WinMacros;
45286
 
class CMatchSyntax;
45287
 
class ExtGnu;
 
52990
class WinAsm;
 
52991
class WinDeclSpecs;
 
52992
class WinMemberExplSpec;
 
52993
class WinTypeKeywords;
 
52994
class WinFriend;
45288
52995
class ExtAC;
45289
52996
class ExtACBuilderCoupling;
45290
52997
class ExtACSyntaxCoupling;
45291
52998
class ExtACTree;
45292
52999
class ExtACKeywords;
45293
 
class WinAsm;
45294
 
class WinDeclSpecs;
45295
 
class WinMemberExplSpec;
45296
 
class WinTypeKeywords;
 
53000
class ExtGnu;
45297
53001
class PragmaOnceUnitState;
45298
53002
class PragmaOnce;
45299
 
class CCExprResolve;
45300
 
class CExprResolve;
 
53003
class CMatchSyntax;
45301
53004
namespace Puma {
45302
53005
 
45303
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53006
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45304
53007
class CT_Enumerator : public CT_Decl, public CSemObject {
45305
 
#line 45306 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53008
#line 53009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
53009
  friend class ::CCExprResolve;
 
53010
  friend class ::CExprResolve;
45306
53011
  friend class ::WinIfExists;
45307
53012
  friend class ::WinImportHandler;
45308
53013
  friend class ::WinMacros;
45309
 
  friend class ::CMatchSyntax;
45310
 
  friend class ::ExtGnu;
 
53014
  friend class ::WinAsm;
 
53015
  friend class ::WinDeclSpecs;
 
53016
  friend class ::WinMemberExplSpec;
 
53017
  friend class ::WinTypeKeywords;
 
53018
  friend class ::WinFriend;
45311
53019
  friend class ::ExtAC;
45312
53020
  friend class ::ExtACBuilderCoupling;
45313
53021
  friend class ::ExtACSyntaxCoupling;
45314
53022
  friend class ::ExtACTree;
45315
53023
  friend class ::ExtACKeywords;
45316
 
  friend class ::WinAsm;
45317
 
  friend class ::WinDeclSpecs;
45318
 
  friend class ::WinMemberExplSpec;
45319
 
  friend class ::WinTypeKeywords;
 
53024
  friend class ::ExtGnu;
45320
53025
  friend class ::PragmaOnceUnitState;
45321
53026
  friend class ::PragmaOnce;
45322
 
  friend class ::CCExprResolve;
45323
 
  friend class ::CExprResolve;
 
53027
  friend class ::CMatchSyntax;
45324
53028
 
45325
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53029
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45326
53030
 
45327
53031
  CTree *sons[2]; // name, init
45328
53032
 
45329
53033
public:
45330
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
53034
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
53035
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45331
53036
  static const char *NodeId ();
 
53037
  /** Get the name of the node. Can be compared with NodeId(). */
45332
53038
  const char *NodeName () const { return NodeId (); }
 
53039
  /** Get the number of sons. */
45333
53040
  int Sons () const { return CTree::Sons (sons, 2); }
 
53041
  /** Get the n-th son.
 
53042
   *  \param n The index of the son.
 
53043
   *  \return The n-th son or NULL. */
45334
53044
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
45335
53045
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
45336
 
  void Initializer (CTree *i) { sons[1] = i; }
 
53046
  void Initializer (CTree *i) { AddSon (sons[1], i); }
45337
53047
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
53048
  /** Replace a son.
 
53049
   *  \param old_son The son to replace.
 
53050
   *  \param new_son The new son. */
45338
53051
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45339
53052
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
45340
53053
  }
45342
53055
};
45343
53056
 
45344
53057
 
45345
 
#line 45346 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53058
#line 53059 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45346
53059
} // closed Puma
 
53060
class CCExprResolve;
 
53061
class CExprResolve;
45347
53062
class WinIfExists;
45348
53063
class WinImportHandler;
45349
53064
class WinMacros;
45350
 
class CMatchSyntax;
45351
 
class ExtGnu;
 
53065
class WinAsm;
 
53066
class WinDeclSpecs;
 
53067
class WinMemberExplSpec;
 
53068
class WinTypeKeywords;
 
53069
class WinFriend;
45352
53070
class ExtAC;
45353
53071
class ExtACBuilderCoupling;
45354
53072
class ExtACSyntaxCoupling;
45355
53073
class ExtACTree;
45356
53074
class ExtACKeywords;
45357
 
class WinAsm;
45358
 
class WinDeclSpecs;
45359
 
class WinMemberExplSpec;
45360
 
class WinTypeKeywords;
 
53075
class ExtGnu;
45361
53076
class PragmaOnceUnitState;
45362
53077
class PragmaOnce;
45363
 
class CCExprResolve;
45364
 
class CExprResolve;
 
53078
class CMatchSyntax;
45365
53079
namespace Puma {
45366
53080
 
45367
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53081
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45368
53082
class CT_FctDef : public CT_Decl, public CSemObject {
45369
 
#line 45370 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53083
#line 53084 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
53084
  friend class ::CCExprResolve;
 
53085
  friend class ::CExprResolve;
45370
53086
  friend class ::WinIfExists;
45371
53087
  friend class ::WinImportHandler;
45372
53088
  friend class ::WinMacros;
45373
 
  friend class ::CMatchSyntax;
45374
 
  friend class ::ExtGnu;
 
53089
  friend class ::WinAsm;
 
53090
  friend class ::WinDeclSpecs;
 
53091
  friend class ::WinMemberExplSpec;
 
53092
  friend class ::WinTypeKeywords;
 
53093
  friend class ::WinFriend;
45375
53094
  friend class ::ExtAC;
45376
53095
  friend class ::ExtACBuilderCoupling;
45377
53096
  friend class ::ExtACSyntaxCoupling;
45378
53097
  friend class ::ExtACTree;
45379
53098
  friend class ::ExtACKeywords;
45380
 
  friend class ::WinAsm;
45381
 
  friend class ::WinDeclSpecs;
45382
 
  friend class ::WinMemberExplSpec;
45383
 
  friend class ::WinTypeKeywords;
 
53099
  friend class ::ExtGnu;
45384
53100
  friend class ::PragmaOnceUnitState;
45385
53101
  friend class ::PragmaOnce;
45386
 
  friend class ::CCExprResolve;
45387
 
  friend class ::CExprResolve;
 
53102
  friend class ::CMatchSyntax;
45388
53103
 
45389
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53104
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45390
53105
 
45391
53106
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
45392
53107
 
45393
53108
public:
45394
53109
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
45395
53110
             CTree *b, CTree *hs) {
45396
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
45397
 
    sons[5] = b; sons[6] = hs; 
 
53111
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
53112
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
53113
    AddSon (sons[6], hs); 
45398
53114
  }
 
53115
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45399
53116
  static const char *NodeId ();
 
53117
  /** Get the name of the node. Can be compared with NodeId(). */
45400
53118
  const char *NodeName () const { return NodeId (); }
 
53119
  /** Get the number of sons. */
45401
53120
  int Sons () const { return CTree::Sons (sons, 7); }
 
53121
  /** Get the n-th son.
 
53122
   *  \param n The index of the son.
 
53123
   *  \return The n-th son or NULL. */
45402
53124
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
45403
53125
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
45404
53126
  CTree *Declarator () const { return sons[1]; }
45408
53130
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
45409
53131
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
45410
53132
  CSemObject *SemObject () const { return (CSemObject*)this; }
45411
 
  void CtorInit (CTree *i) { sons[3] = i; }
45412
 
  void Body (CTree *b) { sons[5] = b; }
 
53133
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
53134
  void Body (CTree *b) { AddSon (sons[5], b); }
45413
53135
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
45414
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
53136
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
53137
    AddSon (sons[5], b); AddSon (sons[6], h);
45415
53138
  }
 
53139
  /** Replace a son.
 
53140
   *  \param old_son The son to replace.
 
53141
   *  \param new_son The new son. */
45416
53142
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45417
53143
    CTree::ReplaceSon (sons, 7, old_son, new_son);
45418
53144
  }
45419
53145
};
45420
53146
 
45421
53147
 
45422
 
#line 45423 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53148
#line 53149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45423
53149
} // closed Puma
 
53150
class CCExprResolve;
 
53151
class CExprResolve;
45424
53152
class WinIfExists;
45425
53153
class WinImportHandler;
45426
53154
class WinMacros;
45427
 
class CMatchSyntax;
45428
 
class ExtGnu;
 
53155
class WinAsm;
 
53156
class WinDeclSpecs;
 
53157
class WinMemberExplSpec;
 
53158
class WinTypeKeywords;
 
53159
class WinFriend;
45429
53160
class ExtAC;
45430
53161
class ExtACBuilderCoupling;
45431
53162
class ExtACSyntaxCoupling;
45432
53163
class ExtACTree;
45433
53164
class ExtACKeywords;
45434
 
class WinAsm;
45435
 
class WinDeclSpecs;
45436
 
class WinMemberExplSpec;
45437
 
class WinTypeKeywords;
 
53165
class ExtGnu;
45438
53166
class PragmaOnceUnitState;
45439
53167
class PragmaOnce;
45440
 
class CCExprResolve;
45441
 
class CExprResolve;
 
53168
class CMatchSyntax;
45442
53169
namespace Puma {
45443
53170
 
45444
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53171
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45445
53172
class CT_AsmDef : public CT_Decl {
45446
 
#line 45447 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53173
#line 53174 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
53174
  friend class ::CCExprResolve;
 
53175
  friend class ::CExprResolve;
45447
53176
  friend class ::WinIfExists;
45448
53177
  friend class ::WinImportHandler;
45449
53178
  friend class ::WinMacros;
45450
 
  friend class ::CMatchSyntax;
45451
 
  friend class ::ExtGnu;
 
53179
  friend class ::WinAsm;
 
53180
  friend class ::WinDeclSpecs;
 
53181
  friend class ::WinMemberExplSpec;
 
53182
  friend class ::WinTypeKeywords;
 
53183
  friend class ::WinFriend;
45452
53184
  friend class ::ExtAC;
45453
53185
  friend class ::ExtACBuilderCoupling;
45454
53186
  friend class ::ExtACSyntaxCoupling;
45455
53187
  friend class ::ExtACTree;
45456
53188
  friend class ::ExtACKeywords;
45457
 
  friend class ::WinAsm;
45458
 
  friend class ::WinDeclSpecs;
45459
 
  friend class ::WinMemberExplSpec;
45460
 
  friend class ::WinTypeKeywords;
 
53189
  friend class ::ExtGnu;
45461
53190
  friend class ::PragmaOnceUnitState;
45462
53191
  friend class ::PragmaOnce;
45463
 
  friend class ::CCExprResolve;
45464
 
  friend class ::CExprResolve;
 
53192
  friend class ::CMatchSyntax;
45465
53193
 
45466
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53194
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45467
53195
 
45468
53196
  CTree *sons[5]; // asm, open, str, close, semi_colon
45469
53197
 
45470
53198
public:
45471
53199
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
45472
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
53200
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
53201
    AddSon (sons[3], c); AddSon (sons[4], sc); 
45473
53202
  }
 
53203
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45474
53204
  static const char *NodeId ();
 
53205
  /** Get the name of the node. Can be compared with NodeId(). */
45475
53206
  const char *NodeName () const { return NodeId (); }
 
53207
  /** Get the number of sons. */
45476
53208
  int Sons () const { return 5; }
 
53209
  /** Get the n-th son.
 
53210
   *  \param n The index of the son.
 
53211
   *  \return The n-th son or NULL. */
45477
53212
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
45478
53213
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
53214
  /** Replace a son.
 
53215
   *  \param old_son The son to replace.
 
53216
   *  \param new_son The new son. */
45479
53217
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45480
53218
    CTree::ReplaceSon (sons, 5, old_son, new_son);
45481
53219
  }
45482
53220
};
45483
53221
 
45484
53222
 
45485
 
#line 45486 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53223
#line 53224 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45486
53224
} // closed Puma
 
53225
class CCExprResolve;
 
53226
class CExprResolve;
45487
53227
class WinIfExists;
45488
53228
class WinImportHandler;
45489
53229
class WinMacros;
45490
 
class CMatchSyntax;
45491
 
class ExtGnu;
 
53230
class WinAsm;
 
53231
class WinDeclSpecs;
 
53232
class WinMemberExplSpec;
 
53233
class WinTypeKeywords;
 
53234
class WinFriend;
45492
53235
class ExtAC;
45493
53236
class ExtACBuilderCoupling;
45494
53237
class ExtACSyntaxCoupling;
45495
53238
class ExtACTree;
45496
53239
class ExtACKeywords;
45497
 
class WinAsm;
45498
 
class WinDeclSpecs;
45499
 
class WinMemberExplSpec;
45500
 
class WinTypeKeywords;
 
53240
class ExtGnu;
45501
53241
class PragmaOnceUnitState;
45502
53242
class PragmaOnce;
45503
 
class CCExprResolve;
45504
 
class CExprResolve;
 
53243
class CMatchSyntax;
45505
53244
namespace Puma {
45506
53245
 
45507
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53246
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45508
53247
class CT_Handler : public CT_Decl, public CSemScope {
45509
 
#line 45510 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53248
#line 53249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
53249
  friend class ::CCExprResolve;
 
53250
  friend class ::CExprResolve;
45510
53251
  friend class ::WinIfExists;
45511
53252
  friend class ::WinImportHandler;
45512
53253
  friend class ::WinMacros;
45513
 
  friend class ::CMatchSyntax;
45514
 
  friend class ::ExtGnu;
 
53254
  friend class ::WinAsm;
 
53255
  friend class ::WinDeclSpecs;
 
53256
  friend class ::WinMemberExplSpec;
 
53257
  friend class ::WinTypeKeywords;
 
53258
  friend class ::WinFriend;
45515
53259
  friend class ::ExtAC;
45516
53260
  friend class ::ExtACBuilderCoupling;
45517
53261
  friend class ::ExtACSyntaxCoupling;
45518
53262
  friend class ::ExtACTree;
45519
53263
  friend class ::ExtACKeywords;
45520
 
  friend class ::WinAsm;
45521
 
  friend class ::WinDeclSpecs;
45522
 
  friend class ::WinMemberExplSpec;
45523
 
  friend class ::WinTypeKeywords;
 
53264
  friend class ::ExtGnu;
45524
53265
  friend class ::PragmaOnceUnitState;
45525
53266
  friend class ::PragmaOnce;
45526
 
  friend class ::CCExprResolve;
45527
 
  friend class ::CExprResolve;
 
53267
  friend class ::CMatchSyntax;
45528
53268
 
45529
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53269
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45530
53270
 
45531
53271
  CTree *sons[3]; // catch, exception_decl, stmt
45532
53272
 
45533
53273
public:
45534
53274
  CT_Handler (CTree *c, CTree *e, CTree *s) {
45535
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
53275
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
45536
53276
  }
 
53277
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45537
53278
  static const char *NodeId ();
 
53279
  /** Get the name of the node. Can be compared with NodeId(). */
45538
53280
  const char *NodeName () const { return NodeId (); }
 
53281
  /** Get the number of sons. */
45539
53282
  int Sons () const { return 3; }
 
53283
  /** Get the n-th son.
 
53284
   *  \param n The index of the son.
 
53285
   *  \return The n-th son or NULL. */
45540
53286
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
45541
53287
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
45542
53288
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
53289
  /** Replace a son.
 
53290
   *  \param old_son The son to replace.
 
53291
   *  \param new_son The new son. */
45543
53292
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45544
53293
    CTree::ReplaceSon (sons, 3, old_son, new_son);
45545
53294
  }
 
53295
  CSemScope *SemScope () const { return (CSemScope*)this; }
45546
53296
};
45547
53297
 
45548
53298
 
45549
 
#line 45550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53299
#line 53300 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45550
53300
} // closed Puma
 
53301
class CCExprResolve;
 
53302
class CExprResolve;
45551
53303
class WinIfExists;
45552
53304
class WinImportHandler;
45553
53305
class WinMacros;
45554
 
class CMatchSyntax;
45555
 
class ExtGnu;
 
53306
class WinAsm;
 
53307
class WinDeclSpecs;
 
53308
class WinMemberExplSpec;
 
53309
class WinTypeKeywords;
 
53310
class WinFriend;
45556
53311
class ExtAC;
45557
53312
class ExtACBuilderCoupling;
45558
53313
class ExtACSyntaxCoupling;
45559
53314
class ExtACTree;
45560
53315
class ExtACKeywords;
45561
 
class WinAsm;
45562
 
class WinDeclSpecs;
45563
 
class WinMemberExplSpec;
45564
 
class WinTypeKeywords;
 
53316
class ExtGnu;
45565
53317
class PragmaOnceUnitState;
45566
53318
class PragmaOnce;
45567
 
class CCExprResolve;
45568
 
class CExprResolve;
 
53319
class CMatchSyntax;
45569
53320
namespace Puma {
45570
53321
 
45571
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53322
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45572
53323
class CT_LinkageSpec : public CT_Decl {
45573
 
#line 45574 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53324
#line 53325 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
53325
  friend class ::CCExprResolve;
 
53326
  friend class ::CExprResolve;
45574
53327
  friend class ::WinIfExists;
45575
53328
  friend class ::WinImportHandler;
45576
53329
  friend class ::WinMacros;
45577
 
  friend class ::CMatchSyntax;
45578
 
  friend class ::ExtGnu;
 
53330
  friend class ::WinAsm;
 
53331
  friend class ::WinDeclSpecs;
 
53332
  friend class ::WinMemberExplSpec;
 
53333
  friend class ::WinTypeKeywords;
 
53334
  friend class ::WinFriend;
45579
53335
  friend class ::ExtAC;
45580
53336
  friend class ::ExtACBuilderCoupling;
45581
53337
  friend class ::ExtACSyntaxCoupling;
45582
53338
  friend class ::ExtACTree;
45583
53339
  friend class ::ExtACKeywords;
45584
 
  friend class ::WinAsm;
45585
 
  friend class ::WinDeclSpecs;
45586
 
  friend class ::WinMemberExplSpec;
45587
 
  friend class ::WinTypeKeywords;
 
53340
  friend class ::ExtGnu;
45588
53341
  friend class ::PragmaOnceUnitState;
45589
53342
  friend class ::PragmaOnce;
45590
 
  friend class ::CCExprResolve;
45591
 
  friend class ::CExprResolve;
 
53343
  friend class ::CMatchSyntax;
45592
53344
 
45593
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53345
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45594
53346
 
45595
53347
  CTree *sons[5]; // extern, str, open, decls, close
45596
53348
 
45597
53349
public:
45598
53350
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
45599
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
53351
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
53352
    AddSon (sons[3], d); AddSon (sons[4], c);
45600
53353
    if (isList ())
45601
53354
      ((CT_DeclList*)Decls ())->Linkage (this);
45602
53355
    else
45603
53356
      ((CT_Decl*)Decls ())->Linkage (this);
45604
53357
  }
 
53358
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45605
53359
  static const char *NodeId ();
 
53360
  /** Get the name of the node. Can be compared with NodeId(). */
45606
53361
  const char *NodeName () const { return NodeId (); }
 
53362
  /** Get the number of sons. */
45607
53363
  int Sons () const { return CTree::Sons (sons, 5); }
 
53364
  /** Get the n-th son.
 
53365
   *  \param n The index of the son.
 
53366
   *  \return The n-th son or NULL. */
45608
53367
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
45609
53368
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
45610
53369
  CTree *Decls () const { return sons[3]; }
45611
53370
  bool isList () const {
45612
53371
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
45613
53372
  }
 
53373
  /** Replace a son.
 
53374
   *  \param old_son The son to replace.
 
53375
   *  \param new_son The new son. */
45614
53376
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45615
53377
    CTree::ReplaceSon (sons, 5, old_son, new_son);
45616
53378
  }
45617
53379
};
45618
53380
 
45619
53381
 
45620
 
#line 45621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53382
#line 53383 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45621
53383
} // closed Puma
 
53384
class CCExprResolve;
 
53385
class CExprResolve;
45622
53386
class WinIfExists;
45623
53387
class WinImportHandler;
45624
53388
class WinMacros;
45625
 
class CMatchSyntax;
45626
 
class ExtGnu;
 
53389
class WinAsm;
 
53390
class WinDeclSpecs;
 
53391
class WinMemberExplSpec;
 
53392
class WinTypeKeywords;
 
53393
class WinFriend;
45627
53394
class ExtAC;
45628
53395
class ExtACBuilderCoupling;
45629
53396
class ExtACSyntaxCoupling;
45630
53397
class ExtACTree;
45631
53398
class ExtACKeywords;
45632
 
class WinAsm;
45633
 
class WinDeclSpecs;
45634
 
class WinMemberExplSpec;
45635
 
class WinTypeKeywords;
 
53399
class ExtGnu;
45636
53400
class PragmaOnceUnitState;
45637
53401
class PragmaOnce;
45638
 
class CCExprResolve;
45639
 
class CExprResolve;
 
53402
class CMatchSyntax;
45640
53403
namespace Puma {
45641
53404
 
45642
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53405
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45643
53406
class CT_ArgDecl : public CT_Decl, public CSemObject {
45644
 
#line 45645 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53407
#line 53408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
53408
  friend class ::CCExprResolve;
 
53409
  friend class ::CExprResolve;
45645
53410
  friend class ::WinIfExists;
45646
53411
  friend class ::WinImportHandler;
45647
53412
  friend class ::WinMacros;
45648
 
  friend class ::CMatchSyntax;
45649
 
  friend class ::ExtGnu;
 
53413
  friend class ::WinAsm;
 
53414
  friend class ::WinDeclSpecs;
 
53415
  friend class ::WinMemberExplSpec;
 
53416
  friend class ::WinTypeKeywords;
 
53417
  friend class ::WinFriend;
45650
53418
  friend class ::ExtAC;
45651
53419
  friend class ::ExtACBuilderCoupling;
45652
53420
  friend class ::ExtACSyntaxCoupling;
45653
53421
  friend class ::ExtACTree;
45654
53422
  friend class ::ExtACKeywords;
45655
 
  friend class ::WinAsm;
45656
 
  friend class ::WinDeclSpecs;
45657
 
  friend class ::WinMemberExplSpec;
45658
 
  friend class ::WinTypeKeywords;
 
53423
  friend class ::ExtGnu;
45659
53424
  friend class ::PragmaOnceUnitState;
45660
53425
  friend class ::PragmaOnce;
45661
 
  friend class ::CCExprResolve;
45662
 
  friend class ::CExprResolve;
 
53426
  friend class ::CMatchSyntax;
45663
53427
 
45664
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53428
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45665
53429
 
45666
53430
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
45667
53431
 
45668
53432
public:
45669
53433
  CT_ArgDecl (CTree *dsl, CTree *d) {
45670
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
53434
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
53435
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
45671
53436
  }
45672
53437
  CT_ArgDecl (CTree *ellipsis) {
45673
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
53438
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
53439
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
45674
53440
  }
 
53441
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45675
53442
  static const char *NodeId ();
 
53443
  /** Get the name of the node. Can be compared with NodeId(). */
45676
53444
  const char *NodeName () const { return NodeId (); }
 
53445
  /** Get the number of sons. */
45677
53446
  int Sons () const { return CTree::Sons (sons, 4); }
 
53447
  /** Get the n-th son.
 
53448
   *  \param n The index of the son.
 
53449
   *  \return The n-th son or NULL. */
45678
53450
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
45679
53451
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
45680
53452
  CTree *Declarator () const { return sons[1]; }
45681
53453
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
45682
53454
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
45683
53455
  CSemObject *SemObject () const { return (CSemObject*)this; }
45684
 
  void Initializer (CTree *i) { sons[2] = i; }
 
53456
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
53457
  /** Replace a son.
 
53458
   *  \param old_son The son to replace.
 
53459
   *  \param new_son The new son. */
45685
53460
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45686
53461
    CTree::ReplaceSon (sons, 4, old_son, new_son);
45687
53462
  }
45688
53463
};
45689
53464
 
45690
53465
 
45691
 
#line 45692 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53466
#line 53467 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45692
53467
} // closed Puma
 
53468
class CCExprResolve;
 
53469
class CExprResolve;
45693
53470
class WinIfExists;
45694
53471
class WinImportHandler;
45695
53472
class WinMacros;
45696
 
class CMatchSyntax;
45697
 
class ExtGnu;
 
53473
class WinAsm;
 
53474
class WinDeclSpecs;
 
53475
class WinMemberExplSpec;
 
53476
class WinTypeKeywords;
 
53477
class WinFriend;
45698
53478
class ExtAC;
45699
53479
class ExtACBuilderCoupling;
45700
53480
class ExtACSyntaxCoupling;
45701
53481
class ExtACTree;
45702
53482
class ExtACKeywords;
45703
 
class WinAsm;
45704
 
class WinDeclSpecs;
45705
 
class WinMemberExplSpec;
45706
 
class WinTypeKeywords;
 
53483
class ExtGnu;
45707
53484
class PragmaOnceUnitState;
45708
53485
class PragmaOnce;
45709
 
class CCExprResolve;
45710
 
class CExprResolve;
 
53486
class CMatchSyntax;
45711
53487
namespace Puma {
45712
53488
 
45713
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53489
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45714
53490
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
45715
 
#line 45716 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53491
#line 53492 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
53492
  friend class ::CCExprResolve;
 
53493
  friend class ::CExprResolve;
45716
53494
  friend class ::WinIfExists;
45717
53495
  friend class ::WinImportHandler;
45718
53496
  friend class ::WinMacros;
45719
 
  friend class ::CMatchSyntax;
45720
 
  friend class ::ExtGnu;
 
53497
  friend class ::WinAsm;
 
53498
  friend class ::WinDeclSpecs;
 
53499
  friend class ::WinMemberExplSpec;
 
53500
  friend class ::WinTypeKeywords;
 
53501
  friend class ::WinFriend;
45721
53502
  friend class ::ExtAC;
45722
53503
  friend class ::ExtACBuilderCoupling;
45723
53504
  friend class ::ExtACSyntaxCoupling;
45724
53505
  friend class ::ExtACTree;
45725
53506
  friend class ::ExtACKeywords;
45726
 
  friend class ::WinAsm;
45727
 
  friend class ::WinDeclSpecs;
45728
 
  friend class ::WinMemberExplSpec;
45729
 
  friend class ::WinTypeKeywords;
 
53507
  friend class ::ExtGnu;
45730
53508
  friend class ::PragmaOnceUnitState;
45731
53509
  friend class ::PragmaOnce;
45732
 
  friend class ::CCExprResolve;
45733
 
  friend class ::CExprResolve;
 
53510
  friend class ::CMatchSyntax;
45734
53511
 
45735
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53512
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45736
53513
 
45737
53514
public:
45738
53515
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
45739
53516
   CT_DeclList (size, 2) { AddProperties (props); }
 
53517
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45740
53518
  static const char *NodeId ();
 
53519
  /** Get the name of the node. Can be compared with NodeId(). */
45741
53520
  const char *NodeName () const { return NodeId (); }
 
53521
  CSemScope *SemScope () const { return (CSemScope*)this; }
45742
53522
};
45743
53523
 
45744
53524
 
45745
 
#line 45746 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53525
#line 53526 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45746
53526
} // closed Puma
 
53527
class CCExprResolve;
 
53528
class CExprResolve;
45747
53529
class WinIfExists;
45748
53530
class WinImportHandler;
45749
53531
class WinMacros;
45750
 
class CMatchSyntax;
45751
 
class ExtGnu;
 
53532
class WinAsm;
 
53533
class WinDeclSpecs;
 
53534
class WinMemberExplSpec;
 
53535
class WinTypeKeywords;
 
53536
class WinFriend;
45752
53537
class ExtAC;
45753
53538
class ExtACBuilderCoupling;
45754
53539
class ExtACSyntaxCoupling;
45755
53540
class ExtACTree;
45756
53541
class ExtACKeywords;
45757
 
class WinAsm;
45758
 
class WinDeclSpecs;
45759
 
class WinMemberExplSpec;
45760
 
class WinTypeKeywords;
 
53542
class ExtGnu;
45761
53543
class PragmaOnceUnitState;
45762
53544
class PragmaOnce;
45763
 
class CCExprResolve;
45764
 
class CExprResolve;
 
53545
class CMatchSyntax;
45765
53546
namespace Puma {
45766
53547
 
45767
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53548
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45768
53549
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
45769
 
#line 45770 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53550
#line 53551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
53551
  friend class ::CCExprResolve;
 
53552
  friend class ::CExprResolve;
45770
53553
  friend class ::WinIfExists;
45771
53554
  friend class ::WinImportHandler;
45772
53555
  friend class ::WinMacros;
45773
 
  friend class ::CMatchSyntax;
45774
 
  friend class ::ExtGnu;
 
53556
  friend class ::WinAsm;
 
53557
  friend class ::WinDeclSpecs;
 
53558
  friend class ::WinMemberExplSpec;
 
53559
  friend class ::WinTypeKeywords;
 
53560
  friend class ::WinFriend;
45775
53561
  friend class ::ExtAC;
45776
53562
  friend class ::ExtACBuilderCoupling;
45777
53563
  friend class ::ExtACSyntaxCoupling;
45778
53564
  friend class ::ExtACTree;
45779
53565
  friend class ::ExtACKeywords;
45780
 
  friend class ::WinAsm;
45781
 
  friend class ::WinDeclSpecs;
45782
 
  friend class ::WinMemberExplSpec;
45783
 
  friend class ::WinTypeKeywords;
 
53566
  friend class ::ExtGnu;
45784
53567
  friend class ::PragmaOnceUnitState;
45785
53568
  friend class ::PragmaOnce;
45786
 
  friend class ::CCExprResolve;
45787
 
  friend class ::CExprResolve;
 
53569
  friend class ::CMatchSyntax;
45788
53570
 
45789
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53571
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45790
53572
 
45791
53573
public:
45792
53574
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
53575
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45793
53576
  static const char *NodeId ();
 
53577
  /** Get the name of the node. Can be compared with NodeId(). */
45794
53578
  const char *NodeName () const { return NodeId (); }
 
53579
  CSemScope *SemScope () const { return (CSemScope*)this; }
45795
53580
};
45796
53581
 
45797
53582
 
45798
 
#line 45799 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53583
#line 53584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45799
53584
} // closed Puma
 
53585
class CCExprResolve;
 
53586
class CExprResolve;
45800
53587
class WinIfExists;
45801
53588
class WinImportHandler;
45802
53589
class WinMacros;
45803
 
class CMatchSyntax;
45804
 
class ExtGnu;
 
53590
class WinAsm;
 
53591
class WinDeclSpecs;
 
53592
class WinMemberExplSpec;
 
53593
class WinTypeKeywords;
 
53594
class WinFriend;
45805
53595
class ExtAC;
45806
53596
class ExtACBuilderCoupling;
45807
53597
class ExtACSyntaxCoupling;
45808
53598
class ExtACTree;
45809
53599
class ExtACKeywords;
45810
 
class WinAsm;
45811
 
class WinDeclSpecs;
45812
 
class WinMemberExplSpec;
45813
 
class WinTypeKeywords;
 
53600
class ExtGnu;
45814
53601
class PragmaOnceUnitState;
45815
53602
class PragmaOnce;
45816
 
class CCExprResolve;
45817
 
class CExprResolve;
 
53603
class CMatchSyntax;
45818
53604
namespace Puma {
45819
53605
 
45820
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53606
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45821
53607
class CT_ArgNameList : public CT_ArgDeclList {
45822
 
#line 45823 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53608
#line 53609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
53609
  friend class ::CCExprResolve;
 
53610
  friend class ::CExprResolve;
45823
53611
  friend class ::WinIfExists;
45824
53612
  friend class ::WinImportHandler;
45825
53613
  friend class ::WinMacros;
45826
 
  friend class ::CMatchSyntax;
45827
 
  friend class ::ExtGnu;
 
53614
  friend class ::WinAsm;
 
53615
  friend class ::WinDeclSpecs;
 
53616
  friend class ::WinMemberExplSpec;
 
53617
  friend class ::WinTypeKeywords;
 
53618
  friend class ::WinFriend;
45828
53619
  friend class ::ExtAC;
45829
53620
  friend class ::ExtACBuilderCoupling;
45830
53621
  friend class ::ExtACSyntaxCoupling;
45831
53622
  friend class ::ExtACTree;
45832
53623
  friend class ::ExtACKeywords;
45833
 
  friend class ::WinAsm;
45834
 
  friend class ::WinDeclSpecs;
45835
 
  friend class ::WinMemberExplSpec;
45836
 
  friend class ::WinTypeKeywords;
 
53624
  friend class ::ExtGnu;
45837
53625
  friend class ::PragmaOnceUnitState;
45838
53626
  friend class ::PragmaOnce;
45839
 
  friend class ::CCExprResolve;
45840
 
  friend class ::CExprResolve;
 
53627
  friend class ::CMatchSyntax;
45841
53628
 
45842
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53629
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45843
53630
 
45844
53631
public:
45845
53632
  CT_ArgNameList () : CT_ArgDeclList () {}
 
53633
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45846
53634
  static const char *NodeId ();
 
53635
  /** Get the name of the node. Can be compared with NodeId(). */
45847
53636
  const char *NodeName () const { return NodeId (); }
45848
53637
};
45849
53638
 
45850
53639
 
45851
 
#line 45852 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53640
#line 53641 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45852
53641
} // closed Puma
 
53642
class CCExprResolve;
 
53643
class CExprResolve;
45853
53644
class WinIfExists;
45854
53645
class WinImportHandler;
45855
53646
class WinMacros;
45856
 
class CMatchSyntax;
45857
 
class ExtGnu;
 
53647
class WinAsm;
 
53648
class WinDeclSpecs;
 
53649
class WinMemberExplSpec;
 
53650
class WinTypeKeywords;
 
53651
class WinFriend;
45858
53652
class ExtAC;
45859
53653
class ExtACBuilderCoupling;
45860
53654
class ExtACSyntaxCoupling;
45861
53655
class ExtACTree;
45862
53656
class ExtACKeywords;
45863
 
class WinAsm;
45864
 
class WinDeclSpecs;
45865
 
class WinMemberExplSpec;
45866
 
class WinTypeKeywords;
 
53657
class ExtGnu;
45867
53658
class PragmaOnceUnitState;
45868
53659
class PragmaOnce;
45869
 
class CCExprResolve;
45870
 
class CExprResolve;
 
53660
class CMatchSyntax;
45871
53661
namespace Puma {
45872
53662
 
45873
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53663
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45874
53664
class CT_NamespaceDef : public CT_Decl, public CSemObject {
45875
 
#line 45876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53665
#line 53666 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
53666
  friend class ::CCExprResolve;
 
53667
  friend class ::CExprResolve;
45876
53668
  friend class ::WinIfExists;
45877
53669
  friend class ::WinImportHandler;
45878
53670
  friend class ::WinMacros;
45879
 
  friend class ::CMatchSyntax;
45880
 
  friend class ::ExtGnu;
 
53671
  friend class ::WinAsm;
 
53672
  friend class ::WinDeclSpecs;
 
53673
  friend class ::WinMemberExplSpec;
 
53674
  friend class ::WinTypeKeywords;
 
53675
  friend class ::WinFriend;
45881
53676
  friend class ::ExtAC;
45882
53677
  friend class ::ExtACBuilderCoupling;
45883
53678
  friend class ::ExtACSyntaxCoupling;
45884
53679
  friend class ::ExtACTree;
45885
53680
  friend class ::ExtACKeywords;
45886
 
  friend class ::WinAsm;
45887
 
  friend class ::WinDeclSpecs;
45888
 
  friend class ::WinMemberExplSpec;
45889
 
  friend class ::WinTypeKeywords;
 
53681
  friend class ::ExtGnu;
45890
53682
  friend class ::PragmaOnceUnitState;
45891
53683
  friend class ::PragmaOnce;
45892
 
  friend class ::CCExprResolve;
45893
 
  friend class ::CExprResolve;
 
53684
  friend class ::CMatchSyntax;
45894
53685
 
45895
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53686
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45896
53687
 
45897
53688
  CTree *sons[3]; // ns, name, members
45898
53689
 
45899
53690
public:
45900
53691
  CT_NamespaceDef (CTree *n, CTree *nm) {
45901
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
53692
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
45902
53693
  }
45903
53694
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
45904
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
53695
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
45905
53696
  }
 
53697
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45906
53698
  static const char *NodeId ();
 
53699
  /** Get the name of the node. Can be compared with NodeId(). */
45907
53700
  const char *NodeName () const { return NodeId (); }
 
53701
  /** Get the number of sons. */
45908
53702
  int Sons () const { return CTree::Sons (sons, 3); }
 
53703
  /** Get the n-th son.
 
53704
   *  \param n The index of the son.
 
53705
   *  \return The n-th son or NULL. */
45909
53706
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
45910
 
  void Members (CTree *m) { sons[2] = m; }
 
53707
  void Members (CTree *m) { AddSon (sons[2], m); }
45911
53708
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
45912
53709
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
45913
53710
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
53711
  /** Replace a son.
 
53712
   *  \param old_son The son to replace.
 
53713
   *  \param new_son The new son. */
45914
53714
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45915
53715
    CTree::ReplaceSon (sons, 3, old_son, new_son);
45916
53716
  }
45917
53717
};
45918
53718
 
45919
53719
 
45920
 
#line 45921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53720
#line 53721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45921
53721
} // closed Puma
 
53722
class CCExprResolve;
 
53723
class CExprResolve;
45922
53724
class WinIfExists;
45923
53725
class WinImportHandler;
45924
53726
class WinMacros;
45925
 
class CMatchSyntax;
45926
 
class ExtGnu;
 
53727
class WinAsm;
 
53728
class WinDeclSpecs;
 
53729
class WinMemberExplSpec;
 
53730
class WinTypeKeywords;
 
53731
class WinFriend;
45927
53732
class ExtAC;
45928
53733
class ExtACBuilderCoupling;
45929
53734
class ExtACSyntaxCoupling;
45930
53735
class ExtACTree;
45931
53736
class ExtACKeywords;
45932
 
class WinAsm;
45933
 
class WinDeclSpecs;
45934
 
class WinMemberExplSpec;
45935
 
class WinTypeKeywords;
 
53737
class ExtGnu;
45936
53738
class PragmaOnceUnitState;
45937
53739
class PragmaOnce;
45938
 
class CCExprResolve;
45939
 
class CExprResolve;
 
53740
class CMatchSyntax;
45940
53741
namespace Puma {
45941
53742
 
45942
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53743
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45943
53744
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
45944
 
#line 45945 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53745
#line 53746 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
53746
  friend class ::CCExprResolve;
 
53747
  friend class ::CExprResolve;
45945
53748
  friend class ::WinIfExists;
45946
53749
  friend class ::WinImportHandler;
45947
53750
  friend class ::WinMacros;
45948
 
  friend class ::CMatchSyntax;
45949
 
  friend class ::ExtGnu;
 
53751
  friend class ::WinAsm;
 
53752
  friend class ::WinDeclSpecs;
 
53753
  friend class ::WinMemberExplSpec;
 
53754
  friend class ::WinTypeKeywords;
 
53755
  friend class ::WinFriend;
45950
53756
  friend class ::ExtAC;
45951
53757
  friend class ::ExtACBuilderCoupling;
45952
53758
  friend class ::ExtACSyntaxCoupling;
45953
53759
  friend class ::ExtACTree;
45954
53760
  friend class ::ExtACKeywords;
45955
 
  friend class ::WinAsm;
45956
 
  friend class ::WinDeclSpecs;
45957
 
  friend class ::WinMemberExplSpec;
45958
 
  friend class ::WinTypeKeywords;
 
53761
  friend class ::ExtGnu;
45959
53762
  friend class ::PragmaOnceUnitState;
45960
53763
  friend class ::PragmaOnce;
45961
 
  friend class ::CCExprResolve;
45962
 
  friend class ::CExprResolve;
 
53764
  friend class ::CMatchSyntax;
45963
53765
 
45964
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53766
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
45965
53767
 
45966
53768
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
45967
53769
 
45968
53770
public:
45969
53771
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
45970
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
53772
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
53773
    AddSon (sons[3], nm); AddSon (sons[4], s); 
45971
53774
  }
 
53775
  /** Get the identifier for this node type. Can be compared with NodeName(). */
45972
53776
  static const char *NodeId ();
 
53777
  /** Get the name of the node. Can be compared with NodeId(). */
45973
53778
  const char *NodeName () const { return NodeId (); }
 
53779
  /** Get the number of sons. */
45974
53780
  int Sons () const { return 5; }
 
53781
  /** Get the n-th son.
 
53782
   *  \param n The index of the son.
 
53783
   *  \return The n-th son or NULL. */
45975
53784
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
45976
53785
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
45977
53786
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
45978
53787
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
53788
  /** Replace a son.
 
53789
   *  \param old_son The son to replace.
 
53790
   *  \param new_son The new son. */
45979
53791
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
45980
53792
    CTree::ReplaceSon (sons, 5, old_son, new_son);
45981
53793
  }
45982
53794
};
45983
53795
 
45984
53796
 
45985
 
#line 45986 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53797
#line 53798 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
45986
53798
} // closed Puma
 
53799
class CCExprResolve;
 
53800
class CExprResolve;
45987
53801
class WinIfExists;
45988
53802
class WinImportHandler;
45989
53803
class WinMacros;
45990
 
class CMatchSyntax;
45991
 
class ExtGnu;
 
53804
class WinAsm;
 
53805
class WinDeclSpecs;
 
53806
class WinMemberExplSpec;
 
53807
class WinTypeKeywords;
 
53808
class WinFriend;
45992
53809
class ExtAC;
45993
53810
class ExtACBuilderCoupling;
45994
53811
class ExtACSyntaxCoupling;
45995
53812
class ExtACTree;
45996
53813
class ExtACKeywords;
45997
 
class WinAsm;
45998
 
class WinDeclSpecs;
45999
 
class WinMemberExplSpec;
46000
 
class WinTypeKeywords;
 
53814
class ExtGnu;
46001
53815
class PragmaOnceUnitState;
46002
53816
class PragmaOnce;
46003
 
class CCExprResolve;
46004
 
class CExprResolve;
 
53817
class CMatchSyntax;
46005
53818
namespace Puma {
46006
53819
 
46007
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53820
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46008
53821
class CT_UsingDirective : public CT_Decl {
46009
 
#line 46010 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53822
#line 53823 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
53823
  friend class ::CCExprResolve;
 
53824
  friend class ::CExprResolve;
46010
53825
  friend class ::WinIfExists;
46011
53826
  friend class ::WinImportHandler;
46012
53827
  friend class ::WinMacros;
46013
 
  friend class ::CMatchSyntax;
46014
 
  friend class ::ExtGnu;
 
53828
  friend class ::WinAsm;
 
53829
  friend class ::WinDeclSpecs;
 
53830
  friend class ::WinMemberExplSpec;
 
53831
  friend class ::WinTypeKeywords;
 
53832
  friend class ::WinFriend;
46015
53833
  friend class ::ExtAC;
46016
53834
  friend class ::ExtACBuilderCoupling;
46017
53835
  friend class ::ExtACSyntaxCoupling;
46018
53836
  friend class ::ExtACTree;
46019
53837
  friend class ::ExtACKeywords;
46020
 
  friend class ::WinAsm;
46021
 
  friend class ::WinDeclSpecs;
46022
 
  friend class ::WinMemberExplSpec;
46023
 
  friend class ::WinTypeKeywords;
 
53838
  friend class ::ExtGnu;
46024
53839
  friend class ::PragmaOnceUnitState;
46025
53840
  friend class ::PragmaOnce;
46026
 
  friend class ::CCExprResolve;
46027
 
  friend class ::CExprResolve;
 
53841
  friend class ::CMatchSyntax;
46028
53842
 
46029
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53843
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46030
53844
 
46031
53845
  CTree *sons[4]; // using, ns, name, semi_colon
46032
53846
 
46033
53847
public:
46034
53848
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
46035
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
53849
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
53850
    AddSon (sons[3], s); 
46036
53851
  }
 
53852
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46037
53853
  static const char *NodeId ();
 
53854
  /** Get the name of the node. Can be compared with NodeId(). */
46038
53855
  const char *NodeName () const { return NodeId (); }
 
53856
  /** Get the number of sons. */
46039
53857
  int Sons () const { return 4; }
 
53858
  /** Get the n-th son.
 
53859
   *  \param n The index of the son.
 
53860
   *  \return The n-th son or NULL. */
46040
53861
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
46041
53862
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
53863
  /** Replace a son.
 
53864
   *  \param old_son The son to replace.
 
53865
   *  \param new_son The new son. */
46042
53866
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46043
53867
    CTree::ReplaceSon (sons, 4, old_son, new_son);
46044
53868
  }
46051
53875
/*****************************************************************************/
46052
53876
 
46053
53877
 
46054
 
#line 46055 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53878
#line 53879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46055
53879
} // closed Puma
 
53880
class CCExprResolve;
 
53881
class CExprResolve;
46056
53882
class WinIfExists;
46057
53883
class WinImportHandler;
46058
53884
class WinMacros;
46059
 
class CMatchSyntax;
46060
 
class ExtGnu;
 
53885
class WinAsm;
 
53886
class WinDeclSpecs;
 
53887
class WinMemberExplSpec;
 
53888
class WinTypeKeywords;
 
53889
class WinFriend;
46061
53890
class ExtAC;
46062
53891
class ExtACBuilderCoupling;
46063
53892
class ExtACSyntaxCoupling;
46064
53893
class ExtACTree;
46065
53894
class ExtACKeywords;
46066
 
class WinAsm;
46067
 
class WinDeclSpecs;
46068
 
class WinMemberExplSpec;
46069
 
class WinTypeKeywords;
 
53895
class ExtGnu;
46070
53896
class PragmaOnceUnitState;
46071
53897
class PragmaOnce;
46072
 
class CCExprResolve;
46073
 
class CExprResolve;
 
53898
class CMatchSyntax;
46074
53899
namespace Puma {
46075
53900
 
46076
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53901
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46077
53902
class CT_Declarator : public CTree {
46078
 
#line 46079 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53903
#line 53904 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
53904
  friend class ::CCExprResolve;
 
53905
  friend class ::CExprResolve;
46079
53906
  friend class ::WinIfExists;
46080
53907
  friend class ::WinImportHandler;
46081
53908
  friend class ::WinMacros;
46082
 
  friend class ::CMatchSyntax;
46083
 
  friend class ::ExtGnu;
 
53909
  friend class ::WinAsm;
 
53910
  friend class ::WinDeclSpecs;
 
53911
  friend class ::WinMemberExplSpec;
 
53912
  friend class ::WinTypeKeywords;
 
53913
  friend class ::WinFriend;
46084
53914
  friend class ::ExtAC;
46085
53915
  friend class ::ExtACBuilderCoupling;
46086
53916
  friend class ::ExtACSyntaxCoupling;
46087
53917
  friend class ::ExtACTree;
46088
53918
  friend class ::ExtACKeywords;
46089
 
  friend class ::WinAsm;
46090
 
  friend class ::WinDeclSpecs;
46091
 
  friend class ::WinMemberExplSpec;
46092
 
  friend class ::WinTypeKeywords;
 
53919
  friend class ::ExtGnu;
46093
53920
  friend class ::PragmaOnceUnitState;
46094
53921
  friend class ::PragmaOnce;
46095
 
  friend class ::CCExprResolve;
46096
 
  friend class ::CExprResolve;
 
53922
  friend class ::CMatchSyntax;
46097
53923
 
46098
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53924
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46099
53925
 
46100
53926
protected:
46101
53927
  CT_Declarator () {}
46110
53936
};
46111
53937
 
46112
53938
 
46113
 
#line 46114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53939
#line 53940 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46114
53940
} // closed Puma
 
53941
class CCExprResolve;
 
53942
class CExprResolve;
46115
53943
class WinIfExists;
46116
53944
class WinImportHandler;
46117
53945
class WinMacros;
46118
 
class CMatchSyntax;
46119
 
class ExtGnu;
 
53946
class WinAsm;
 
53947
class WinDeclSpecs;
 
53948
class WinMemberExplSpec;
 
53949
class WinTypeKeywords;
 
53950
class WinFriend;
46120
53951
class ExtAC;
46121
53952
class ExtACBuilderCoupling;
46122
53953
class ExtACSyntaxCoupling;
46123
53954
class ExtACTree;
46124
53955
class ExtACKeywords;
46125
 
class WinAsm;
46126
 
class WinDeclSpecs;
46127
 
class WinMemberExplSpec;
46128
 
class WinTypeKeywords;
 
53956
class ExtGnu;
46129
53957
class PragmaOnceUnitState;
46130
53958
class PragmaOnce;
46131
 
class CCExprResolve;
46132
 
class CExprResolve;
 
53959
class CMatchSyntax;
46133
53960
namespace Puma {
46134
53961
 
46135
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53962
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46136
53963
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
46137
 
#line 46138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
53964
#line 53965 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
53965
  friend class ::CCExprResolve;
 
53966
  friend class ::CExprResolve;
46138
53967
  friend class ::WinIfExists;
46139
53968
  friend class ::WinImportHandler;
46140
53969
  friend class ::WinMacros;
46141
 
  friend class ::CMatchSyntax;
46142
 
  friend class ::ExtGnu;
 
53970
  friend class ::WinAsm;
 
53971
  friend class ::WinDeclSpecs;
 
53972
  friend class ::WinMemberExplSpec;
 
53973
  friend class ::WinTypeKeywords;
 
53974
  friend class ::WinFriend;
46143
53975
  friend class ::ExtAC;
46144
53976
  friend class ::ExtACBuilderCoupling;
46145
53977
  friend class ::ExtACSyntaxCoupling;
46146
53978
  friend class ::ExtACTree;
46147
53979
  friend class ::ExtACKeywords;
46148
 
  friend class ::WinAsm;
46149
 
  friend class ::WinDeclSpecs;
46150
 
  friend class ::WinMemberExplSpec;
46151
 
  friend class ::WinTypeKeywords;
 
53980
  friend class ::ExtGnu;
46152
53981
  friend class ::PragmaOnceUnitState;
46153
53982
  friend class ::PragmaOnce;
46154
 
  friend class ::CCExprResolve;
46155
 
  friend class ::CExprResolve;
46156
 
 
46157
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
46158
 
 
46159
 
  CTree *sons[2]; // declarator, init
 
53983
  friend class ::CMatchSyntax;
 
53984
 
 
53985
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
53986
 
 
53987
  CTree *sons[3]; // declarator, ext, init
46160
53988
  CTree *obj_decl;
46161
53989
 
46162
53990
public:
46163
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
46164
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
53991
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
53992
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
53993
    AddSon (obj_decl, 0); 
46165
53994
  }
 
53995
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46166
53996
  static const char *NodeId ();
 
53997
  /** Get the name of the node. Can be compared with NodeId(). */
46167
53998
  const char *NodeName () const { return NodeId (); }
46168
 
  int Sons () const { return CTree::Sons (sons, 2); }
46169
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
53999
  /** Get the number of sons. */
 
54000
  int Sons () const { return CTree::Sons (sons, 3); }
 
54001
  /** Get the n-th son.
 
54002
   *  \param n The index of the son.
 
54003
   *  \return The n-th son or NULL. */
 
54004
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
46170
54005
  CTree *Declarator () const { return sons[0]; }
46171
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
54006
  CTree *Extension () const { return sons[1]; }
 
54007
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
46172
54008
  CSemObject *SemObject () const { return (CSemObject*)this; }
46173
54009
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
46174
 
  void Initializer (CTree* i) { sons[1] = i; }
46175
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
54010
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
54011
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
54012
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
54013
  /** Replace a son.
 
54014
   *  \param old_son The son to replace.
 
54015
   *  \param new_son The new son. */
46176
54016
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46177
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
54017
    CTree::ReplaceSon (sons, 3, old_son, new_son);
46178
54018
  }
46179
54019
};
46180
54020
 
46181
54021
 
46182
 
#line 46183 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54022
#line 54023 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46183
54023
} // closed Puma
 
54024
class CCExprResolve;
 
54025
class CExprResolve;
46184
54026
class WinIfExists;
46185
54027
class WinImportHandler;
46186
54028
class WinMacros;
46187
 
class CMatchSyntax;
46188
 
class ExtGnu;
 
54029
class WinAsm;
 
54030
class WinDeclSpecs;
 
54031
class WinMemberExplSpec;
 
54032
class WinTypeKeywords;
 
54033
class WinFriend;
46189
54034
class ExtAC;
46190
54035
class ExtACBuilderCoupling;
46191
54036
class ExtACSyntaxCoupling;
46192
54037
class ExtACTree;
46193
54038
class ExtACKeywords;
46194
 
class WinAsm;
46195
 
class WinDeclSpecs;
46196
 
class WinMemberExplSpec;
46197
 
class WinTypeKeywords;
 
54039
class ExtGnu;
46198
54040
class PragmaOnceUnitState;
46199
54041
class PragmaOnce;
46200
 
class CCExprResolve;
46201
 
class CExprResolve;
 
54042
class CMatchSyntax;
46202
54043
namespace Puma {
46203
54044
 
46204
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54045
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46205
54046
class CT_BracedDeclarator : public CT_Declarator {
46206
 
#line 46207 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54047
#line 54048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
54048
  friend class ::CCExprResolve;
 
54049
  friend class ::CExprResolve;
46207
54050
  friend class ::WinIfExists;
46208
54051
  friend class ::WinImportHandler;
46209
54052
  friend class ::WinMacros;
46210
 
  friend class ::CMatchSyntax;
46211
 
  friend class ::ExtGnu;
 
54053
  friend class ::WinAsm;
 
54054
  friend class ::WinDeclSpecs;
 
54055
  friend class ::WinMemberExplSpec;
 
54056
  friend class ::WinTypeKeywords;
 
54057
  friend class ::WinFriend;
46212
54058
  friend class ::ExtAC;
46213
54059
  friend class ::ExtACBuilderCoupling;
46214
54060
  friend class ::ExtACSyntaxCoupling;
46215
54061
  friend class ::ExtACTree;
46216
54062
  friend class ::ExtACKeywords;
46217
 
  friend class ::WinAsm;
46218
 
  friend class ::WinDeclSpecs;
46219
 
  friend class ::WinMemberExplSpec;
46220
 
  friend class ::WinTypeKeywords;
 
54063
  friend class ::ExtGnu;
46221
54064
  friend class ::PragmaOnceUnitState;
46222
54065
  friend class ::PragmaOnce;
46223
 
  friend class ::CCExprResolve;
46224
 
  friend class ::CExprResolve;
 
54066
  friend class ::CMatchSyntax;
46225
54067
 
46226
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54068
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46227
54069
 
46228
54070
  CTree *sons[4]; // open, win_specs, declarator, close
46229
54071
 
46230
54072
public:
46231
54073
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
46232
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
54074
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
54075
    AddSon (sons[2], d); AddSon (sons[3], c); 
46233
54076
  }
46234
54077
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
46235
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
54078
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
54079
    AddSon (sons[2], d); AddSon (sons[3], c); 
46236
54080
  }
 
54081
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46237
54082
  static const char *NodeId ();
 
54083
  /** Get the name of the node. Can be compared with NodeId(). */
46238
54084
  const char *NodeName () const { return NodeId (); }
 
54085
  /** Get the number of sons. */
46239
54086
  int Sons () const { return CTree::Sons (sons, 4); }
 
54087
  /** Get the n-th son.
 
54088
   *  \param n The index of the son.
 
54089
   *  \return The n-th son or NULL. */
46240
54090
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
46241
54091
  CTree *Declarator () const { return sons[2]; }
 
54092
  /** Replace a son.
 
54093
   *  \param old_son The son to replace.
 
54094
   *  \param new_son The new son. */
46242
54095
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46243
54096
    CTree::ReplaceSon (sons, 4, old_son, new_son);
46244
54097
  }
46245
54098
};
46246
54099
 
46247
54100
 
46248
 
#line 46249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54101
#line 54102 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46249
54102
} // closed Puma
 
54103
class CCExprResolve;
 
54104
class CExprResolve;
46250
54105
class WinIfExists;
46251
54106
class WinImportHandler;
46252
54107
class WinMacros;
46253
 
class CMatchSyntax;
46254
 
class ExtGnu;
 
54108
class WinAsm;
 
54109
class WinDeclSpecs;
 
54110
class WinMemberExplSpec;
 
54111
class WinTypeKeywords;
 
54112
class WinFriend;
46255
54113
class ExtAC;
46256
54114
class ExtACBuilderCoupling;
46257
54115
class ExtACSyntaxCoupling;
46258
54116
class ExtACTree;
46259
54117
class ExtACKeywords;
46260
 
class WinAsm;
46261
 
class WinDeclSpecs;
46262
 
class WinMemberExplSpec;
46263
 
class WinTypeKeywords;
 
54118
class ExtGnu;
46264
54119
class PragmaOnceUnitState;
46265
54120
class PragmaOnce;
46266
 
class CCExprResolve;
46267
 
class CExprResolve;
 
54121
class CMatchSyntax;
46268
54122
namespace Puma {
46269
54123
 
46270
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54124
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46271
54125
class CT_ArrayDelimiter : public CTree {
46272
 
#line 46273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54126
#line 54127 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
54127
  friend class ::CCExprResolve;
 
54128
  friend class ::CExprResolve;
46273
54129
  friend class ::WinIfExists;
46274
54130
  friend class ::WinImportHandler;
46275
54131
  friend class ::WinMacros;
46276
 
  friend class ::CMatchSyntax;
46277
 
  friend class ::ExtGnu;
 
54132
  friend class ::WinAsm;
 
54133
  friend class ::WinDeclSpecs;
 
54134
  friend class ::WinMemberExplSpec;
 
54135
  friend class ::WinTypeKeywords;
 
54136
  friend class ::WinFriend;
46278
54137
  friend class ::ExtAC;
46279
54138
  friend class ::ExtACBuilderCoupling;
46280
54139
  friend class ::ExtACSyntaxCoupling;
46281
54140
  friend class ::ExtACTree;
46282
54141
  friend class ::ExtACKeywords;
46283
 
  friend class ::WinAsm;
46284
 
  friend class ::WinDeclSpecs;
46285
 
  friend class ::WinMemberExplSpec;
46286
 
  friend class ::WinTypeKeywords;
 
54142
  friend class ::ExtGnu;
46287
54143
  friend class ::PragmaOnceUnitState;
46288
54144
  friend class ::PragmaOnce;
46289
 
  friend class ::CCExprResolve;
46290
 
  friend class ::CExprResolve;
 
54145
  friend class ::CMatchSyntax;
46291
54146
 
46292
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54147
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46293
54148
 
46294
54149
  CTree *sons[4]; // star, static, quals, expr
46295
54150
  bool pos0;
46296
54151
 
46297
54152
public:
46298
54153
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
46299
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
54154
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
54155
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
46300
54156
  }
 
54157
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46301
54158
  static const char *NodeId ();
 
54159
  /** Get the name of the node. Can be compared with NodeId(). */
46302
54160
  const char *NodeName () const { return NodeId (); }
 
54161
  /** Get the number of sons. */
46303
54162
  int Sons () const { return CTree::Sons (sons, 4); }
 
54163
  /** Get the n-th son.
 
54164
   *  \param n The index of the son.
 
54165
   *  \return The n-th son or NULL. */
46304
54166
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
46305
54167
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
46306
54168
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
46307
54169
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
46308
54170
  CTree *Expr () const { return sons[3]; }
 
54171
  /** Replace a son.
 
54172
   *  \param old_son The son to replace.
 
54173
   *  \param new_son The new son. */
46309
54174
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46310
54175
    CTree::ReplaceSon (sons, 4, old_son, new_son);
46311
54176
  }
46312
54177
};
46313
54178
 
46314
54179
 
46315
 
#line 46316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54180
#line 54181 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46316
54181
} // closed Puma
 
54182
class CCExprResolve;
 
54183
class CExprResolve;
46317
54184
class WinIfExists;
46318
54185
class WinImportHandler;
46319
54186
class WinMacros;
46320
 
class CMatchSyntax;
46321
 
class ExtGnu;
 
54187
class WinAsm;
 
54188
class WinDeclSpecs;
 
54189
class WinMemberExplSpec;
 
54190
class WinTypeKeywords;
 
54191
class WinFriend;
46322
54192
class ExtAC;
46323
54193
class ExtACBuilderCoupling;
46324
54194
class ExtACSyntaxCoupling;
46325
54195
class ExtACTree;
46326
54196
class ExtACKeywords;
46327
 
class WinAsm;
46328
 
class WinDeclSpecs;
46329
 
class WinMemberExplSpec;
46330
 
class WinTypeKeywords;
 
54197
class ExtGnu;
46331
54198
class PragmaOnceUnitState;
46332
54199
class PragmaOnce;
46333
 
class CCExprResolve;
46334
 
class CExprResolve;
 
54200
class CMatchSyntax;
46335
54201
namespace Puma {
46336
54202
 
46337
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54203
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46338
54204
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
46339
 
#line 46340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54205
#line 54206 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
54206
  friend class ::CCExprResolve;
 
54207
  friend class ::CExprResolve;
46340
54208
  friend class ::WinIfExists;
46341
54209
  friend class ::WinImportHandler;
46342
54210
  friend class ::WinMacros;
46343
 
  friend class ::CMatchSyntax;
46344
 
  friend class ::ExtGnu;
 
54211
  friend class ::WinAsm;
 
54212
  friend class ::WinDeclSpecs;
 
54213
  friend class ::WinMemberExplSpec;
 
54214
  friend class ::WinTypeKeywords;
 
54215
  friend class ::WinFriend;
46345
54216
  friend class ::ExtAC;
46346
54217
  friend class ::ExtACBuilderCoupling;
46347
54218
  friend class ::ExtACSyntaxCoupling;
46348
54219
  friend class ::ExtACTree;
46349
54220
  friend class ::ExtACKeywords;
46350
 
  friend class ::WinAsm;
46351
 
  friend class ::WinDeclSpecs;
46352
 
  friend class ::WinMemberExplSpec;
46353
 
  friend class ::WinTypeKeywords;
 
54221
  friend class ::ExtGnu;
46354
54222
  friend class ::PragmaOnceUnitState;
46355
54223
  friend class ::PragmaOnce;
46356
 
  friend class ::CCExprResolve;
46357
 
  friend class ::CExprResolve;
 
54224
  friend class ::CMatchSyntax;
46358
54225
 
46359
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54226
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46360
54227
 
46361
54228
  CTree *sons[4]; // declarator, open, delim, close
46362
54229
 
46363
54230
public:
46364
54231
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
46365
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
54232
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
54233
    AddSon (sons[2], ad); AddSon (sons[3], c); 
46366
54234
  }
 
54235
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46367
54236
  static const char *NodeId ();
 
54237
  /** Get the name of the node. Can be compared with NodeId(). */
46368
54238
  const char *NodeName () const { return NodeId (); }
 
54239
  /** Get the number of sons. */
46369
54240
  int Sons () const { return 4; }
 
54241
  /** Get the n-th son.
 
54242
   *  \param n The index of the son.
 
54243
   *  \return The n-th son or NULL. */
46370
54244
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
46371
54245
  CTree *Declarator () const { return sons[0]; }
46372
54246
  CT_ArrayDelimiter *Delimiter () const 
46373
54247
   { return (CT_ArrayDelimiter*)sons[2]; }
 
54248
  /** Replace a son.
 
54249
   *  \param old_son The son to replace.
 
54250
   *  \param new_son The new son. */
46374
54251
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46375
54252
    CTree::ReplaceSon (sons, 4, old_son, new_son);
46376
54253
  }
46380
54257
};
46381
54258
 
46382
54259
 
46383
 
#line 46384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54260
#line 54261 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46384
54261
} // closed Puma
 
54262
class CCExprResolve;
 
54263
class CExprResolve;
46385
54264
class WinIfExists;
46386
54265
class WinImportHandler;
46387
54266
class WinMacros;
46388
 
class CMatchSyntax;
46389
 
class ExtGnu;
 
54267
class WinAsm;
 
54268
class WinDeclSpecs;
 
54269
class WinMemberExplSpec;
 
54270
class WinTypeKeywords;
 
54271
class WinFriend;
46390
54272
class ExtAC;
46391
54273
class ExtACBuilderCoupling;
46392
54274
class ExtACSyntaxCoupling;
46393
54275
class ExtACTree;
46394
54276
class ExtACKeywords;
46395
 
class WinAsm;
46396
 
class WinDeclSpecs;
46397
 
class WinMemberExplSpec;
46398
 
class WinTypeKeywords;
 
54277
class ExtGnu;
46399
54278
class PragmaOnceUnitState;
46400
54279
class PragmaOnce;
46401
 
class CCExprResolve;
46402
 
class CExprResolve;
 
54280
class CMatchSyntax;
46403
54281
namespace Puma {
46404
54282
 
46405
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54283
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46406
54284
class CT_FctDeclarator : public CT_Declarator {
46407
 
#line 46408 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54285
#line 54286 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
54286
  friend class ::CCExprResolve;
 
54287
  friend class ::CExprResolve;
46408
54288
  friend class ::WinIfExists;
46409
54289
  friend class ::WinImportHandler;
46410
54290
  friend class ::WinMacros;
46411
 
  friend class ::CMatchSyntax;
46412
 
  friend class ::ExtGnu;
 
54291
  friend class ::WinAsm;
 
54292
  friend class ::WinDeclSpecs;
 
54293
  friend class ::WinMemberExplSpec;
 
54294
  friend class ::WinTypeKeywords;
 
54295
  friend class ::WinFriend;
46413
54296
  friend class ::ExtAC;
46414
54297
  friend class ::ExtACBuilderCoupling;
46415
54298
  friend class ::ExtACSyntaxCoupling;
46416
54299
  friend class ::ExtACTree;
46417
54300
  friend class ::ExtACKeywords;
46418
 
  friend class ::WinAsm;
46419
 
  friend class ::WinDeclSpecs;
46420
 
  friend class ::WinMemberExplSpec;
46421
 
  friend class ::WinTypeKeywords;
 
54301
  friend class ::ExtGnu;
46422
54302
  friend class ::PragmaOnceUnitState;
46423
54303
  friend class ::PragmaOnce;
46424
 
  friend class ::CCExprResolve;
46425
 
  friend class ::CExprResolve;
 
54304
  friend class ::CMatchSyntax;
46426
54305
 
46427
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54306
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46428
54307
 
46429
54308
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
46430
54309
 
46431
54310
public:
46432
54311
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
46433
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
54312
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
54313
    AddSon (sons[2], cv); AddSon (sons[3], es); 
46434
54314
  }
 
54315
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46435
54316
  static const char *NodeId ();
 
54317
  /** Get the name of the node. Can be compared with NodeId(). */
46436
54318
  const char *NodeName () const { return NodeId (); }
 
54319
  /** Get the number of sons. */
46437
54320
  int Sons () const { return CTree::Sons (sons, 4); }
 
54321
  /** Get the n-th son.
 
54322
   *  \param n The index of the son.
 
54323
   *  \return The n-th son or NULL. */
46438
54324
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
46439
54325
  CTree *Declarator () const { return sons[0]; }
46440
54326
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
46441
54327
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
46442
54328
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
54329
  /** Replace a son.
 
54330
   *  \param old_son The son to replace.
 
54331
   *  \param new_son The new son. */
46443
54332
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46444
54333
    CTree::ReplaceSon (sons, 4, old_son, new_son);
46445
54334
  }
46446
54335
};
46447
54336
 
46448
54337
 
46449
 
#line 46450 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54338
#line 54339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46450
54339
} // closed Puma
 
54340
class CCExprResolve;
 
54341
class CExprResolve;
46451
54342
class WinIfExists;
46452
54343
class WinImportHandler;
46453
54344
class WinMacros;
46454
 
class CMatchSyntax;
46455
 
class ExtGnu;
 
54345
class WinAsm;
 
54346
class WinDeclSpecs;
 
54347
class WinMemberExplSpec;
 
54348
class WinTypeKeywords;
 
54349
class WinFriend;
46456
54350
class ExtAC;
46457
54351
class ExtACBuilderCoupling;
46458
54352
class ExtACSyntaxCoupling;
46459
54353
class ExtACTree;
46460
54354
class ExtACKeywords;
46461
 
class WinAsm;
46462
 
class WinDeclSpecs;
46463
 
class WinMemberExplSpec;
46464
 
class WinTypeKeywords;
 
54355
class ExtGnu;
46465
54356
class PragmaOnceUnitState;
46466
54357
class PragmaOnce;
46467
 
class CCExprResolve;
46468
 
class CExprResolve;
 
54358
class CMatchSyntax;
46469
54359
namespace Puma {
46470
54360
 
46471
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54361
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46472
54362
class CT_RefDeclarator : public CT_Declarator {
46473
 
#line 46474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54363
#line 54364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
54364
  friend class ::CCExprResolve;
 
54365
  friend class ::CExprResolve;
46474
54366
  friend class ::WinIfExists;
46475
54367
  friend class ::WinImportHandler;
46476
54368
  friend class ::WinMacros;
46477
 
  friend class ::CMatchSyntax;
46478
 
  friend class ::ExtGnu;
 
54369
  friend class ::WinAsm;
 
54370
  friend class ::WinDeclSpecs;
 
54371
  friend class ::WinMemberExplSpec;
 
54372
  friend class ::WinTypeKeywords;
 
54373
  friend class ::WinFriend;
46479
54374
  friend class ::ExtAC;
46480
54375
  friend class ::ExtACBuilderCoupling;
46481
54376
  friend class ::ExtACSyntaxCoupling;
46482
54377
  friend class ::ExtACTree;
46483
54378
  friend class ::ExtACKeywords;
46484
 
  friend class ::WinAsm;
46485
 
  friend class ::WinDeclSpecs;
46486
 
  friend class ::WinMemberExplSpec;
46487
 
  friend class ::WinTypeKeywords;
 
54379
  friend class ::ExtGnu;
46488
54380
  friend class ::PragmaOnceUnitState;
46489
54381
  friend class ::PragmaOnce;
46490
 
  friend class ::CCExprResolve;
46491
 
  friend class ::CExprResolve;
 
54382
  friend class ::CMatchSyntax;
46492
54383
 
46493
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54384
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46494
54385
 
46495
54386
  CTree *sons[2]; // ref, declarator
46496
54387
 
46497
54388
public:
46498
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
54389
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
54390
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46499
54391
  static const char *NodeId ();
 
54392
  /** Get the name of the node. Can be compared with NodeId(). */
46500
54393
  const char *NodeName () const { return NodeId (); }
 
54394
  /** Get the number of sons. */
46501
54395
  int Sons () const { return 2; }
 
54396
  /** Get the n-th son.
 
54397
   *  \param n The index of the son.
 
54398
   *  \return The n-th son or NULL. */
46502
54399
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
46503
54400
  CTree *Declarator () const { return sons[1]; }
 
54401
  /** Replace a son.
 
54402
   *  \param old_son The son to replace.
 
54403
   *  \param new_son The new son. */
46504
54404
  void ReplaceSon (CTree *old_son, CTree *new_son) {
46505
54405
    CTree::ReplaceSon (sons, 2, old_son, new_son);
46506
54406
  }
46507
54407
};
46508
54408
 
46509
54409
 
46510
 
#line 46511 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54410
#line 54411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46511
54411
} // closed Puma
 
54412
class CCExprResolve;
 
54413
class CExprResolve;
46512
54414
class WinIfExists;
46513
54415
class WinImportHandler;
46514
54416
class WinMacros;
46515
 
class CMatchSyntax;
46516
 
class ExtGnu;
 
54417
class WinAsm;
 
54418
class WinDeclSpecs;
 
54419
class WinMemberExplSpec;
 
54420
class WinTypeKeywords;
 
54421
class WinFriend;
46517
54422
class ExtAC;
46518
54423
class ExtACBuilderCoupling;
46519
54424
class ExtACSyntaxCoupling;
46520
54425
class ExtACTree;
46521
54426
class ExtACKeywords;
46522
 
class WinAsm;
46523
 
class WinDeclSpecs;
46524
 
class WinMemberExplSpec;
46525
 
class WinTypeKeywords;
 
54427
class ExtGnu;
46526
54428
class PragmaOnceUnitState;
46527
54429
class PragmaOnce;
46528
 
class CCExprResolve;
46529
 
class CExprResolve;
 
54430
class CMatchSyntax;
46530
54431
namespace Puma {
46531
54432
 
46532
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54433
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46533
54434
class CT_PtrDeclarator : public CT_Declarator {
46534
 
#line 46535 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54435
#line 54436 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
54436
  friend class ::CCExprResolve;
 
54437
  friend class ::CExprResolve;
46535
54438
  friend class ::WinIfExists;
46536
54439
  friend class ::WinImportHandler;
46537
54440
  friend class ::WinMacros;
46538
 
  friend class ::CMatchSyntax;
46539
 
  friend class ::ExtGnu;
 
54441
  friend class ::WinAsm;
 
54442
  friend class ::WinDeclSpecs;
 
54443
  friend class ::WinMemberExplSpec;
 
54444
  friend class ::WinTypeKeywords;
 
54445
  friend class ::WinFriend;
46540
54446
  friend class ::ExtAC;
46541
54447
  friend class ::ExtACBuilderCoupling;
46542
54448
  friend class ::ExtACSyntaxCoupling;
46543
54449
  friend class ::ExtACTree;
46544
54450
  friend class ::ExtACKeywords;
46545
 
  friend class ::WinAsm;
46546
 
  friend class ::WinDeclSpecs;
46547
 
  friend class ::WinMemberExplSpec;
46548
 
  friend class ::WinTypeKeywords;
 
54451
  friend class ::ExtGnu;
46549
54452
  friend class ::PragmaOnceUnitState;
46550
54453
  friend class ::PragmaOnce;
46551
 
  friend class ::CCExprResolve;
46552
 
  friend class ::CExprResolve;
 
54454
  friend class ::CMatchSyntax;
46553
54455
 
46554
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54456
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46555
54457
 
46556
54458
  CTree *sons[3]; // ptr, cv_quals, declarator
46557
54459
 
46558
54460
public:
46559
54461
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
46560
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
54462
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
46561
54463
  }
 
54464
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46562
54465
  static const char *NodeId ();
 
54466
  /** Get the name of the node. Can be compared with NodeId(). */
46563
54467
  const char *NodeName () const { return NodeId (); }
 
54468
  /** Get the number of sons. */
46564
54469
  int Sons () const { return CTree::Sons (sons, 3); }
 
54470
  /** Get the n-th son.
 
54471
   *  \param n The index of the son.
 
54472
   *  \return The n-th son or NULL. */
46565
54473
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
46566
54474
  CTree *Declarator () const { return sons[2]; }
46567
54475
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
54476
  /** Replace a son.
 
54477
   *  \param old_son The son to replace.
 
54478
   *  \param new_son The new son. */
46568
54479
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46569
54480
    CTree::ReplaceSon (sons, 3, old_son, new_son);
46570
54481
  }
46571
54482
};
46572
54483
 
46573
54484
 
46574
 
#line 46575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54485
#line 54486 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46575
54486
} // closed Puma
 
54487
class CCExprResolve;
 
54488
class CExprResolve;
46576
54489
class WinIfExists;
46577
54490
class WinImportHandler;
46578
54491
class WinMacros;
46579
 
class CMatchSyntax;
46580
 
class ExtGnu;
 
54492
class WinAsm;
 
54493
class WinDeclSpecs;
 
54494
class WinMemberExplSpec;
 
54495
class WinTypeKeywords;
 
54496
class WinFriend;
46581
54497
class ExtAC;
46582
54498
class ExtACBuilderCoupling;
46583
54499
class ExtACSyntaxCoupling;
46584
54500
class ExtACTree;
46585
54501
class ExtACKeywords;
46586
 
class WinAsm;
46587
 
class WinDeclSpecs;
46588
 
class WinMemberExplSpec;
46589
 
class WinTypeKeywords;
 
54502
class ExtGnu;
46590
54503
class PragmaOnceUnitState;
46591
54504
class PragmaOnce;
46592
 
class CCExprResolve;
46593
 
class CExprResolve;
 
54505
class CMatchSyntax;
46594
54506
namespace Puma {
46595
54507
 
46596
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54508
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46597
54509
class CT_MembPtrDeclarator : public CT_Declarator {
46598
 
#line 46599 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54510
#line 54511 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
54511
  friend class ::CCExprResolve;
 
54512
  friend class ::CExprResolve;
46599
54513
  friend class ::WinIfExists;
46600
54514
  friend class ::WinImportHandler;
46601
54515
  friend class ::WinMacros;
46602
 
  friend class ::CMatchSyntax;
46603
 
  friend class ::ExtGnu;
 
54516
  friend class ::WinAsm;
 
54517
  friend class ::WinDeclSpecs;
 
54518
  friend class ::WinMemberExplSpec;
 
54519
  friend class ::WinTypeKeywords;
 
54520
  friend class ::WinFriend;
46604
54521
  friend class ::ExtAC;
46605
54522
  friend class ::ExtACBuilderCoupling;
46606
54523
  friend class ::ExtACSyntaxCoupling;
46607
54524
  friend class ::ExtACTree;
46608
54525
  friend class ::ExtACKeywords;
46609
 
  friend class ::WinAsm;
46610
 
  friend class ::WinDeclSpecs;
46611
 
  friend class ::WinMemberExplSpec;
46612
 
  friend class ::WinTypeKeywords;
 
54526
  friend class ::ExtGnu;
46613
54527
  friend class ::PragmaOnceUnitState;
46614
54528
  friend class ::PragmaOnce;
46615
 
  friend class ::CCExprResolve;
46616
 
  friend class ::CExprResolve;
 
54529
  friend class ::CMatchSyntax;
46617
54530
 
46618
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54531
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46619
54532
 
46620
54533
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
46621
54534
 
46622
54535
public:
46623
54536
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
46624
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
54537
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
54538
    AddSon (sons[3], q); AddSon (sons[4], d); 
46625
54539
  }
 
54540
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46626
54541
  static const char *NodeId ();
 
54542
  /** Get the name of the node. Can be compared with NodeId(). */
46627
54543
  const char *NodeName () const { return NodeId (); }
 
54544
  /** Get the number of sons. */
46628
54545
  int Sons () const { return CTree::Sons (sons, 5); }
 
54546
  /** Get the n-th son.
 
54547
   *  \param n The index of the son.
 
54548
   *  \return The n-th son or NULL. */
46629
54549
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
46630
54550
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
46631
54551
  CTree *Declarator () const { return sons[4]; }
46632
54552
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
54553
  /** Replace a son.
 
54554
   *  \param old_son The son to replace.
 
54555
   *  \param new_son The new son. */
46633
54556
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46634
54557
    CTree::ReplaceSon (sons, 5, old_son, new_son);
46635
54558
  }
46636
54559
};
46637
54560
 
46638
54561
 
46639
 
#line 46640 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54562
#line 54563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46640
54563
} // closed Puma
 
54564
class CCExprResolve;
 
54565
class CExprResolve;
46641
54566
class WinIfExists;
46642
54567
class WinImportHandler;
46643
54568
class WinMacros;
46644
 
class CMatchSyntax;
46645
 
class ExtGnu;
 
54569
class WinAsm;
 
54570
class WinDeclSpecs;
 
54571
class WinMemberExplSpec;
 
54572
class WinTypeKeywords;
 
54573
class WinFriend;
46646
54574
class ExtAC;
46647
54575
class ExtACBuilderCoupling;
46648
54576
class ExtACSyntaxCoupling;
46649
54577
class ExtACTree;
46650
54578
class ExtACKeywords;
46651
 
class WinAsm;
46652
 
class WinDeclSpecs;
46653
 
class WinMemberExplSpec;
46654
 
class WinTypeKeywords;
 
54579
class ExtGnu;
46655
54580
class PragmaOnceUnitState;
46656
54581
class PragmaOnce;
46657
 
class CCExprResolve;
46658
 
class CExprResolve;
 
54582
class CMatchSyntax;
46659
54583
namespace Puma {
46660
54584
 
46661
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54585
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46662
54586
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
46663
 
#line 46664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54587
#line 54588 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
54588
  friend class ::CCExprResolve;
 
54589
  friend class ::CExprResolve;
46664
54590
  friend class ::WinIfExists;
46665
54591
  friend class ::WinImportHandler;
46666
54592
  friend class ::WinMacros;
46667
 
  friend class ::CMatchSyntax;
46668
 
  friend class ::ExtGnu;
 
54593
  friend class ::WinAsm;
 
54594
  friend class ::WinDeclSpecs;
 
54595
  friend class ::WinMemberExplSpec;
 
54596
  friend class ::WinTypeKeywords;
 
54597
  friend class ::WinFriend;
46669
54598
  friend class ::ExtAC;
46670
54599
  friend class ::ExtACBuilderCoupling;
46671
54600
  friend class ::ExtACSyntaxCoupling;
46672
54601
  friend class ::ExtACTree;
46673
54602
  friend class ::ExtACKeywords;
46674
 
  friend class ::WinAsm;
46675
 
  friend class ::WinDeclSpecs;
46676
 
  friend class ::WinMemberExplSpec;
46677
 
  friend class ::WinTypeKeywords;
 
54603
  friend class ::ExtGnu;
46678
54604
  friend class ::PragmaOnceUnitState;
46679
54605
  friend class ::PragmaOnce;
46680
 
  friend class ::CCExprResolve;
46681
 
  friend class ::CExprResolve;
 
54606
  friend class ::CMatchSyntax;
46682
54607
 
46683
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54608
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46684
54609
 
46685
54610
  CTree *sons[3]; // declarator, colon, expr
46686
54611
 
46687
54612
public:
46688
54613
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
46689
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
54614
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
46690
54615
  }
 
54616
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46691
54617
  static const char *NodeId ();
 
54618
  /** Get the name of the node. Can be compared with NodeId(). */
46692
54619
  const char *NodeName () const { return NodeId (); }
 
54620
  /** Get the number of sons. */
46693
54621
  int Sons () const { return CTree::Sons (sons, 3); }
 
54622
  /** Get the n-th son.
 
54623
   *  \param n The index of the son.
 
54624
   *  \return The n-th son or NULL. */
46694
54625
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
46695
54626
  CTree *Declarator () const { return sons[0]; }
46696
54627
  CTree *Expr () const { return sons[2]; }
46697
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
54628
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
46698
54629
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
54630
  /** Replace a son.
 
54631
   *  \param old_son The son to replace.
 
54632
   *  \param new_son The new son. */
46699
54633
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46700
54634
    CTree::ReplaceSon (sons, 3, old_son, new_son);
46701
54635
  }
46708
54642
/*****************************************************************************/
46709
54643
 
46710
54644
 
46711
 
#line 46712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54645
#line 54646 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46712
54646
} // closed Puma
 
54647
class CCExprResolve;
 
54648
class CExprResolve;
46713
54649
class WinIfExists;
46714
54650
class WinImportHandler;
46715
54651
class WinMacros;
46716
 
class CMatchSyntax;
46717
 
class ExtGnu;
 
54652
class WinAsm;
 
54653
class WinDeclSpecs;
 
54654
class WinMemberExplSpec;
 
54655
class WinTypeKeywords;
 
54656
class WinFriend;
46718
54657
class ExtAC;
46719
54658
class ExtACBuilderCoupling;
46720
54659
class ExtACSyntaxCoupling;
46721
54660
class ExtACTree;
46722
54661
class ExtACKeywords;
46723
 
class WinAsm;
46724
 
class WinDeclSpecs;
46725
 
class WinMemberExplSpec;
46726
 
class WinTypeKeywords;
 
54662
class ExtGnu;
46727
54663
class PragmaOnceUnitState;
46728
54664
class PragmaOnce;
46729
 
class CCExprResolve;
46730
 
class CExprResolve;
 
54665
class CMatchSyntax;
46731
54666
namespace Puma {
46732
54667
 
46733
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54668
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46734
54669
class CT_Statement : public CTree {
46735
 
#line 46736 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54670
#line 54671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
54671
  friend class ::CCExprResolve;
 
54672
  friend class ::CExprResolve;
46736
54673
  friend class ::WinIfExists;
46737
54674
  friend class ::WinImportHandler;
46738
54675
  friend class ::WinMacros;
46739
 
  friend class ::CMatchSyntax;
46740
 
  friend class ::ExtGnu;
 
54676
  friend class ::WinAsm;
 
54677
  friend class ::WinDeclSpecs;
 
54678
  friend class ::WinMemberExplSpec;
 
54679
  friend class ::WinTypeKeywords;
 
54680
  friend class ::WinFriend;
46741
54681
  friend class ::ExtAC;
46742
54682
  friend class ::ExtACBuilderCoupling;
46743
54683
  friend class ::ExtACSyntaxCoupling;
46744
54684
  friend class ::ExtACTree;
46745
54685
  friend class ::ExtACKeywords;
46746
 
  friend class ::WinAsm;
46747
 
  friend class ::WinDeclSpecs;
46748
 
  friend class ::WinMemberExplSpec;
46749
 
  friend class ::WinTypeKeywords;
 
54686
  friend class ::ExtGnu;
46750
54687
  friend class ::PragmaOnceUnitState;
46751
54688
  friend class ::PragmaOnce;
46752
 
  friend class ::CCExprResolve;
46753
 
  friend class ::CExprResolve;
 
54689
  friend class ::CMatchSyntax;
46754
54690
 
46755
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54691
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46756
54692
 
46757
54693
protected:
46758
54694
  CT_Statement () {}
 
54695
  virtual CT_Statement *IsStatement () { return this; }
46759
54696
};
46760
54697
 
46761
54698
 
46762
 
#line 46763 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54699
#line 54700 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46763
54700
} // closed Puma
 
54701
class CCExprResolve;
 
54702
class CExprResolve;
46764
54703
class WinIfExists;
46765
54704
class WinImportHandler;
46766
54705
class WinMacros;
46767
 
class CMatchSyntax;
46768
 
class ExtGnu;
 
54706
class WinAsm;
 
54707
class WinDeclSpecs;
 
54708
class WinMemberExplSpec;
 
54709
class WinTypeKeywords;
 
54710
class WinFriend;
46769
54711
class ExtAC;
46770
54712
class ExtACBuilderCoupling;
46771
54713
class ExtACSyntaxCoupling;
46772
54714
class ExtACTree;
46773
54715
class ExtACKeywords;
46774
 
class WinAsm;
46775
 
class WinDeclSpecs;
46776
 
class WinMemberExplSpec;
46777
 
class WinTypeKeywords;
 
54716
class ExtGnu;
46778
54717
class PragmaOnceUnitState;
46779
54718
class PragmaOnce;
46780
 
class CCExprResolve;
46781
 
class CExprResolve;
 
54719
class CMatchSyntax;
46782
54720
namespace Puma {
46783
54721
 
46784
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54722
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46785
54723
class CT_LabelStmt : public CT_Statement {
46786
 
#line 46787 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54724
#line 54725 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
54725
  friend class ::CCExprResolve;
 
54726
  friend class ::CExprResolve;
46787
54727
  friend class ::WinIfExists;
46788
54728
  friend class ::WinImportHandler;
46789
54729
  friend class ::WinMacros;
46790
 
  friend class ::CMatchSyntax;
46791
 
  friend class ::ExtGnu;
 
54730
  friend class ::WinAsm;
 
54731
  friend class ::WinDeclSpecs;
 
54732
  friend class ::WinMemberExplSpec;
 
54733
  friend class ::WinTypeKeywords;
 
54734
  friend class ::WinFriend;
46792
54735
  friend class ::ExtAC;
46793
54736
  friend class ::ExtACBuilderCoupling;
46794
54737
  friend class ::ExtACSyntaxCoupling;
46795
54738
  friend class ::ExtACTree;
46796
54739
  friend class ::ExtACKeywords;
46797
 
  friend class ::WinAsm;
46798
 
  friend class ::WinDeclSpecs;
46799
 
  friend class ::WinMemberExplSpec;
46800
 
  friend class ::WinTypeKeywords;
 
54740
  friend class ::ExtGnu;
46801
54741
  friend class ::PragmaOnceUnitState;
46802
54742
  friend class ::PragmaOnce;
46803
 
  friend class ::CCExprResolve;
46804
 
  friend class ::CExprResolve;
 
54743
  friend class ::CMatchSyntax;
46805
54744
 
46806
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54745
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46807
54746
 
46808
54747
  CTree *sons[3]; // id, colon, stmt
46809
54748
 
46810
54749
public:
46811
54750
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
46812
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
54751
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
46813
54752
  }
 
54753
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46814
54754
  static const char *NodeId ();
 
54755
  /** Get the name of the node. Can be compared with NodeId(). */
46815
54756
  const char *NodeName () const { return NodeId (); }
 
54757
  /** Get the number of sons. */
46816
54758
  int Sons () const { return 3; }
 
54759
  /** Get the n-th son.
 
54760
   *  \param n The index of the son.
 
54761
   *  \return The n-th son or NULL. */
46817
54762
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
46818
54763
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
46819
54764
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
54765
  /** Replace a son.
 
54766
   *  \param old_son The son to replace.
 
54767
   *  \param new_son The new son. */
46820
54768
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46821
54769
    CTree::ReplaceSon (sons, 3, old_son, new_son);
46822
54770
  }
46823
54771
};
46824
54772
 
46825
54773
 
46826
 
#line 46827 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54774
#line 54775 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46827
54775
} // closed Puma
 
54776
class CCExprResolve;
 
54777
class CExprResolve;
46828
54778
class WinIfExists;
46829
54779
class WinImportHandler;
46830
54780
class WinMacros;
46831
 
class CMatchSyntax;
46832
 
class ExtGnu;
 
54781
class WinAsm;
 
54782
class WinDeclSpecs;
 
54783
class WinMemberExplSpec;
 
54784
class WinTypeKeywords;
 
54785
class WinFriend;
46833
54786
class ExtAC;
46834
54787
class ExtACBuilderCoupling;
46835
54788
class ExtACSyntaxCoupling;
46836
54789
class ExtACTree;
46837
54790
class ExtACKeywords;
46838
 
class WinAsm;
46839
 
class WinDeclSpecs;
46840
 
class WinMemberExplSpec;
46841
 
class WinTypeKeywords;
 
54791
class ExtGnu;
46842
54792
class PragmaOnceUnitState;
46843
54793
class PragmaOnce;
46844
 
class CCExprResolve;
46845
 
class CExprResolve;
 
54794
class CMatchSyntax;
46846
54795
namespace Puma {
46847
54796
 
46848
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54797
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46849
54798
class CT_DefaultStmt : public CT_Statement {
46850
 
#line 46851 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54799
#line 54800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
54800
  friend class ::CCExprResolve;
 
54801
  friend class ::CExprResolve;
46851
54802
  friend class ::WinIfExists;
46852
54803
  friend class ::WinImportHandler;
46853
54804
  friend class ::WinMacros;
46854
 
  friend class ::CMatchSyntax;
46855
 
  friend class ::ExtGnu;
 
54805
  friend class ::WinAsm;
 
54806
  friend class ::WinDeclSpecs;
 
54807
  friend class ::WinMemberExplSpec;
 
54808
  friend class ::WinTypeKeywords;
 
54809
  friend class ::WinFriend;
46856
54810
  friend class ::ExtAC;
46857
54811
  friend class ::ExtACBuilderCoupling;
46858
54812
  friend class ::ExtACSyntaxCoupling;
46859
54813
  friend class ::ExtACTree;
46860
54814
  friend class ::ExtACKeywords;
46861
 
  friend class ::WinAsm;
46862
 
  friend class ::WinDeclSpecs;
46863
 
  friend class ::WinMemberExplSpec;
46864
 
  friend class ::WinTypeKeywords;
 
54815
  friend class ::ExtGnu;
46865
54816
  friend class ::PragmaOnceUnitState;
46866
54817
  friend class ::PragmaOnce;
46867
 
  friend class ::CCExprResolve;
46868
 
  friend class ::CExprResolve;
 
54818
  friend class ::CMatchSyntax;
46869
54819
 
46870
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54820
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46871
54821
 
46872
54822
  CTree *sons[3]; // keyword, colon, stmt
46873
54823
 
46874
54824
public:
46875
54825
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
46876
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
54826
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
46877
54827
  }
 
54828
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46878
54829
  static const char *NodeId ();
 
54830
  /** Get the name of the node. Can be compared with NodeId(). */
46879
54831
  const char *NodeName () const { return NodeId (); }
 
54832
  /** Get the number of sons. */
46880
54833
  int Sons () const { return 3; }
 
54834
  /** Get the n-th son.
 
54835
   *  \param n The index of the son.
 
54836
   *  \return The n-th son or NULL. */
46881
54837
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
46882
54838
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
54839
  /** Replace a son.
 
54840
   *  \param old_son The son to replace.
 
54841
   *  \param new_son The new son. */
46883
54842
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46884
54843
    CTree::ReplaceSon (sons, 3, old_son, new_son);
46885
54844
  }
46886
54845
};
46887
54846
 
46888
54847
 
46889
 
#line 46890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54848
#line 54849 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46890
54849
} // closed Puma
 
54850
class CCExprResolve;
 
54851
class CExprResolve;
46891
54852
class WinIfExists;
46892
54853
class WinImportHandler;
46893
54854
class WinMacros;
46894
 
class CMatchSyntax;
46895
 
class ExtGnu;
 
54855
class WinAsm;
 
54856
class WinDeclSpecs;
 
54857
class WinMemberExplSpec;
 
54858
class WinTypeKeywords;
 
54859
class WinFriend;
46896
54860
class ExtAC;
46897
54861
class ExtACBuilderCoupling;
46898
54862
class ExtACSyntaxCoupling;
46899
54863
class ExtACTree;
46900
54864
class ExtACKeywords;
46901
 
class WinAsm;
46902
 
class WinDeclSpecs;
46903
 
class WinMemberExplSpec;
46904
 
class WinTypeKeywords;
 
54865
class ExtGnu;
46905
54866
class PragmaOnceUnitState;
46906
54867
class PragmaOnce;
46907
 
class CCExprResolve;
46908
 
class CExprResolve;
 
54868
class CMatchSyntax;
46909
54869
namespace Puma {
46910
54870
 
46911
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54871
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46912
54872
class CT_TryStmt : public CT_Statement {
46913
 
#line 46914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54873
#line 54874 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
54874
  friend class ::CCExprResolve;
 
54875
  friend class ::CExprResolve;
46914
54876
  friend class ::WinIfExists;
46915
54877
  friend class ::WinImportHandler;
46916
54878
  friend class ::WinMacros;
46917
 
  friend class ::CMatchSyntax;
46918
 
  friend class ::ExtGnu;
 
54879
  friend class ::WinAsm;
 
54880
  friend class ::WinDeclSpecs;
 
54881
  friend class ::WinMemberExplSpec;
 
54882
  friend class ::WinTypeKeywords;
 
54883
  friend class ::WinFriend;
46919
54884
  friend class ::ExtAC;
46920
54885
  friend class ::ExtACBuilderCoupling;
46921
54886
  friend class ::ExtACSyntaxCoupling;
46922
54887
  friend class ::ExtACTree;
46923
54888
  friend class ::ExtACKeywords;
46924
 
  friend class ::WinAsm;
46925
 
  friend class ::WinDeclSpecs;
46926
 
  friend class ::WinMemberExplSpec;
46927
 
  friend class ::WinTypeKeywords;
 
54889
  friend class ::ExtGnu;
46928
54890
  friend class ::PragmaOnceUnitState;
46929
54891
  friend class ::PragmaOnce;
46930
 
  friend class ::CCExprResolve;
46931
 
  friend class ::CExprResolve;
 
54892
  friend class ::CMatchSyntax;
46932
54893
 
46933
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54894
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46934
54895
 
46935
54896
  CTree *sons[3]; // try, stmt, handlers
46936
54897
 
46937
54898
public:
46938
54899
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
46939
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
54900
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
46940
54901
  }
 
54902
  /** Get the identifier for this node type. Can be compared with NodeName(). */
46941
54903
  static const char *NodeId ();
 
54904
  /** Get the name of the node. Can be compared with NodeId(). */
46942
54905
  const char *NodeName () const { return NodeId (); }
 
54906
  /** Get the number of sons. */
46943
54907
  int Sons () const { return 3; }
 
54908
  /** Get the n-th son.
 
54909
   *  \param n The index of the son.
 
54910
   *  \return The n-th son or NULL. */
46944
54911
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
46945
54912
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
46946
54913
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
54914
  /** Replace a son.
 
54915
   *  \param old_son The son to replace.
 
54916
   *  \param new_son The new son. */
46947
54917
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
46948
54918
    CTree::ReplaceSon (sons, 3, old_son, new_son);
46949
54919
  }
46950
54920
};
46951
54921
 
46952
54922
 
46953
 
#line 46954 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54923
#line 54924 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
46954
54924
} // closed Puma
 
54925
class CCExprResolve;
 
54926
class CExprResolve;
46955
54927
class WinIfExists;
46956
54928
class WinImportHandler;
46957
54929
class WinMacros;
46958
 
class CMatchSyntax;
46959
 
class ExtGnu;
 
54930
class WinAsm;
 
54931
class WinDeclSpecs;
 
54932
class WinMemberExplSpec;
 
54933
class WinTypeKeywords;
 
54934
class WinFriend;
46960
54935
class ExtAC;
46961
54936
class ExtACBuilderCoupling;
46962
54937
class ExtACSyntaxCoupling;
46963
54938
class ExtACTree;
46964
54939
class ExtACKeywords;
46965
 
class WinAsm;
46966
 
class WinDeclSpecs;
46967
 
class WinMemberExplSpec;
46968
 
class WinTypeKeywords;
 
54940
class ExtGnu;
46969
54941
class PragmaOnceUnitState;
46970
54942
class PragmaOnce;
46971
 
class CCExprResolve;
46972
 
class CExprResolve;
 
54943
class CMatchSyntax;
46973
54944
namespace Puma {
46974
54945
 
46975
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54946
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46976
54947
class CT_CaseStmt : public CT_Statement {
46977
 
#line 46978 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54948
#line 54949 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
54949
  friend class ::CCExprResolve;
 
54950
  friend class ::CExprResolve;
46978
54951
  friend class ::WinIfExists;
46979
54952
  friend class ::WinImportHandler;
46980
54953
  friend class ::WinMacros;
46981
 
  friend class ::CMatchSyntax;
46982
 
  friend class ::ExtGnu;
 
54954
  friend class ::WinAsm;
 
54955
  friend class ::WinDeclSpecs;
 
54956
  friend class ::WinMemberExplSpec;
 
54957
  friend class ::WinTypeKeywords;
 
54958
  friend class ::WinFriend;
46983
54959
  friend class ::ExtAC;
46984
54960
  friend class ::ExtACBuilderCoupling;
46985
54961
  friend class ::ExtACSyntaxCoupling;
46986
54962
  friend class ::ExtACTree;
46987
54963
  friend class ::ExtACKeywords;
46988
 
  friend class ::WinAsm;
46989
 
  friend class ::WinDeclSpecs;
46990
 
  friend class ::WinMemberExplSpec;
46991
 
  friend class ::WinTypeKeywords;
 
54964
  friend class ::ExtGnu;
46992
54965
  friend class ::PragmaOnceUnitState;
46993
54966
  friend class ::PragmaOnce;
46994
 
  friend class ::CCExprResolve;
46995
 
  friend class ::CExprResolve;
 
54967
  friend class ::CMatchSyntax;
46996
54968
 
46997
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
54969
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
46998
54970
 
46999
54971
  CTree *sons[4]; // keyword, expr, colon, stmt
47000
54972
 
47001
54973
public:
47002
54974
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
47003
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
54975
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
54976
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
47004
54977
  }
 
54978
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47005
54979
  static const char *NodeId ();
 
54980
  /** Get the name of the node. Can be compared with NodeId(). */
47006
54981
  const char *NodeName () const { return NodeId (); }
 
54982
  /** Get the number of sons. */
47007
54983
  int Sons () const { return 4; }
 
54984
  /** Get the n-th son.
 
54985
   *  \param n The index of the son.
 
54986
   *  \return The n-th son or NULL. */
47008
54987
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
47009
54988
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
47010
54989
  CTree *Expr () const { return sons[1]; }
 
54990
  /** Replace a son.
 
54991
   *  \param old_son The son to replace.
 
54992
   *  \param new_son The new son. */
47011
54993
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47012
54994
    CTree::ReplaceSon (sons, 4, old_son, new_son);
47013
54995
  }
47014
54996
};
47015
54997
 
47016
54998
 
47017
 
#line 47018 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
54999
#line 55000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47018
55000
} // closed Puma
 
55001
class CCExprResolve;
 
55002
class CExprResolve;
47019
55003
class WinIfExists;
47020
55004
class WinImportHandler;
47021
55005
class WinMacros;
47022
 
class CMatchSyntax;
47023
 
class ExtGnu;
 
55006
class WinAsm;
 
55007
class WinDeclSpecs;
 
55008
class WinMemberExplSpec;
 
55009
class WinTypeKeywords;
 
55010
class WinFriend;
47024
55011
class ExtAC;
47025
55012
class ExtACBuilderCoupling;
47026
55013
class ExtACSyntaxCoupling;
47027
55014
class ExtACTree;
47028
55015
class ExtACKeywords;
47029
 
class WinAsm;
47030
 
class WinDeclSpecs;
47031
 
class WinMemberExplSpec;
47032
 
class WinTypeKeywords;
 
55016
class ExtGnu;
47033
55017
class PragmaOnceUnitState;
47034
55018
class PragmaOnce;
47035
 
class CCExprResolve;
47036
 
class CExprResolve;
 
55019
class CMatchSyntax;
47037
55020
namespace Puma {
47038
55021
 
47039
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55022
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47040
55023
class CT_ExprStmt : public CT_Statement {
47041
 
#line 47042 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55024
#line 55025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
55025
  friend class ::CCExprResolve;
 
55026
  friend class ::CExprResolve;
47042
55027
  friend class ::WinIfExists;
47043
55028
  friend class ::WinImportHandler;
47044
55029
  friend class ::WinMacros;
47045
 
  friend class ::CMatchSyntax;
47046
 
  friend class ::ExtGnu;
 
55030
  friend class ::WinAsm;
 
55031
  friend class ::WinDeclSpecs;
 
55032
  friend class ::WinMemberExplSpec;
 
55033
  friend class ::WinTypeKeywords;
 
55034
  friend class ::WinFriend;
47047
55035
  friend class ::ExtAC;
47048
55036
  friend class ::ExtACBuilderCoupling;
47049
55037
  friend class ::ExtACSyntaxCoupling;
47050
55038
  friend class ::ExtACTree;
47051
55039
  friend class ::ExtACKeywords;
47052
 
  friend class ::WinAsm;
47053
 
  friend class ::WinDeclSpecs;
47054
 
  friend class ::WinMemberExplSpec;
47055
 
  friend class ::WinTypeKeywords;
 
55040
  friend class ::ExtGnu;
47056
55041
  friend class ::PragmaOnceUnitState;
47057
55042
  friend class ::PragmaOnce;
47058
 
  friend class ::CCExprResolve;
47059
 
  friend class ::CExprResolve;
 
55043
  friend class ::CMatchSyntax;
47060
55044
 
47061
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55045
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47062
55046
 
47063
55047
  CTree *sons[2]; // expr, semi_colon
47064
55048
 
47065
55049
public:
47066
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
55050
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
55051
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47067
55052
  static const char *NodeId ();
 
55053
  /** Get the name of the node. Can be compared with NodeId(). */
47068
55054
  const char *NodeName () const { return NodeId (); }
 
55055
  /** Get the number of sons. */
47069
55056
  int Sons () const { return CTree::Sons (sons, 2); }
 
55057
  /** Get the n-th son.
 
55058
   *  \param n The index of the son.
 
55059
   *  \return The n-th son or NULL. */
47070
55060
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
47071
55061
  CTree *Expr () const { return sons[0]; }
 
55062
  /** Replace a son.
 
55063
   *  \param old_son The son to replace.
 
55064
   *  \param new_son The new son. */
47072
55065
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47073
55066
    CTree::ReplaceSon (sons, 2, old_son, new_son);
47074
55067
  }
47075
55068
};
47076
55069
 
47077
55070
 
47078
 
#line 47079 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55071
#line 55072 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47079
55072
} // closed Puma
 
55073
class CCExprResolve;
 
55074
class CExprResolve;
47080
55075
class WinIfExists;
47081
55076
class WinImportHandler;
47082
55077
class WinMacros;
47083
 
class CMatchSyntax;
47084
 
class ExtGnu;
 
55078
class WinAsm;
 
55079
class WinDeclSpecs;
 
55080
class WinMemberExplSpec;
 
55081
class WinTypeKeywords;
 
55082
class WinFriend;
47085
55083
class ExtAC;
47086
55084
class ExtACBuilderCoupling;
47087
55085
class ExtACSyntaxCoupling;
47088
55086
class ExtACTree;
47089
55087
class ExtACKeywords;
47090
 
class WinAsm;
47091
 
class WinDeclSpecs;
47092
 
class WinMemberExplSpec;
47093
 
class WinTypeKeywords;
 
55088
class ExtGnu;
47094
55089
class PragmaOnceUnitState;
47095
55090
class PragmaOnce;
47096
 
class CCExprResolve;
47097
 
class CExprResolve;
 
55091
class CMatchSyntax;
47098
55092
namespace Puma {
47099
55093
 
47100
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55094
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47101
55095
class CT_DeclStmt : public CT_Statement {
47102
 
#line 47103 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55096
#line 55097 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
55097
  friend class ::CCExprResolve;
 
55098
  friend class ::CExprResolve;
47103
55099
  friend class ::WinIfExists;
47104
55100
  friend class ::WinImportHandler;
47105
55101
  friend class ::WinMacros;
47106
 
  friend class ::CMatchSyntax;
47107
 
  friend class ::ExtGnu;
 
55102
  friend class ::WinAsm;
 
55103
  friend class ::WinDeclSpecs;
 
55104
  friend class ::WinMemberExplSpec;
 
55105
  friend class ::WinTypeKeywords;
 
55106
  friend class ::WinFriend;
47108
55107
  friend class ::ExtAC;
47109
55108
  friend class ::ExtACBuilderCoupling;
47110
55109
  friend class ::ExtACSyntaxCoupling;
47111
55110
  friend class ::ExtACTree;
47112
55111
  friend class ::ExtACKeywords;
47113
 
  friend class ::WinAsm;
47114
 
  friend class ::WinDeclSpecs;
47115
 
  friend class ::WinMemberExplSpec;
47116
 
  friend class ::WinTypeKeywords;
 
55112
  friend class ::ExtGnu;
47117
55113
  friend class ::PragmaOnceUnitState;
47118
55114
  friend class ::PragmaOnce;
47119
 
  friend class ::CCExprResolve;
47120
 
  friend class ::CExprResolve;
 
55115
  friend class ::CMatchSyntax;
47121
55116
 
47122
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55117
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47123
55118
 
47124
55119
  CTree *_decl;
47125
55120
 
47126
55121
public:
47127
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
55122
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
55123
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47128
55124
  static const char *NodeId ();
 
55125
  /** Get the name of the node. Can be compared with NodeId(). */
47129
55126
  const char *NodeName () const { return NodeId (); }
 
55127
  /** Get the number of sons. */
47130
55128
  int Sons () const { return 1; }
 
55129
  /** Get the n-th son.
 
55130
   *  \param n The index of the son.
 
55131
   *  \return The n-th son or NULL. */
47131
55132
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
55133
  /** Replace a son.
 
55134
   *  \param old_son The son to replace.
 
55135
   *  \param new_son The new son. */
47132
55136
  void ReplaceSon (CTree *old_son, CTree *new_son) 
47133
 
   { if (old_son == _decl) _decl = new_son; }
 
55137
   { CTree::ReplaceSon (_decl, old_son, new_son); }
47134
55138
};
47135
55139
 
47136
55140
 
47137
 
#line 47138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55141
#line 55142 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47138
55142
} // closed Puma
 
55143
class CCExprResolve;
 
55144
class CExprResolve;
47139
55145
class WinIfExists;
47140
55146
class WinImportHandler;
47141
55147
class WinMacros;
47142
 
class CMatchSyntax;
47143
 
class ExtGnu;
 
55148
class WinAsm;
 
55149
class WinDeclSpecs;
 
55150
class WinMemberExplSpec;
 
55151
class WinTypeKeywords;
 
55152
class WinFriend;
47144
55153
class ExtAC;
47145
55154
class ExtACBuilderCoupling;
47146
55155
class ExtACSyntaxCoupling;
47147
55156
class ExtACTree;
47148
55157
class ExtACKeywords;
47149
 
class WinAsm;
47150
 
class WinDeclSpecs;
47151
 
class WinMemberExplSpec;
47152
 
class WinTypeKeywords;
 
55158
class ExtGnu;
47153
55159
class PragmaOnceUnitState;
47154
55160
class PragmaOnce;
47155
 
class CCExprResolve;
47156
 
class CExprResolve;
 
55161
class CMatchSyntax;
47157
55162
namespace Puma {
47158
55163
 
47159
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55164
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47160
55165
class CT_SwitchStmt : public CT_Statement, public CSemScope {
47161
 
#line 47162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55166
#line 55167 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
55167
  friend class ::CCExprResolve;
 
55168
  friend class ::CExprResolve;
47162
55169
  friend class ::WinIfExists;
47163
55170
  friend class ::WinImportHandler;
47164
55171
  friend class ::WinMacros;
47165
 
  friend class ::CMatchSyntax;
47166
 
  friend class ::ExtGnu;
 
55172
  friend class ::WinAsm;
 
55173
  friend class ::WinDeclSpecs;
 
55174
  friend class ::WinMemberExplSpec;
 
55175
  friend class ::WinTypeKeywords;
 
55176
  friend class ::WinFriend;
47167
55177
  friend class ::ExtAC;
47168
55178
  friend class ::ExtACBuilderCoupling;
47169
55179
  friend class ::ExtACSyntaxCoupling;
47170
55180
  friend class ::ExtACTree;
47171
55181
  friend class ::ExtACKeywords;
47172
 
  friend class ::WinAsm;
47173
 
  friend class ::WinDeclSpecs;
47174
 
  friend class ::WinMemberExplSpec;
47175
 
  friend class ::WinTypeKeywords;
 
55182
  friend class ::ExtGnu;
47176
55183
  friend class ::PragmaOnceUnitState;
47177
55184
  friend class ::PragmaOnce;
47178
 
  friend class ::CCExprResolve;
47179
 
  friend class ::CExprResolve;
 
55185
  friend class ::CMatchSyntax;
47180
55186
 
47181
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55187
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47182
55188
 
47183
55189
  CTree *sons[5]; // keyword, open, cond, close, stmt
47184
55190
 
47185
55191
public:
47186
55192
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
47187
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
55193
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
55194
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
47188
55195
  }
 
55196
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47189
55197
  static const char *NodeId ();
 
55198
  /** Get the name of the node. Can be compared with NodeId(). */
47190
55199
  const char *NodeName () const { return NodeId (); }
 
55200
  /** Get the number of sons. */
47191
55201
  int Sons () const { return 5; }
 
55202
  /** Get the n-th son.
 
55203
   *  \param n The index of the son.
 
55204
   *  \return The n-th son or NULL. */
47192
55205
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
47193
55206
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
47194
55207
  CTree *Condition () const { return sons[2]; }
 
55208
  /** Replace a son.
 
55209
   *  \param old_son The son to replace.
 
55210
   *  \param new_son The new son. */
47195
55211
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47196
55212
    CTree::ReplaceSon (sons, 5, old_son, new_son);
47197
55213
  }
 
55214
  CSemScope *SemScope () const { return (CSemScope*)this; }
47198
55215
};
47199
55216
 
47200
55217
 
47201
 
#line 47202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55218
#line 55219 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47202
55219
} // closed Puma
 
55220
class CCExprResolve;
 
55221
class CExprResolve;
47203
55222
class WinIfExists;
47204
55223
class WinImportHandler;
47205
55224
class WinMacros;
47206
 
class CMatchSyntax;
47207
 
class ExtGnu;
 
55225
class WinAsm;
 
55226
class WinDeclSpecs;
 
55227
class WinMemberExplSpec;
 
55228
class WinTypeKeywords;
 
55229
class WinFriend;
47208
55230
class ExtAC;
47209
55231
class ExtACBuilderCoupling;
47210
55232
class ExtACSyntaxCoupling;
47211
55233
class ExtACTree;
47212
55234
class ExtACKeywords;
47213
 
class WinAsm;
47214
 
class WinDeclSpecs;
47215
 
class WinMemberExplSpec;
47216
 
class WinTypeKeywords;
 
55235
class ExtGnu;
47217
55236
class PragmaOnceUnitState;
47218
55237
class PragmaOnce;
47219
 
class CCExprResolve;
47220
 
class CExprResolve;
 
55238
class CMatchSyntax;
47221
55239
namespace Puma {
47222
55240
 
47223
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55241
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47224
55242
class CT_IfStmt : public CT_Statement, public CSemScope {
47225
 
#line 47226 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55243
#line 55244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
55244
  friend class ::CCExprResolve;
 
55245
  friend class ::CExprResolve;
47226
55246
  friend class ::WinIfExists;
47227
55247
  friend class ::WinImportHandler;
47228
55248
  friend class ::WinMacros;
47229
 
  friend class ::CMatchSyntax;
47230
 
  friend class ::ExtGnu;
 
55249
  friend class ::WinAsm;
 
55250
  friend class ::WinDeclSpecs;
 
55251
  friend class ::WinMemberExplSpec;
 
55252
  friend class ::WinTypeKeywords;
 
55253
  friend class ::WinFriend;
47231
55254
  friend class ::ExtAC;
47232
55255
  friend class ::ExtACBuilderCoupling;
47233
55256
  friend class ::ExtACSyntaxCoupling;
47234
55257
  friend class ::ExtACTree;
47235
55258
  friend class ::ExtACKeywords;
47236
 
  friend class ::WinAsm;
47237
 
  friend class ::WinDeclSpecs;
47238
 
  friend class ::WinMemberExplSpec;
47239
 
  friend class ::WinTypeKeywords;
 
55259
  friend class ::ExtGnu;
47240
55260
  friend class ::PragmaOnceUnitState;
47241
55261
  friend class ::PragmaOnce;
47242
 
  friend class ::CCExprResolve;
47243
 
  friend class ::CExprResolve;
 
55262
  friend class ::CMatchSyntax;
47244
55263
 
47245
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55264
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47246
55265
 
47247
55266
  CTree *sons[5]; // keyword, open, cond, close, stmt
47248
55267
 
47249
55268
public:
47250
55269
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
47251
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
55270
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
55271
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
47252
55272
  }
 
55273
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47253
55274
  static const char *NodeId ();
 
55275
  /** Get the name of the node. Can be compared with NodeId(). */
47254
55276
  const char *NodeName () const { return NodeId (); }
 
55277
  /** Get the number of sons. */
47255
55278
  int Sons () const { return 5; }
 
55279
  /** Get the n-th son.
 
55280
   *  \param n The index of the son.
 
55281
   *  \return The n-th son or NULL. */
47256
55282
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
47257
55283
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
47258
55284
  CTree *Condition () const { return sons[2]; }
 
55285
  /** Replace a son.
 
55286
   *  \param old_son The son to replace.
 
55287
   *  \param new_son The new son. */
47259
55288
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47260
55289
    CTree::ReplaceSon (sons, 5, old_son, new_son);
47261
55290
  }
 
55291
  CSemScope *SemScope () const { return (CSemScope*)this; }
47262
55292
};
47263
55293
 
47264
55294
 
47265
 
#line 47266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55295
#line 55296 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47266
55296
} // closed Puma
 
55297
class CCExprResolve;
 
55298
class CExprResolve;
47267
55299
class WinIfExists;
47268
55300
class WinImportHandler;
47269
55301
class WinMacros;
47270
 
class CMatchSyntax;
47271
 
class ExtGnu;
 
55302
class WinAsm;
 
55303
class WinDeclSpecs;
 
55304
class WinMemberExplSpec;
 
55305
class WinTypeKeywords;
 
55306
class WinFriend;
47272
55307
class ExtAC;
47273
55308
class ExtACBuilderCoupling;
47274
55309
class ExtACSyntaxCoupling;
47275
55310
class ExtACTree;
47276
55311
class ExtACKeywords;
47277
 
class WinAsm;
47278
 
class WinDeclSpecs;
47279
 
class WinMemberExplSpec;
47280
 
class WinTypeKeywords;
 
55312
class ExtGnu;
47281
55313
class PragmaOnceUnitState;
47282
55314
class PragmaOnce;
47283
 
class CCExprResolve;
47284
 
class CExprResolve;
 
55315
class CMatchSyntax;
47285
55316
namespace Puma {
47286
55317
 
47287
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55318
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47288
55319
class CT_IfElseStmt : public CT_Statement, public CSemScope {
47289
 
#line 47290 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55320
#line 55321 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
55321
  friend class ::CCExprResolve;
 
55322
  friend class ::CExprResolve;
47290
55323
  friend class ::WinIfExists;
47291
55324
  friend class ::WinImportHandler;
47292
55325
  friend class ::WinMacros;
47293
 
  friend class ::CMatchSyntax;
47294
 
  friend class ::ExtGnu;
 
55326
  friend class ::WinAsm;
 
55327
  friend class ::WinDeclSpecs;
 
55328
  friend class ::WinMemberExplSpec;
 
55329
  friend class ::WinTypeKeywords;
 
55330
  friend class ::WinFriend;
47295
55331
  friend class ::ExtAC;
47296
55332
  friend class ::ExtACBuilderCoupling;
47297
55333
  friend class ::ExtACSyntaxCoupling;
47298
55334
  friend class ::ExtACTree;
47299
55335
  friend class ::ExtACKeywords;
47300
 
  friend class ::WinAsm;
47301
 
  friend class ::WinDeclSpecs;
47302
 
  friend class ::WinMemberExplSpec;
47303
 
  friend class ::WinTypeKeywords;
 
55336
  friend class ::ExtGnu;
47304
55337
  friend class ::PragmaOnceUnitState;
47305
55338
  friend class ::PragmaOnce;
47306
 
  friend class ::CCExprResolve;
47307
 
  friend class ::CExprResolve;
 
55339
  friend class ::CMatchSyntax;
47308
55340
 
47309
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55341
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47310
55342
 
47311
55343
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
47312
55344
 
47313
55345
public:
47314
55346
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
47315
55347
                 CTree *is, CTree *e, CTree *es) {
47316
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
47317
 
    sons[5] = e; sons[6] = es; 
 
55348
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
55349
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
55350
    AddSon (sons[6], es); 
47318
55351
  }
 
55352
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47319
55353
  static const char *NodeId ();
 
55354
  /** Get the name of the node. Can be compared with NodeId(). */
47320
55355
  const char *NodeName () const { return NodeId (); }
 
55356
  /** Get the number of sons. */
47321
55357
  int Sons () const { return 7; }
 
55358
  /** Get the n-th son.
 
55359
   *  \param n The index of the son.
 
55360
   *  \return The n-th son or NULL. */
47322
55361
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
47323
55362
  CTree *Condition () const { return sons[2]; }
47324
55363
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
47325
55364
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
55365
  /** Replace a son.
 
55366
   *  \param old_son The son to replace.
 
55367
   *  \param new_son The new son. */
47326
55368
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47327
55369
    CTree::ReplaceSon (sons, 7, old_son, new_son);
47328
55370
  }
 
55371
  CSemScope *SemScope () const { return (CSemScope*)this; }
47329
55372
};
47330
55373
 
47331
55374
 
47332
 
#line 47333 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55375
#line 55376 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47333
55376
} // closed Puma
 
55377
class CCExprResolve;
 
55378
class CExprResolve;
47334
55379
class WinIfExists;
47335
55380
class WinImportHandler;
47336
55381
class WinMacros;
47337
 
class CMatchSyntax;
47338
 
class ExtGnu;
 
55382
class WinAsm;
 
55383
class WinDeclSpecs;
 
55384
class WinMemberExplSpec;
 
55385
class WinTypeKeywords;
 
55386
class WinFriend;
47339
55387
class ExtAC;
47340
55388
class ExtACBuilderCoupling;
47341
55389
class ExtACSyntaxCoupling;
47342
55390
class ExtACTree;
47343
55391
class ExtACKeywords;
47344
 
class WinAsm;
47345
 
class WinDeclSpecs;
47346
 
class WinMemberExplSpec;
47347
 
class WinTypeKeywords;
 
55392
class ExtGnu;
47348
55393
class PragmaOnceUnitState;
47349
55394
class PragmaOnce;
47350
 
class CCExprResolve;
47351
 
class CExprResolve;
 
55395
class CMatchSyntax;
47352
55396
namespace Puma {
47353
55397
 
47354
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55398
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47355
55399
class CT_BreakStmt : public CT_Statement {
47356
 
#line 47357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55400
#line 55401 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
55401
  friend class ::CCExprResolve;
 
55402
  friend class ::CExprResolve;
47357
55403
  friend class ::WinIfExists;
47358
55404
  friend class ::WinImportHandler;
47359
55405
  friend class ::WinMacros;
47360
 
  friend class ::CMatchSyntax;
47361
 
  friend class ::ExtGnu;
 
55406
  friend class ::WinAsm;
 
55407
  friend class ::WinDeclSpecs;
 
55408
  friend class ::WinMemberExplSpec;
 
55409
  friend class ::WinTypeKeywords;
 
55410
  friend class ::WinFriend;
47362
55411
  friend class ::ExtAC;
47363
55412
  friend class ::ExtACBuilderCoupling;
47364
55413
  friend class ::ExtACSyntaxCoupling;
47365
55414
  friend class ::ExtACTree;
47366
55415
  friend class ::ExtACKeywords;
47367
 
  friend class ::WinAsm;
47368
 
  friend class ::WinDeclSpecs;
47369
 
  friend class ::WinMemberExplSpec;
47370
 
  friend class ::WinTypeKeywords;
 
55416
  friend class ::ExtGnu;
47371
55417
  friend class ::PragmaOnceUnitState;
47372
55418
  friend class ::PragmaOnce;
47373
 
  friend class ::CCExprResolve;
47374
 
  friend class ::CExprResolve;
 
55419
  friend class ::CMatchSyntax;
47375
55420
 
47376
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55421
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47377
55422
 
47378
55423
  CTree *sons[2]; // key, semi_colon
47379
55424
 
47380
55425
public:
47381
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
55426
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
55427
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47382
55428
  static const char *NodeId ();
 
55429
  /** Get the name of the node. Can be compared with NodeId(). */
47383
55430
  const char *NodeName () const { return NodeId (); }
 
55431
  /** Get the number of sons. */
47384
55432
  int Sons () const { return 2; }
 
55433
  /** Get the n-th son.
 
55434
   *  \param n The index of the son.
 
55435
   *  \return The n-th son or NULL. */
47385
55436
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
55437
  /** Replace a son.
 
55438
   *  \param old_son The son to replace.
 
55439
   *  \param new_son The new son. */
47386
55440
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47387
55441
    CTree::ReplaceSon (sons, 2, old_son, new_son);
47388
55442
  }
47389
55443
};
47390
55444
 
47391
55445
 
47392
 
#line 47393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55446
#line 55447 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47393
55447
} // closed Puma
 
55448
class CCExprResolve;
 
55449
class CExprResolve;
47394
55450
class WinIfExists;
47395
55451
class WinImportHandler;
47396
55452
class WinMacros;
47397
 
class CMatchSyntax;
47398
 
class ExtGnu;
 
55453
class WinAsm;
 
55454
class WinDeclSpecs;
 
55455
class WinMemberExplSpec;
 
55456
class WinTypeKeywords;
 
55457
class WinFriend;
47399
55458
class ExtAC;
47400
55459
class ExtACBuilderCoupling;
47401
55460
class ExtACSyntaxCoupling;
47402
55461
class ExtACTree;
47403
55462
class ExtACKeywords;
47404
 
class WinAsm;
47405
 
class WinDeclSpecs;
47406
 
class WinMemberExplSpec;
47407
 
class WinTypeKeywords;
 
55463
class ExtGnu;
47408
55464
class PragmaOnceUnitState;
47409
55465
class PragmaOnce;
47410
 
class CCExprResolve;
47411
 
class CExprResolve;
 
55466
class CMatchSyntax;
47412
55467
namespace Puma {
47413
55468
 
47414
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55469
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47415
55470
class CT_ContinueStmt : public CT_Statement {
47416
 
#line 47417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55471
#line 55472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
55472
  friend class ::CCExprResolve;
 
55473
  friend class ::CExprResolve;
47417
55474
  friend class ::WinIfExists;
47418
55475
  friend class ::WinImportHandler;
47419
55476
  friend class ::WinMacros;
47420
 
  friend class ::CMatchSyntax;
47421
 
  friend class ::ExtGnu;
 
55477
  friend class ::WinAsm;
 
55478
  friend class ::WinDeclSpecs;
 
55479
  friend class ::WinMemberExplSpec;
 
55480
  friend class ::WinTypeKeywords;
 
55481
  friend class ::WinFriend;
47422
55482
  friend class ::ExtAC;
47423
55483
  friend class ::ExtACBuilderCoupling;
47424
55484
  friend class ::ExtACSyntaxCoupling;
47425
55485
  friend class ::ExtACTree;
47426
55486
  friend class ::ExtACKeywords;
47427
 
  friend class ::WinAsm;
47428
 
  friend class ::WinDeclSpecs;
47429
 
  friend class ::WinMemberExplSpec;
47430
 
  friend class ::WinTypeKeywords;
 
55487
  friend class ::ExtGnu;
47431
55488
  friend class ::PragmaOnceUnitState;
47432
55489
  friend class ::PragmaOnce;
47433
 
  friend class ::CCExprResolve;
47434
 
  friend class ::CExprResolve;
 
55490
  friend class ::CMatchSyntax;
47435
55491
 
47436
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55492
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47437
55493
 
47438
55494
  CTree *sons[2]; // key, semi_colon
47439
55495
 
47440
55496
public:
47441
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
55497
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
55498
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47442
55499
  static const char *NodeId ();
 
55500
  /** Get the name of the node. Can be compared with NodeId(). */
47443
55501
  const char *NodeName () const { return NodeId (); }
 
55502
  /** Get the number of sons. */
47444
55503
  int Sons () const { return 2; }
 
55504
  /** Get the n-th son.
 
55505
   *  \param n The index of the son.
 
55506
   *  \return The n-th son or NULL. */
47445
55507
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
55508
  /** Replace a son.
 
55509
   *  \param old_son The son to replace.
 
55510
   *  \param new_son The new son. */
47446
55511
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47447
55512
    CTree::ReplaceSon (sons, 2, old_son, new_son);
47448
55513
  }
47449
55514
};
47450
55515
 
47451
55516
 
47452
 
#line 47453 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55517
#line 55518 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47453
55518
} // closed Puma
 
55519
class CCExprResolve;
 
55520
class CExprResolve;
47454
55521
class WinIfExists;
47455
55522
class WinImportHandler;
47456
55523
class WinMacros;
47457
 
class CMatchSyntax;
47458
 
class ExtGnu;
 
55524
class WinAsm;
 
55525
class WinDeclSpecs;
 
55526
class WinMemberExplSpec;
 
55527
class WinTypeKeywords;
 
55528
class WinFriend;
47459
55529
class ExtAC;
47460
55530
class ExtACBuilderCoupling;
47461
55531
class ExtACSyntaxCoupling;
47462
55532
class ExtACTree;
47463
55533
class ExtACKeywords;
47464
 
class WinAsm;
47465
 
class WinDeclSpecs;
47466
 
class WinMemberExplSpec;
47467
 
class WinTypeKeywords;
 
55534
class ExtGnu;
47468
55535
class PragmaOnceUnitState;
47469
55536
class PragmaOnce;
47470
 
class CCExprResolve;
47471
 
class CExprResolve;
 
55537
class CMatchSyntax;
47472
55538
namespace Puma {
47473
55539
 
47474
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55540
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47475
55541
class CT_GotoStmt : public CT_Statement {
47476
 
#line 47477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55542
#line 55543 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
55543
  friend class ::CCExprResolve;
 
55544
  friend class ::CExprResolve;
47477
55545
  friend class ::WinIfExists;
47478
55546
  friend class ::WinImportHandler;
47479
55547
  friend class ::WinMacros;
47480
 
  friend class ::CMatchSyntax;
47481
 
  friend class ::ExtGnu;
 
55548
  friend class ::WinAsm;
 
55549
  friend class ::WinDeclSpecs;
 
55550
  friend class ::WinMemberExplSpec;
 
55551
  friend class ::WinTypeKeywords;
 
55552
  friend class ::WinFriend;
47482
55553
  friend class ::ExtAC;
47483
55554
  friend class ::ExtACBuilderCoupling;
47484
55555
  friend class ::ExtACSyntaxCoupling;
47485
55556
  friend class ::ExtACTree;
47486
55557
  friend class ::ExtACKeywords;
47487
 
  friend class ::WinAsm;
47488
 
  friend class ::WinDeclSpecs;
47489
 
  friend class ::WinMemberExplSpec;
47490
 
  friend class ::WinTypeKeywords;
 
55558
  friend class ::ExtGnu;
47491
55559
  friend class ::PragmaOnceUnitState;
47492
55560
  friend class ::PragmaOnce;
47493
 
  friend class ::CCExprResolve;
47494
 
  friend class ::CExprResolve;
 
55561
  friend class ::CMatchSyntax;
47495
55562
 
47496
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55563
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47497
55564
 
47498
55565
  CTree *sons[3]; // key, label, semi_colon
47499
55566
 
47500
55567
public:
47501
55568
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
47502
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
55569
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
47503
55570
  }
 
55571
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47504
55572
  static const char *NodeId ();
 
55573
  /** Get the name of the node. Can be compared with NodeId(). */
47505
55574
  const char *NodeName () const { return NodeId (); }
 
55575
  /** Get the number of sons. */
47506
55576
  int Sons () const { return 3; }
 
55577
  /** Get the n-th son.
 
55578
   *  \param n The index of the son.
 
55579
   *  \return The n-th son or NULL. */
47507
55580
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
47508
55581
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
55582
  /** Replace a son.
 
55583
   *  \param old_son The son to replace.
 
55584
   *  \param new_son The new son. */
47509
55585
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47510
55586
    CTree::ReplaceSon (sons, 3, old_son, new_son);
47511
55587
  }
47512
55588
};
47513
55589
 
47514
55590
 
47515
 
#line 47516 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55591
#line 55592 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47516
55592
} // closed Puma
 
55593
class CCExprResolve;
 
55594
class CExprResolve;
47517
55595
class WinIfExists;
47518
55596
class WinImportHandler;
47519
55597
class WinMacros;
47520
 
class CMatchSyntax;
47521
 
class ExtGnu;
 
55598
class WinAsm;
 
55599
class WinDeclSpecs;
 
55600
class WinMemberExplSpec;
 
55601
class WinTypeKeywords;
 
55602
class WinFriend;
47522
55603
class ExtAC;
47523
55604
class ExtACBuilderCoupling;
47524
55605
class ExtACSyntaxCoupling;
47525
55606
class ExtACTree;
47526
55607
class ExtACKeywords;
47527
 
class WinAsm;
47528
 
class WinDeclSpecs;
47529
 
class WinMemberExplSpec;
47530
 
class WinTypeKeywords;
 
55608
class ExtGnu;
47531
55609
class PragmaOnceUnitState;
47532
55610
class PragmaOnce;
47533
 
class CCExprResolve;
47534
 
class CExprResolve;
 
55611
class CMatchSyntax;
47535
55612
namespace Puma {
47536
55613
 
47537
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55614
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47538
55615
class CT_ReturnStmt : public CT_Statement {
47539
 
#line 47540 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55616
#line 55617 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
55617
  friend class ::CCExprResolve;
 
55618
  friend class ::CExprResolve;
47540
55619
  friend class ::WinIfExists;
47541
55620
  friend class ::WinImportHandler;
47542
55621
  friend class ::WinMacros;
47543
 
  friend class ::CMatchSyntax;
47544
 
  friend class ::ExtGnu;
 
55622
  friend class ::WinAsm;
 
55623
  friend class ::WinDeclSpecs;
 
55624
  friend class ::WinMemberExplSpec;
 
55625
  friend class ::WinTypeKeywords;
 
55626
  friend class ::WinFriend;
47545
55627
  friend class ::ExtAC;
47546
55628
  friend class ::ExtACBuilderCoupling;
47547
55629
  friend class ::ExtACSyntaxCoupling;
47548
55630
  friend class ::ExtACTree;
47549
55631
  friend class ::ExtACKeywords;
47550
 
  friend class ::WinAsm;
47551
 
  friend class ::WinDeclSpecs;
47552
 
  friend class ::WinMemberExplSpec;
47553
 
  friend class ::WinTypeKeywords;
 
55632
  friend class ::ExtGnu;
47554
55633
  friend class ::PragmaOnceUnitState;
47555
55634
  friend class ::PragmaOnce;
47556
 
  friend class ::CCExprResolve;
47557
 
  friend class ::CExprResolve;
 
55635
  friend class ::CMatchSyntax;
47558
55636
 
47559
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55637
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47560
55638
 
47561
55639
  CTree *sons[3]; // key, expr, semi_colon
47562
55640
 
47563
55641
public:
47564
55642
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
47565
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
55643
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
47566
55644
  }
 
55645
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47567
55646
  static const char *NodeId ();
 
55647
  /** Get the name of the node. Can be compared with NodeId(). */
47568
55648
  const char *NodeName () const { return NodeId (); }
 
55649
  /** Get the number of sons. */
47569
55650
  int Sons () const { return CTree::Sons (sons, 3); }
 
55651
  /** Get the n-th son.
 
55652
   *  \param n The index of the son.
 
55653
   *  \return The n-th son or NULL. */
47570
55654
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
47571
55655
  CTree *Expr () const { return sons[1]; }
 
55656
  /** Replace a son.
 
55657
   *  \param old_son The son to replace.
 
55658
   *  \param new_son The new son. */
47572
55659
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47573
55660
    CTree::ReplaceSon (sons, 3, old_son, new_son);
47574
55661
  }
47575
55662
};
47576
55663
 
47577
55664
 
47578
 
#line 47579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55665
#line 55666 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47579
55666
} // closed Puma
 
55667
class CCExprResolve;
 
55668
class CExprResolve;
47580
55669
class WinIfExists;
47581
55670
class WinImportHandler;
47582
55671
class WinMacros;
47583
 
class CMatchSyntax;
47584
 
class ExtGnu;
 
55672
class WinAsm;
 
55673
class WinDeclSpecs;
 
55674
class WinMemberExplSpec;
 
55675
class WinTypeKeywords;
 
55676
class WinFriend;
47585
55677
class ExtAC;
47586
55678
class ExtACBuilderCoupling;
47587
55679
class ExtACSyntaxCoupling;
47588
55680
class ExtACTree;
47589
55681
class ExtACKeywords;
47590
 
class WinAsm;
47591
 
class WinDeclSpecs;
47592
 
class WinMemberExplSpec;
47593
 
class WinTypeKeywords;
 
55682
class ExtGnu;
47594
55683
class PragmaOnceUnitState;
47595
55684
class PragmaOnce;
47596
 
class CCExprResolve;
47597
 
class CExprResolve;
 
55685
class CMatchSyntax;
47598
55686
namespace Puma {
47599
55687
 
47600
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55688
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47601
55689
class CT_WhileStmt : public CT_Statement, public CSemScope {
47602
 
#line 47603 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55690
#line 55691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
55691
  friend class ::CCExprResolve;
 
55692
  friend class ::CExprResolve;
47603
55693
  friend class ::WinIfExists;
47604
55694
  friend class ::WinImportHandler;
47605
55695
  friend class ::WinMacros;
47606
 
  friend class ::CMatchSyntax;
47607
 
  friend class ::ExtGnu;
 
55696
  friend class ::WinAsm;
 
55697
  friend class ::WinDeclSpecs;
 
55698
  friend class ::WinMemberExplSpec;
 
55699
  friend class ::WinTypeKeywords;
 
55700
  friend class ::WinFriend;
47608
55701
  friend class ::ExtAC;
47609
55702
  friend class ::ExtACBuilderCoupling;
47610
55703
  friend class ::ExtACSyntaxCoupling;
47611
55704
  friend class ::ExtACTree;
47612
55705
  friend class ::ExtACKeywords;
47613
 
  friend class ::WinAsm;
47614
 
  friend class ::WinDeclSpecs;
47615
 
  friend class ::WinMemberExplSpec;
47616
 
  friend class ::WinTypeKeywords;
 
55706
  friend class ::ExtGnu;
47617
55707
  friend class ::PragmaOnceUnitState;
47618
55708
  friend class ::PragmaOnce;
47619
 
  friend class ::CCExprResolve;
47620
 
  friend class ::CExprResolve;
 
55709
  friend class ::CMatchSyntax;
47621
55710
 
47622
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55711
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47623
55712
 
47624
55713
  CTree *sons[5]; // key, open, cond, close, stmt
47625
55714
 
47626
55715
public:
47627
55716
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
47628
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
55717
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
55718
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
47629
55719
  }
 
55720
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47630
55721
  static const char *NodeId ();
 
55722
  /** Get the name of the node. Can be compared with NodeId(). */
47631
55723
  const char *NodeName () const { return NodeId (); }
 
55724
  /** Get the number of sons. */
47632
55725
  int Sons () const { return 5; }
 
55726
  /** Get the n-th son.
 
55727
   *  \param n The index of the son.
 
55728
   *  \return The n-th son or NULL. */
47633
55729
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
47634
55730
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
47635
55731
  CTree *Condition () const { return sons[2]; }
 
55732
  /** Replace a son.
 
55733
   *  \param old_son The son to replace.
 
55734
   *  \param new_son The new son. */
47636
55735
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47637
55736
    CTree::ReplaceSon (sons, 5, old_son, new_son);
47638
55737
  }
 
55738
  CSemScope *SemScope () const { return (CSemScope*)this; }
47639
55739
};
47640
55740
 
47641
55741
 
47642
 
#line 47643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55742
#line 55743 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47643
55743
} // closed Puma
 
55744
class CCExprResolve;
 
55745
class CExprResolve;
47644
55746
class WinIfExists;
47645
55747
class WinImportHandler;
47646
55748
class WinMacros;
47647
 
class CMatchSyntax;
47648
 
class ExtGnu;
 
55749
class WinAsm;
 
55750
class WinDeclSpecs;
 
55751
class WinMemberExplSpec;
 
55752
class WinTypeKeywords;
 
55753
class WinFriend;
47649
55754
class ExtAC;
47650
55755
class ExtACBuilderCoupling;
47651
55756
class ExtACSyntaxCoupling;
47652
55757
class ExtACTree;
47653
55758
class ExtACKeywords;
47654
 
class WinAsm;
47655
 
class WinDeclSpecs;
47656
 
class WinMemberExplSpec;
47657
 
class WinTypeKeywords;
 
55759
class ExtGnu;
47658
55760
class PragmaOnceUnitState;
47659
55761
class PragmaOnce;
47660
 
class CCExprResolve;
47661
 
class CExprResolve;
 
55762
class CMatchSyntax;
47662
55763
namespace Puma {
47663
55764
 
47664
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55765
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47665
55766
class CT_DoStmt : public CT_Statement {
47666
 
#line 47667 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55767
#line 55768 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
55768
  friend class ::CCExprResolve;
 
55769
  friend class ::CExprResolve;
47667
55770
  friend class ::WinIfExists;
47668
55771
  friend class ::WinImportHandler;
47669
55772
  friend class ::WinMacros;
47670
 
  friend class ::CMatchSyntax;
47671
 
  friend class ::ExtGnu;
 
55773
  friend class ::WinAsm;
 
55774
  friend class ::WinDeclSpecs;
 
55775
  friend class ::WinMemberExplSpec;
 
55776
  friend class ::WinTypeKeywords;
 
55777
  friend class ::WinFriend;
47672
55778
  friend class ::ExtAC;
47673
55779
  friend class ::ExtACBuilderCoupling;
47674
55780
  friend class ::ExtACSyntaxCoupling;
47675
55781
  friend class ::ExtACTree;
47676
55782
  friend class ::ExtACKeywords;
47677
 
  friend class ::WinAsm;
47678
 
  friend class ::WinDeclSpecs;
47679
 
  friend class ::WinMemberExplSpec;
47680
 
  friend class ::WinTypeKeywords;
 
55783
  friend class ::ExtGnu;
47681
55784
  friend class ::PragmaOnceUnitState;
47682
55785
  friend class ::PragmaOnce;
47683
 
  friend class ::CCExprResolve;
47684
 
  friend class ::CExprResolve;
 
55786
  friend class ::CMatchSyntax;
47685
55787
 
47686
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55788
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47687
55789
 
47688
55790
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
47689
55791
 
47690
55792
public:
47691
55793
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
47692
55794
             CTree *c, CTree *sc) {
47693
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
47694
 
    sons[5] = c; sons[6] = sc; 
 
55795
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
55796
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
55797
    AddSon (sons[6], sc); 
47695
55798
  }
 
55799
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47696
55800
  static const char *NodeId ();
 
55801
  /** Get the name of the node. Can be compared with NodeId(). */
47697
55802
  const char *NodeName () const { return NodeId (); }
 
55803
  /** Get the number of sons. */
47698
55804
  int Sons () const { return 7; }
 
55805
  /** Get the n-th son.
 
55806
   *  \param n The index of the son.
 
55807
   *  \return The n-th son or NULL. */
47699
55808
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
47700
55809
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
47701
55810
  CTree *Expr () const { return sons[4]; }
 
55811
  /** Replace a son.
 
55812
   *  \param old_son The son to replace.
 
55813
   *  \param new_son The new son. */
47702
55814
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47703
55815
    CTree::ReplaceSon (sons, 7, old_son, new_son);
47704
55816
  }
47705
55817
};
47706
55818
 
47707
55819
 
47708
 
#line 47709 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55820
#line 55821 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47709
55821
} // closed Puma
 
55822
class CCExprResolve;
 
55823
class CExprResolve;
47710
55824
class WinIfExists;
47711
55825
class WinImportHandler;
47712
55826
class WinMacros;
47713
 
class CMatchSyntax;
47714
 
class ExtGnu;
 
55827
class WinAsm;
 
55828
class WinDeclSpecs;
 
55829
class WinMemberExplSpec;
 
55830
class WinTypeKeywords;
 
55831
class WinFriend;
47715
55832
class ExtAC;
47716
55833
class ExtACBuilderCoupling;
47717
55834
class ExtACSyntaxCoupling;
47718
55835
class ExtACTree;
47719
55836
class ExtACKeywords;
47720
 
class WinAsm;
47721
 
class WinDeclSpecs;
47722
 
class WinMemberExplSpec;
47723
 
class WinTypeKeywords;
 
55837
class ExtGnu;
47724
55838
class PragmaOnceUnitState;
47725
55839
class PragmaOnce;
47726
 
class CCExprResolve;
47727
 
class CExprResolve;
 
55840
class CMatchSyntax;
47728
55841
namespace Puma {
47729
55842
 
47730
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55843
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47731
55844
class CT_ForStmt : public CT_Statement, public CSemScope {
47732
 
#line 47733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55845
#line 55846 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
55846
  friend class ::CCExprResolve;
 
55847
  friend class ::CExprResolve;
47733
55848
  friend class ::WinIfExists;
47734
55849
  friend class ::WinImportHandler;
47735
55850
  friend class ::WinMacros;
47736
 
  friend class ::CMatchSyntax;
47737
 
  friend class ::ExtGnu;
 
55851
  friend class ::WinAsm;
 
55852
  friend class ::WinDeclSpecs;
 
55853
  friend class ::WinMemberExplSpec;
 
55854
  friend class ::WinTypeKeywords;
 
55855
  friend class ::WinFriend;
47738
55856
  friend class ::ExtAC;
47739
55857
  friend class ::ExtACBuilderCoupling;
47740
55858
  friend class ::ExtACSyntaxCoupling;
47741
55859
  friend class ::ExtACTree;
47742
55860
  friend class ::ExtACKeywords;
47743
 
  friend class ::WinAsm;
47744
 
  friend class ::WinDeclSpecs;
47745
 
  friend class ::WinMemberExplSpec;
47746
 
  friend class ::WinTypeKeywords;
 
55861
  friend class ::ExtGnu;
47747
55862
  friend class ::PragmaOnceUnitState;
47748
55863
  friend class ::PragmaOnce;
47749
 
  friend class ::CCExprResolve;
47750
 
  friend class ::CExprResolve;
 
55864
  friend class ::CMatchSyntax;
47751
55865
 
47752
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55866
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47753
55867
 
47754
55868
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
47755
55869
 
47756
55870
public:
47757
55871
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
47758
55872
              CTree *e, CTree *c, CTree *stmt) {
47759
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
47760
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
55873
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
55874
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
55875
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
47761
55876
  }
 
55877
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47762
55878
  static const char *NodeId ();
 
55879
  /** Get the name of the node. Can be compared with NodeId(). */
47763
55880
  const char *NodeName () const { return NodeId (); }
 
55881
  /** Get the number of sons. */
47764
55882
  int Sons () const { return CTree::Sons (sons, 8); }
 
55883
  /** Get the n-th son.
 
55884
   *  \param n The index of the son.
 
55885
   *  \return The n-th son or NULL. */
47765
55886
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
47766
55887
  CTree *InitStmt () const { return sons[2]; }
47767
55888
  CTree *Condition () const { return sons[3]; }
47768
55889
  CTree *Expr () const { return sons[5]; }
47769
55890
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
55891
  /** Replace a son.
 
55892
   *  \param old_son The son to replace.
 
55893
   *  \param new_son The new son. */
47770
55894
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47771
55895
    CTree::ReplaceSon (sons, 8, old_son, new_son);
47772
55896
  }
 
55897
  CSemScope *SemScope () const { return (CSemScope*)this; }
47773
55898
};
47774
55899
 
47775
55900
 
47776
 
#line 47777 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55901
#line 55902 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47777
55902
} // closed Puma
 
55903
class CCExprResolve;
 
55904
class CExprResolve;
47778
55905
class WinIfExists;
47779
55906
class WinImportHandler;
47780
55907
class WinMacros;
47781
 
class CMatchSyntax;
47782
 
class ExtGnu;
 
55908
class WinAsm;
 
55909
class WinDeclSpecs;
 
55910
class WinMemberExplSpec;
 
55911
class WinTypeKeywords;
 
55912
class WinFriend;
47783
55913
class ExtAC;
47784
55914
class ExtACBuilderCoupling;
47785
55915
class ExtACSyntaxCoupling;
47786
55916
class ExtACTree;
47787
55917
class ExtACKeywords;
47788
 
class WinAsm;
47789
 
class WinDeclSpecs;
47790
 
class WinMemberExplSpec;
47791
 
class WinTypeKeywords;
 
55918
class ExtGnu;
47792
55919
class PragmaOnceUnitState;
47793
55920
class PragmaOnce;
47794
 
class CCExprResolve;
47795
 
class CExprResolve;
 
55921
class CMatchSyntax;
47796
55922
namespace Puma {
47797
55923
 
47798
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55924
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47799
55925
class CT_Condition : public CT_Decl, public CSemObject {
47800
 
#line 47801 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55926
#line 55927 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
55927
  friend class ::CCExprResolve;
 
55928
  friend class ::CExprResolve;
47801
55929
  friend class ::WinIfExists;
47802
55930
  friend class ::WinImportHandler;
47803
55931
  friend class ::WinMacros;
47804
 
  friend class ::CMatchSyntax;
47805
 
  friend class ::ExtGnu;
 
55932
  friend class ::WinAsm;
 
55933
  friend class ::WinDeclSpecs;
 
55934
  friend class ::WinMemberExplSpec;
 
55935
  friend class ::WinTypeKeywords;
 
55936
  friend class ::WinFriend;
47806
55937
  friend class ::ExtAC;
47807
55938
  friend class ::ExtACBuilderCoupling;
47808
55939
  friend class ::ExtACSyntaxCoupling;
47809
55940
  friend class ::ExtACTree;
47810
55941
  friend class ::ExtACKeywords;
47811
 
  friend class ::WinAsm;
47812
 
  friend class ::WinDeclSpecs;
47813
 
  friend class ::WinMemberExplSpec;
47814
 
  friend class ::WinTypeKeywords;
 
55942
  friend class ::ExtGnu;
47815
55943
  friend class ::PragmaOnceUnitState;
47816
55944
  friend class ::PragmaOnce;
47817
 
  friend class ::CCExprResolve;
47818
 
  friend class ::CExprResolve;
 
55945
  friend class ::CMatchSyntax;
47819
55946
 
47820
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
55947
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47821
55948
 
47822
55949
  CTree *sons[3]; // declspecs, declarator, init
47823
55950
 
47824
55951
public:
47825
55952
  CT_Condition (CTree *dsl, CTree *d) {
47826
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
55953
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
47827
55954
  }
 
55955
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47828
55956
  static const char *NodeId ();
 
55957
  /** Get the name of the node. Can be compared with NodeId(). */
47829
55958
  const char *NodeName () const { return NodeId (); }
 
55959
  /** Get the number of sons. */
47830
55960
  int Sons () const { return CTree::Sons (sons, 3); }
 
55961
  /** Get the n-th son.
 
55962
   *  \param n The index of the son.
 
55963
   *  \return The n-th son or NULL. */
47831
55964
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
47832
55965
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
47833
55966
  CTree *Declarator () const { return sons[1]; }
47834
55967
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
47835
55968
  CSemObject *SemObject () const { return (CSemObject*)this; }
47836
 
  void Initializer (CTree *i) { sons[2] = i; }
 
55969
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
55970
  /** Replace a son.
 
55971
   *  \param old_son The son to replace.
 
55972
   *  \param new_son The new son. */
47837
55973
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
47838
55974
    CTree::ReplaceSon (sons, 3, old_son, new_son);
47839
55975
  }
47846
55982
/*****************************************************************************/
47847
55983
 
47848
55984
 
47849
 
#line 47850 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
55985
#line 55986 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47850
55986
} // closed Puma
 
55987
class CCExprResolve;
 
55988
class CExprResolve;
47851
55989
class WinIfExists;
47852
55990
class WinImportHandler;
47853
55991
class WinMacros;
47854
 
class CMatchSyntax;
47855
 
class ExtGnu;
 
55992
class WinAsm;
 
55993
class WinDeclSpecs;
 
55994
class WinMemberExplSpec;
 
55995
class WinTypeKeywords;
 
55996
class WinFriend;
47856
55997
class ExtAC;
47857
55998
class ExtACBuilderCoupling;
47858
55999
class ExtACSyntaxCoupling;
47859
56000
class ExtACTree;
47860
56001
class ExtACKeywords;
47861
 
class WinAsm;
47862
 
class WinDeclSpecs;
47863
 
class WinMemberExplSpec;
47864
 
class WinTypeKeywords;
 
56002
class ExtGnu;
47865
56003
class PragmaOnceUnitState;
47866
56004
class PragmaOnce;
47867
 
class CCExprResolve;
47868
 
class CExprResolve;
47869
 
namespace Puma {
47870
 
 
47871
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56005
class CMatchSyntax;
 
56006
namespace Puma {
 
56007
 
 
56008
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56009
 
 
56010
#line 56011 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56011
} // closed Puma
 
56012
 
 
56013
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
56014
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
56015
#include "ExtACTree.ah"
 
56016
#endif
 
56017
namespace Puma {
 
56018
 
 
56019
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47872
56020
class CT_ClassDef : public CT_Decl, public CSemObject {
47873
 
#line 47874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56021
#line 56022 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56022
  friend class ::CCExprResolve;
 
56023
  friend class ::CExprResolve;
47874
56024
  friend class ::WinIfExists;
47875
56025
  friend class ::WinImportHandler;
47876
56026
  friend class ::WinMacros;
47877
 
  friend class ::CMatchSyntax;
47878
 
  friend class ::ExtGnu;
 
56027
  friend class ::WinAsm;
 
56028
  friend class ::WinDeclSpecs;
 
56029
  friend class ::WinMemberExplSpec;
 
56030
  friend class ::WinTypeKeywords;
 
56031
  friend class ::WinFriend;
47879
56032
  friend class ::ExtAC;
47880
56033
  friend class ::ExtACBuilderCoupling;
47881
56034
  friend class ::ExtACSyntaxCoupling;
47882
56035
  friend class ::ExtACTree;
47883
56036
  friend class ::ExtACKeywords;
47884
 
  friend class ::WinAsm;
47885
 
  friend class ::WinDeclSpecs;
47886
 
  friend class ::WinMemberExplSpec;
47887
 
  friend class ::WinTypeKeywords;
 
56037
  friend class ::ExtGnu;
47888
56038
  friend class ::PragmaOnceUnitState;
47889
56039
  friend class ::PragmaOnce;
47890
 
  friend class ::CCExprResolve;
47891
 
  friend class ::CExprResolve;
 
56040
  friend class ::CMatchSyntax;
47892
56041
 
47893
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56042
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47894
56043
 
47895
56044
   
47896
 
#line 47897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56045
#line 56046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47897
56046
 
47898
56047
  struct __ac_wrapper_sons {
47899
56048
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
47908
56057
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
47909
56058
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
47910
56059
  } sons
47911
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56060
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47912
56061
 
47913
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56062
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47914
56063
; // key, name, bases, members
47915
56064
  CTree *obj_decl;
47916
56065
 
47917
56066
public:
47918
56067
  
47919
 
#line 47920 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
47920
 
 
47921
 
 
47922
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
47923
 
  typedef void Result;
47924
 
  typedef ::Puma::CT_ClassDef That;
47925
 
  typedef ::Puma::CT_ClassDef Target;
47926
 
  static const int JPID = 4;
 
56068
#line 56069 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56069
 
 
56070
 
 
56071
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
56072
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
56073
  typedef TResult Result;
 
56074
  typedef TThat   That;
 
56075
  typedef TTarget Target;
 
56076
  enum { ARGS = TArgs::ARGS };
 
56077
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
56078
  static const int JPID = 55;
47927
56079
  static const AC::JPType JPTYPE = (AC::JPType)16;
47928
56080
  struct Res {
47929
56081
    typedef void Type;
47930
56082
    typedef void ReferredType;
47931
56083
  };
47932
 
  enum { ARGS = 3 };
47933
 
  template <int I, int DUMMY = 0> struct Arg {
47934
 
    typedef void Type;
47935
 
    typedef void ReferredType;
47936
 
  };
47937
 
  template <int DUMMY> struct Arg<0, DUMMY> {
47938
 
    typedef ::Puma::CTree * Type;
47939
 
    typedef ::Puma::CTree * ReferredType;
47940
 
  };
47941
 
  template <int DUMMY> struct Arg<1, DUMMY> {
47942
 
    typedef ::Puma::CTree * Type;
47943
 
    typedef ::Puma::CTree * ReferredType;
47944
 
  };
47945
 
  template <int DUMMY> struct Arg<2, DUMMY> {
47946
 
    typedef ::Puma::CTree * Type;
47947
 
    typedef ::Puma::CTree * ReferredType;
47948
 
  };
47949
56084
 
47950
56085
  That *_that;
47951
56086
 
47954
56089
};
47955
56090
 
47956
56091
 
47957
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56092
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47958
56093
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
47959
 
#line 47960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56094
#line 56095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
47960
56095
{
47961
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
47962
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
47963
 
this->__exec_old_C1(arg0, arg1, arg2);
47964
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
47965
 
 
 
56096
  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;
 
56097
    __TJP tjp;
 
56098
  tjp._that =  (__TJP::That*)this;
 
56099
    this->__exec_old_C1(arg0, arg1, arg2);
 
56100
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
56101
  
47966
56102
}
47967
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
47968
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56103
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
56104
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
47969
56105
{
47970
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
56106
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
56107
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
47971
56108
  }
 
56109
  /** Get the identifier for this node type. Can be compared with NodeName(). */
47972
56110
  static const char *NodeId ();
 
56111
  /** Get the name of the node. Can be compared with NodeId(). */
47973
56112
  const char *NodeName () const { return NodeId (); }
 
56113
  /** Get the number of sons. */
47974
56114
  int Sons () const { return CTree::Sons (sons, 4); }
 
56115
  /** Get the n-th son.
 
56116
   *  \param n The index of the son.
 
56117
   *  \return The n-th son or NULL. */
47975
56118
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
47976
56119
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
47977
56120
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
47978
56121
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
47979
56122
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
47980
56123
  CSemObject *SemObject () const { return (CSemObject*)this; }
47981
 
  void Members (CTree *m) { sons[3] = m; }
47982
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
47983
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
56124
  void Members (CTree *m) { AddSon (sons[3], m); }
 
56125
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
56126
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
56127
  /** Replace a son.
 
56128
   *  \param old_son The son to replace.
 
56129
   *  \param new_son The new son. */
47984
56130
  void ReplaceSon (CTree *old_son, CTree *new_son) {
47985
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
47986
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
56131
    CTree::ReplaceSon (sons, 4, old_son, new_son);
47987
56132
  }
47988
56133
   private:
47989
56134
 
47990
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
47991
 
 CTree * _intro_members ;
 
56135
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
56136
 Puma :: CTree * _intro_members ;
 
56137
Puma :: CTree * _base_intros ;
47992
56138
public :
47993
 
CTree * IntroMembers ( ) const { return _intro_members ; }
47994
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
47995
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
47996
 
 
47997
 
#line 47998 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
47998
 
 
47999
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
48000
 
  typedef void Result;
48001
 
  typedef ::Puma::CT_ClassDef That;
48002
 
  typedef ::Puma::CT_ClassDef Target;
48003
 
  static const int JPID = 4;
 
56139
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
56140
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
56141
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
56142
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
56143
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56144
 
 
56145
#line 56146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56146
 
 
56147
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
56148
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
56149
  typedef TResult Result;
 
56150
  typedef TThat   That;
 
56151
  typedef TTarget Target;
 
56152
  enum { ARGS = TArgs::ARGS };
 
56153
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
56154
  static const int JPID = 6550;
48004
56155
  static const AC::JPType JPTYPE = (AC::JPType)16;
48005
56156
  struct Res {
48006
56157
    typedef void Type;
48007
56158
    typedef void ReferredType;
48008
56159
  };
48009
 
  enum { ARGS = 1 };
48010
 
  template <int I, int DUMMY = 0> struct Arg {
48011
 
    typedef void Type;
48012
 
    typedef void ReferredType;
48013
 
  };
48014
 
  template <int DUMMY> struct Arg<0, DUMMY> {
48015
 
    typedef const ::Puma::CT_ClassDef & Type;
48016
 
    typedef const ::Puma::CT_ClassDef ReferredType;
48017
 
  };
48018
56160
 
48019
56161
  That *_that;
48020
56162
 
48023
56165
};
48024
56166
 
48025
56167
 
48026
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56168
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48027
56169
 
48028
 
#line 48029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56170
#line 56171 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48029
56171
 
48030
56172
public:
48031
 
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) {
48032
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
48033
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
48034
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
56173
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) {
 
56174
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
56175
  __TJP tjp;
 
56176
  tjp._that =  (__TJP::That*)this;
 
56177
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
48035
56178
 
48036
56179
}
48037
56180
 
48038
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48039
 
 
48040
 
#line 48041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
48041
 
 
48042
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
48043
 
  typedef void Result;
48044
 
  typedef ::Puma::CT_ClassDef That;
48045
 
  typedef ::Puma::CT_ClassDef Target;
48046
 
  static const int JPID = 4;
 
56181
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56182
 
 
56183
#line 56184 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56184
 
 
56185
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
56186
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
56187
  typedef TResult Result;
 
56188
  typedef TThat   That;
 
56189
  typedef TTarget Target;
 
56190
  enum { ARGS = TArgs::ARGS };
 
56191
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
56192
  static const int JPID = 6548;
48047
56193
  static const AC::JPType JPTYPE = (AC::JPType)32;
48048
56194
  struct Res {
48049
56195
    typedef void Type;
48050
56196
    typedef void ReferredType;
48051
56197
  };
48052
 
  enum { ARGS = 0 };
48053
 
  template <int I, int DUMMY = 0> struct Arg {
48054
 
    typedef void Type;
48055
 
    typedef void ReferredType;
48056
 
  };
48057
56198
 
48058
56199
  That *_that;
48059
56200
 
48062
56203
};
48063
56204
 
48064
56205
 
48065
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56206
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48066
56207
 
48067
 
#line 48068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56208
#line 56209 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48068
56209
 
48069
56210
public:
48070
56211
inline ~CT_ClassDef () {
48071
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
48072
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
48073
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
56212
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
56213
  __TJP tjp;
 
56214
  tjp._that =  (__TJP::That*)this;
 
56215
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
48074
56216
 
48075
56217
}
48076
56218
 
48077
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56219
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48078
56220
};
48079
56221
      
48080
56222
 
48081
 
#line 48082 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56223
#line 56224 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48082
56224
} // closed Puma
 
56225
class CCExprResolve;
 
56226
class CExprResolve;
48083
56227
class WinIfExists;
48084
56228
class WinImportHandler;
48085
56229
class WinMacros;
48086
 
class CMatchSyntax;
48087
 
class ExtGnu;
 
56230
class WinAsm;
 
56231
class WinDeclSpecs;
 
56232
class WinMemberExplSpec;
 
56233
class WinTypeKeywords;
 
56234
class WinFriend;
48088
56235
class ExtAC;
48089
56236
class ExtACBuilderCoupling;
48090
56237
class ExtACSyntaxCoupling;
48091
56238
class ExtACTree;
48092
56239
class ExtACKeywords;
48093
 
class WinAsm;
48094
 
class WinDeclSpecs;
48095
 
class WinMemberExplSpec;
48096
 
class WinTypeKeywords;
 
56240
class ExtGnu;
48097
56241
class PragmaOnceUnitState;
48098
56242
class PragmaOnce;
48099
 
class CCExprResolve;
48100
 
class CExprResolve;
 
56243
class CMatchSyntax;
48101
56244
namespace Puma {
48102
56245
 
48103
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56246
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48104
56247
class CT_UnionDef : public CT_ClassDef {
48105
 
#line 48106 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56248
#line 56249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56249
  friend class ::CCExprResolve;
 
56250
  friend class ::CExprResolve;
48106
56251
  friend class ::WinIfExists;
48107
56252
  friend class ::WinImportHandler;
48108
56253
  friend class ::WinMacros;
48109
 
  friend class ::CMatchSyntax;
48110
 
  friend class ::ExtGnu;
 
56254
  friend class ::WinAsm;
 
56255
  friend class ::WinDeclSpecs;
 
56256
  friend class ::WinMemberExplSpec;
 
56257
  friend class ::WinTypeKeywords;
 
56258
  friend class ::WinFriend;
48111
56259
  friend class ::ExtAC;
48112
56260
  friend class ::ExtACBuilderCoupling;
48113
56261
  friend class ::ExtACSyntaxCoupling;
48114
56262
  friend class ::ExtACTree;
48115
56263
  friend class ::ExtACKeywords;
48116
 
  friend class ::WinAsm;
48117
 
  friend class ::WinDeclSpecs;
48118
 
  friend class ::WinMemberExplSpec;
48119
 
  friend class ::WinTypeKeywords;
 
56264
  friend class ::ExtGnu;
48120
56265
  friend class ::PragmaOnceUnitState;
48121
56266
  friend class ::PragmaOnce;
48122
 
  friend class ::CCExprResolve;
48123
 
  friend class ::CExprResolve;
 
56267
  friend class ::CMatchSyntax;
48124
56268
 
48125
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56269
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48126
56270
 
48127
56271
public:
48128
56272
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
48129
56273
  static const char *NodeId ();
 
56274
  /** Get the name of the node. Can be compared with NodeId(). */
48130
56275
  const char *NodeName () const { return NodeId (); }
48131
56276
};
48132
56277
      
48133
56278
 
48134
 
#line 48135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56279
#line 56280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48135
56280
} // closed Puma
 
56281
class CCExprResolve;
 
56282
class CExprResolve;
48136
56283
class WinIfExists;
48137
56284
class WinImportHandler;
48138
56285
class WinMacros;
48139
 
class CMatchSyntax;
48140
 
class ExtGnu;
 
56286
class WinAsm;
 
56287
class WinDeclSpecs;
 
56288
class WinMemberExplSpec;
 
56289
class WinTypeKeywords;
 
56290
class WinFriend;
48141
56291
class ExtAC;
48142
56292
class ExtACBuilderCoupling;
48143
56293
class ExtACSyntaxCoupling;
48144
56294
class ExtACTree;
48145
56295
class ExtACKeywords;
48146
 
class WinAsm;
48147
 
class WinDeclSpecs;
48148
 
class WinMemberExplSpec;
48149
 
class WinTypeKeywords;
 
56296
class ExtGnu;
48150
56297
class PragmaOnceUnitState;
48151
56298
class PragmaOnce;
48152
 
class CCExprResolve;
48153
 
class CExprResolve;
 
56299
class CMatchSyntax;
48154
56300
namespace Puma {
48155
56301
 
48156
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56302
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48157
56303
class CT_MembList : public CT_DeclList, public CSemScope {
48158
 
#line 48159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56304
#line 56305 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56305
  friend class ::CCExprResolve;
 
56306
  friend class ::CExprResolve;
48159
56307
  friend class ::WinIfExists;
48160
56308
  friend class ::WinImportHandler;
48161
56309
  friend class ::WinMacros;
48162
 
  friend class ::CMatchSyntax;
48163
 
  friend class ::ExtGnu;
 
56310
  friend class ::WinAsm;
 
56311
  friend class ::WinDeclSpecs;
 
56312
  friend class ::WinMemberExplSpec;
 
56313
  friend class ::WinTypeKeywords;
 
56314
  friend class ::WinFriend;
48164
56315
  friend class ::ExtAC;
48165
56316
  friend class ::ExtACBuilderCoupling;
48166
56317
  friend class ::ExtACSyntaxCoupling;
48167
56318
  friend class ::ExtACTree;
48168
56319
  friend class ::ExtACKeywords;
48169
 
  friend class ::WinAsm;
48170
 
  friend class ::WinDeclSpecs;
48171
 
  friend class ::WinMemberExplSpec;
48172
 
  friend class ::WinTypeKeywords;
 
56320
  friend class ::ExtGnu;
48173
56321
  friend class ::PragmaOnceUnitState;
48174
56322
  friend class ::PragmaOnce;
48175
 
  friend class ::CCExprResolve;
48176
 
  friend class ::CExprResolve;
 
56323
  friend class ::CMatchSyntax;
48177
56324
 
48178
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56325
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48179
56326
 
48180
56327
public:
48181
56328
  CT_MembList (int size = 10, int incr = 10) : 
48182
56329
    CT_DeclList (size, incr) {}
 
56330
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48183
56331
  static const char *NodeId ();
 
56332
  /** Get the name of the node. Can be compared with NodeId(). */
48184
56333
  const char *NodeName () const { return NodeId (); }
 
56334
  CSemScope *SemScope () const { return (CSemScope*)this; }
48185
56335
};
48186
56336
 
48187
56337
 
48188
 
#line 48189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56338
#line 56339 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48189
56339
} // closed Puma
 
56340
class CCExprResolve;
 
56341
class CExprResolve;
48190
56342
class WinIfExists;
48191
56343
class WinImportHandler;
48192
56344
class WinMacros;
48193
 
class CMatchSyntax;
48194
 
class ExtGnu;
 
56345
class WinAsm;
 
56346
class WinDeclSpecs;
 
56347
class WinMemberExplSpec;
 
56348
class WinTypeKeywords;
 
56349
class WinFriend;
48195
56350
class ExtAC;
48196
56351
class ExtACBuilderCoupling;
48197
56352
class ExtACSyntaxCoupling;
48198
56353
class ExtACTree;
48199
56354
class ExtACKeywords;
48200
 
class WinAsm;
48201
 
class WinDeclSpecs;
48202
 
class WinMemberExplSpec;
48203
 
class WinTypeKeywords;
 
56355
class ExtGnu;
48204
56356
class PragmaOnceUnitState;
48205
56357
class PragmaOnce;
48206
 
class CCExprResolve;
48207
 
class CExprResolve;
 
56358
class CMatchSyntax;
48208
56359
namespace Puma {
48209
56360
 
48210
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56361
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48211
56362
class CT_MembInitList : public CT_List, public CSemScope {
48212
 
#line 48213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56363
#line 56364 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56364
  friend class ::CCExprResolve;
 
56365
  friend class ::CExprResolve;
48213
56366
  friend class ::WinIfExists;
48214
56367
  friend class ::WinImportHandler;
48215
56368
  friend class ::WinMacros;
48216
 
  friend class ::CMatchSyntax;
48217
 
  friend class ::ExtGnu;
 
56369
  friend class ::WinAsm;
 
56370
  friend class ::WinDeclSpecs;
 
56371
  friend class ::WinMemberExplSpec;
 
56372
  friend class ::WinTypeKeywords;
 
56373
  friend class ::WinFriend;
48218
56374
  friend class ::ExtAC;
48219
56375
  friend class ::ExtACBuilderCoupling;
48220
56376
  friend class ::ExtACSyntaxCoupling;
48221
56377
  friend class ::ExtACTree;
48222
56378
  friend class ::ExtACKeywords;
48223
 
  friend class ::WinAsm;
48224
 
  friend class ::WinDeclSpecs;
48225
 
  friend class ::WinMemberExplSpec;
48226
 
  friend class ::WinTypeKeywords;
 
56379
  friend class ::ExtGnu;
48227
56380
  friend class ::PragmaOnceUnitState;
48228
56381
  friend class ::PragmaOnce;
48229
 
  friend class ::CCExprResolve;
48230
 
  friend class ::CExprResolve;
 
56382
  friend class ::CMatchSyntax;
48231
56383
 
48232
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56384
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48233
56385
 
48234
56386
public:
48235
56387
  CT_MembInitList (int size = 2) : 
48236
56388
    CT_List (size, 2, CT_List::OPEN) {}
48237
56389
  static const char *NodeId ();
 
56390
  /** Get the name of the node. Can be compared with NodeId(). */
48238
56391
  const char *NodeName () const { return NodeId (); }
 
56392
  CSemScope *SemScope () const { return (CSemScope*)this; }
48239
56393
};
48240
56394
 
48241
56395
 
48242
 
#line 48243 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56396
#line 56397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48243
56397
} // closed Puma
 
56398
class CCExprResolve;
 
56399
class CExprResolve;
48244
56400
class WinIfExists;
48245
56401
class WinImportHandler;
48246
56402
class WinMacros;
48247
 
class CMatchSyntax;
48248
 
class ExtGnu;
 
56403
class WinAsm;
 
56404
class WinDeclSpecs;
 
56405
class WinMemberExplSpec;
 
56406
class WinTypeKeywords;
 
56407
class WinFriend;
48249
56408
class ExtAC;
48250
56409
class ExtACBuilderCoupling;
48251
56410
class ExtACSyntaxCoupling;
48252
56411
class ExtACTree;
48253
56412
class ExtACKeywords;
48254
 
class WinAsm;
48255
 
class WinDeclSpecs;
48256
 
class WinMemberExplSpec;
48257
 
class WinTypeKeywords;
 
56413
class ExtGnu;
48258
56414
class PragmaOnceUnitState;
48259
56415
class PragmaOnce;
48260
 
class CCExprResolve;
48261
 
class CExprResolve;
48262
 
namespace Puma {
48263
 
 
48264
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56416
class CMatchSyntax;
 
56417
namespace Puma {
 
56418
 
 
56419
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56420
 
 
56421
#line 56422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56422
} // closed Puma
 
56423
 
 
56424
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56425
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
56426
#include "CCExprResolveH.ah"
 
56427
#endif
 
56428
namespace Puma {
 
56429
 
 
56430
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56431
 
 
56432
#line 56433 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56433
} // closed Puma
 
56434
 
 
56435
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56436
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
56437
#include "CExprResolveH.ah"
 
56438
#endif
 
56439
namespace Puma {
 
56440
 
 
56441
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48265
56442
class CT_MembInit : public CT_Expression, public CSemObject {
48266
 
#line 48267 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56443
#line 56444 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56444
  friend class ::CCExprResolve;
 
56445
  friend class ::CExprResolve;
48267
56446
  friend class ::WinIfExists;
48268
56447
  friend class ::WinImportHandler;
48269
56448
  friend class ::WinMacros;
48270
 
  friend class ::CMatchSyntax;
48271
 
  friend class ::ExtGnu;
 
56449
  friend class ::WinAsm;
 
56450
  friend class ::WinDeclSpecs;
 
56451
  friend class ::WinMemberExplSpec;
 
56452
  friend class ::WinTypeKeywords;
 
56453
  friend class ::WinFriend;
48272
56454
  friend class ::ExtAC;
48273
56455
  friend class ::ExtACBuilderCoupling;
48274
56456
  friend class ::ExtACSyntaxCoupling;
48275
56457
  friend class ::ExtACTree;
48276
56458
  friend class ::ExtACKeywords;
48277
 
  friend class ::WinAsm;
48278
 
  friend class ::WinDeclSpecs;
48279
 
  friend class ::WinMemberExplSpec;
48280
 
  friend class ::WinTypeKeywords;
 
56459
  friend class ::ExtGnu;
48281
56460
  friend class ::PragmaOnceUnitState;
48282
56461
  friend class ::PragmaOnce;
48283
 
  friend class ::CCExprResolve;
48284
 
  friend class ::CExprResolve;
 
56462
  friend class ::CMatchSyntax;
48285
56463
 
48286
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56464
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48287
56465
 
48288
56466
  CTree *sons[2]; // name, init
48289
56467
 
48290
56468
public:
48291
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
56469
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
56470
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48292
56471
  static const char *NodeId ();
 
56472
  /** Get the name of the node. Can be compared with NodeId(). */
48293
56473
  const char *NodeName () const { return NodeId (); }
 
56474
  /** Get the number of sons. */
48294
56475
  int Sons () const { return 2; }
 
56476
  /** Get the n-th son.
 
56477
   *  \param n The index of the son.
 
56478
   *  \return The n-th son or NULL. */
48295
56479
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
56480
  /** Replace a son.
 
56481
   *  \param old_son The son to replace.
 
56482
   *  \param new_son The new son. */
48296
56483
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48297
56484
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48298
56485
  }
48302
56489
   private:
48303
56490
  typedef CT_MembInit CCExprResolveExpr;
48304
56491
 
48305
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
56492
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
48306
56493
 public :
48307
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
56494
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
48308
56495
  typedef CT_MembInit CExprResolveExpr;
48309
56496
 
48310
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
56497
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
48311
56498
 public :
48312
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
48313
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56499
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
56500
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48314
56501
};
48315
56502
 
48316
56503
 
48317
 
#line 48318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56504
#line 56505 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48318
56505
} // closed Puma
 
56506
class CCExprResolve;
 
56507
class CExprResolve;
48319
56508
class WinIfExists;
48320
56509
class WinImportHandler;
48321
56510
class WinMacros;
48322
 
class CMatchSyntax;
48323
 
class ExtGnu;
 
56511
class WinAsm;
 
56512
class WinDeclSpecs;
 
56513
class WinMemberExplSpec;
 
56514
class WinTypeKeywords;
 
56515
class WinFriend;
48324
56516
class ExtAC;
48325
56517
class ExtACBuilderCoupling;
48326
56518
class ExtACSyntaxCoupling;
48327
56519
class ExtACTree;
48328
56520
class ExtACKeywords;
48329
 
class WinAsm;
48330
 
class WinDeclSpecs;
48331
 
class WinMemberExplSpec;
48332
 
class WinTypeKeywords;
 
56521
class ExtGnu;
48333
56522
class PragmaOnceUnitState;
48334
56523
class PragmaOnce;
48335
 
class CCExprResolve;
48336
 
class CExprResolve;
 
56524
class CMatchSyntax;
48337
56525
namespace Puma {
48338
56526
 
48339
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56527
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48340
56528
class CT_BaseSpecList : public CT_List {
48341
 
#line 48342 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56529
#line 56530 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56530
  friend class ::CCExprResolve;
 
56531
  friend class ::CExprResolve;
48342
56532
  friend class ::WinIfExists;
48343
56533
  friend class ::WinImportHandler;
48344
56534
  friend class ::WinMacros;
48345
 
  friend class ::CMatchSyntax;
48346
 
  friend class ::ExtGnu;
 
56535
  friend class ::WinAsm;
 
56536
  friend class ::WinDeclSpecs;
 
56537
  friend class ::WinMemberExplSpec;
 
56538
  friend class ::WinTypeKeywords;
 
56539
  friend class ::WinFriend;
48347
56540
  friend class ::ExtAC;
48348
56541
  friend class ::ExtACBuilderCoupling;
48349
56542
  friend class ::ExtACSyntaxCoupling;
48350
56543
  friend class ::ExtACTree;
48351
56544
  friend class ::ExtACKeywords;
48352
 
  friend class ::WinAsm;
48353
 
  friend class ::WinDeclSpecs;
48354
 
  friend class ::WinMemberExplSpec;
48355
 
  friend class ::WinTypeKeywords;
 
56545
  friend class ::ExtGnu;
48356
56546
  friend class ::PragmaOnceUnitState;
48357
56547
  friend class ::PragmaOnce;
48358
 
  friend class ::CCExprResolve;
48359
 
  friend class ::CExprResolve;
 
56548
  friend class ::CMatchSyntax;
48360
56549
 
48361
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56550
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48362
56551
 
48363
56552
public:
48364
56553
  CT_BaseSpecList (int size = 2) : 
48365
56554
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
56555
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48366
56556
  static const char *NodeId ();
 
56557
  /** Get the name of the node. Can be compared with NodeId(). */
48367
56558
  const char *NodeName () const { return NodeId (); }
48368
56559
};
48369
56560
 
48370
56561
 
48371
 
#line 48372 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56562
#line 56563 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48372
56563
} // closed Puma
 
56564
class CCExprResolve;
 
56565
class CExprResolve;
48373
56566
class WinIfExists;
48374
56567
class WinImportHandler;
48375
56568
class WinMacros;
48376
 
class CMatchSyntax;
48377
 
class ExtGnu;
 
56569
class WinAsm;
 
56570
class WinDeclSpecs;
 
56571
class WinMemberExplSpec;
 
56572
class WinTypeKeywords;
 
56573
class WinFriend;
48378
56574
class ExtAC;
48379
56575
class ExtACBuilderCoupling;
48380
56576
class ExtACSyntaxCoupling;
48381
56577
class ExtACTree;
48382
56578
class ExtACKeywords;
48383
 
class WinAsm;
48384
 
class WinDeclSpecs;
48385
 
class WinMemberExplSpec;
48386
 
class WinTypeKeywords;
 
56579
class ExtGnu;
48387
56580
class PragmaOnceUnitState;
48388
56581
class PragmaOnce;
48389
 
class CCExprResolve;
48390
 
class CExprResolve;
 
56582
class CMatchSyntax;
48391
56583
namespace Puma {
48392
56584
 
48393
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56585
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48394
56586
class CT_AccessSpec : public CTree {
48395
 
#line 48396 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56587
#line 56588 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56588
  friend class ::CCExprResolve;
 
56589
  friend class ::CExprResolve;
48396
56590
  friend class ::WinIfExists;
48397
56591
  friend class ::WinImportHandler;
48398
56592
  friend class ::WinMacros;
48399
 
  friend class ::CMatchSyntax;
48400
 
  friend class ::ExtGnu;
 
56593
  friend class ::WinAsm;
 
56594
  friend class ::WinDeclSpecs;
 
56595
  friend class ::WinMemberExplSpec;
 
56596
  friend class ::WinTypeKeywords;
 
56597
  friend class ::WinFriend;
48401
56598
  friend class ::ExtAC;
48402
56599
  friend class ::ExtACBuilderCoupling;
48403
56600
  friend class ::ExtACSyntaxCoupling;
48404
56601
  friend class ::ExtACTree;
48405
56602
  friend class ::ExtACKeywords;
48406
 
  friend class ::WinAsm;
48407
 
  friend class ::WinDeclSpecs;
48408
 
  friend class ::WinMemberExplSpec;
48409
 
  friend class ::WinTypeKeywords;
 
56603
  friend class ::ExtGnu;
48410
56604
  friend class ::PragmaOnceUnitState;
48411
56605
  friend class ::PragmaOnce;
48412
 
  friend class ::CCExprResolve;
48413
 
  friend class ::CExprResolve;
 
56606
  friend class ::CMatchSyntax;
48414
56607
 
48415
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56608
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48416
56609
 
48417
56610
  CTree *sons[2]; // access, colon
48418
56611
 
48419
56612
public:
48420
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
56613
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
56614
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48421
56615
  static const char *NodeId ();
 
56616
  /** Get the name of the node. Can be compared with NodeId(). */
48422
56617
  const char *NodeName () const { return NodeId (); }
 
56618
  /** Get the number of sons. */
48423
56619
  int Sons () const { return 2; }
 
56620
  /** Get the n-th son.
 
56621
   *  \param n The index of the son.
 
56622
   *  \return The n-th son or NULL. */
48424
56623
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
48425
56624
  int Access () const { return sons[0]->token ()->type (); }
 
56625
  /** Replace a son.
 
56626
   *  \param old_son The son to replace.
 
56627
   *  \param new_son The new son. */
48426
56628
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48427
56629
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48428
56630
  }
48429
56631
};
48430
56632
 
48431
56633
 
48432
 
#line 48433 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56634
#line 56635 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48433
56635
} // closed Puma
 
56636
class CCExprResolve;
 
56637
class CExprResolve;
48434
56638
class WinIfExists;
48435
56639
class WinImportHandler;
48436
56640
class WinMacros;
48437
 
class CMatchSyntax;
48438
 
class ExtGnu;
 
56641
class WinAsm;
 
56642
class WinDeclSpecs;
 
56643
class WinMemberExplSpec;
 
56644
class WinTypeKeywords;
 
56645
class WinFriend;
48439
56646
class ExtAC;
48440
56647
class ExtACBuilderCoupling;
48441
56648
class ExtACSyntaxCoupling;
48442
56649
class ExtACTree;
48443
56650
class ExtACKeywords;
48444
 
class WinAsm;
48445
 
class WinDeclSpecs;
48446
 
class WinMemberExplSpec;
48447
 
class WinTypeKeywords;
 
56651
class ExtGnu;
48448
56652
class PragmaOnceUnitState;
48449
56653
class PragmaOnce;
48450
 
class CCExprResolve;
48451
 
class CExprResolve;
 
56654
class CMatchSyntax;
48452
56655
namespace Puma {
48453
56656
 
48454
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56657
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48455
56658
class CT_BaseSpec : public CTree {
48456
 
#line 48457 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56659
#line 56660 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56660
  friend class ::CCExprResolve;
 
56661
  friend class ::CExprResolve;
48457
56662
  friend class ::WinIfExists;
48458
56663
  friend class ::WinImportHandler;
48459
56664
  friend class ::WinMacros;
48460
 
  friend class ::CMatchSyntax;
48461
 
  friend class ::ExtGnu;
 
56665
  friend class ::WinAsm;
 
56666
  friend class ::WinDeclSpecs;
 
56667
  friend class ::WinMemberExplSpec;
 
56668
  friend class ::WinTypeKeywords;
 
56669
  friend class ::WinFriend;
48462
56670
  friend class ::ExtAC;
48463
56671
  friend class ::ExtACBuilderCoupling;
48464
56672
  friend class ::ExtACSyntaxCoupling;
48465
56673
  friend class ::ExtACTree;
48466
56674
  friend class ::ExtACKeywords;
48467
 
  friend class ::WinAsm;
48468
 
  friend class ::WinDeclSpecs;
48469
 
  friend class ::WinMemberExplSpec;
48470
 
  friend class ::WinTypeKeywords;
 
56675
  friend class ::ExtGnu;
48471
56676
  friend class ::PragmaOnceUnitState;
48472
56677
  friend class ::PragmaOnce;
48473
 
  friend class ::CCExprResolve;
48474
 
  friend class ::CExprResolve;
 
56678
  friend class ::CMatchSyntax;
48475
56679
 
48476
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56680
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48477
56681
 
48478
56682
  CTree *sons[3]; // virtual, access, name
48479
56683
 
48480
56684
public:
48481
56685
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
48482
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
56686
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
48483
56687
  }
 
56688
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48484
56689
  static const char *NodeId ();
 
56690
  /** Get the name of the node. Can be compared with NodeId(). */
48485
56691
  const char *NodeName () const { return NodeId (); }
 
56692
  /** Get the number of sons. */
48486
56693
  int Sons () const { return CTree::Sons (sons, 3); }
 
56694
  /** Get the n-th son.
 
56695
   *  \param n The index of the son.
 
56696
   *  \return The n-th son or NULL. */
48487
56697
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
48488
56698
  int Access () const { return sons[1]->token ()->type (); }
48489
56699
  CTree *AccessSpec () const { return sons[1]; }
48490
56700
  CTree *Virtual () const { return sons[0]; }
48491
56701
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
56702
  /** Replace a son.
 
56703
   *  \param old_son The son to replace.
 
56704
   *  \param new_son The new son. */
48492
56705
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48493
56706
    CTree::ReplaceSon (sons, 3, old_son, new_son);
48494
56707
  }
48495
56708
};
48496
56709
 
48497
56710
 
48498
 
#line 48499 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56711
#line 56712 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48499
56712
} // closed Puma
 
56713
class CCExprResolve;
 
56714
class CExprResolve;
48500
56715
class WinIfExists;
48501
56716
class WinImportHandler;
48502
56717
class WinMacros;
48503
 
class CMatchSyntax;
48504
 
class ExtGnu;
 
56718
class WinAsm;
 
56719
class WinDeclSpecs;
 
56720
class WinMemberExplSpec;
 
56721
class WinTypeKeywords;
 
56722
class WinFriend;
48505
56723
class ExtAC;
48506
56724
class ExtACBuilderCoupling;
48507
56725
class ExtACSyntaxCoupling;
48508
56726
class ExtACTree;
48509
56727
class ExtACKeywords;
48510
 
class WinAsm;
48511
 
class WinDeclSpecs;
48512
 
class WinMemberExplSpec;
48513
 
class WinTypeKeywords;
 
56728
class ExtGnu;
48514
56729
class PragmaOnceUnitState;
48515
56730
class PragmaOnce;
48516
 
class CCExprResolve;
48517
 
class CExprResolve;
 
56731
class CMatchSyntax;
48518
56732
namespace Puma {
48519
56733
 
48520
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56734
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48521
56735
class CT_AccessDecl : public CT_Decl {
48522
 
#line 48523 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56736
#line 56737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56737
  friend class ::CCExprResolve;
 
56738
  friend class ::CExprResolve;
48523
56739
  friend class ::WinIfExists;
48524
56740
  friend class ::WinImportHandler;
48525
56741
  friend class ::WinMacros;
48526
 
  friend class ::CMatchSyntax;
48527
 
  friend class ::ExtGnu;
 
56742
  friend class ::WinAsm;
 
56743
  friend class ::WinDeclSpecs;
 
56744
  friend class ::WinMemberExplSpec;
 
56745
  friend class ::WinTypeKeywords;
 
56746
  friend class ::WinFriend;
48528
56747
  friend class ::ExtAC;
48529
56748
  friend class ::ExtACBuilderCoupling;
48530
56749
  friend class ::ExtACSyntaxCoupling;
48531
56750
  friend class ::ExtACTree;
48532
56751
  friend class ::ExtACKeywords;
48533
 
  friend class ::WinAsm;
48534
 
  friend class ::WinDeclSpecs;
48535
 
  friend class ::WinMemberExplSpec;
48536
 
  friend class ::WinTypeKeywords;
 
56752
  friend class ::ExtGnu;
48537
56753
  friend class ::PragmaOnceUnitState;
48538
56754
  friend class ::PragmaOnce;
48539
 
  friend class ::CCExprResolve;
48540
 
  friend class ::CExprResolve;
 
56755
  friend class ::CMatchSyntax;
48541
56756
 
48542
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56757
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48543
56758
 
48544
56759
  CTree *sons[2]; // name, semi_colon
48545
56760
 
48546
56761
public:
48547
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
56762
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
56763
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48548
56764
  static const char *NodeId ();
 
56765
  /** Get the name of the node. Can be compared with NodeId(). */
48549
56766
  const char *NodeName () const { return NodeId (); }
 
56767
  /** Get the number of sons. */
48550
56768
  int Sons () const { return 2; }
 
56769
  /** Get the n-th son.
 
56770
   *  \param n The index of the son.
 
56771
   *  \return The n-th son or NULL. */
48551
56772
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
48552
56773
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
56774
  /** Replace a son.
 
56775
   *  \param old_son The son to replace.
 
56776
   *  \param new_son The new son. */
48553
56777
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48554
56778
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48555
56779
  }
48556
56780
};
48557
56781
 
48558
56782
 
48559
 
#line 48560 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56783
#line 56784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48560
56784
} // closed Puma
 
56785
class CCExprResolve;
 
56786
class CExprResolve;
48561
56787
class WinIfExists;
48562
56788
class WinImportHandler;
48563
56789
class WinMacros;
48564
 
class CMatchSyntax;
48565
 
class ExtGnu;
 
56790
class WinAsm;
 
56791
class WinDeclSpecs;
 
56792
class WinMemberExplSpec;
 
56793
class WinTypeKeywords;
 
56794
class WinFriend;
48566
56795
class ExtAC;
48567
56796
class ExtACBuilderCoupling;
48568
56797
class ExtACSyntaxCoupling;
48569
56798
class ExtACTree;
48570
56799
class ExtACKeywords;
48571
 
class WinAsm;
48572
 
class WinDeclSpecs;
48573
 
class WinMemberExplSpec;
48574
 
class WinTypeKeywords;
 
56800
class ExtGnu;
48575
56801
class PragmaOnceUnitState;
48576
56802
class PragmaOnce;
48577
 
class CCExprResolve;
48578
 
class CExprResolve;
 
56803
class CMatchSyntax;
48579
56804
namespace Puma {
48580
56805
 
48581
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56806
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48582
56807
class CT_UsingDecl : public CT_AccessDecl {
48583
 
#line 48584 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56808
#line 56809 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56809
  friend class ::CCExprResolve;
 
56810
  friend class ::CExprResolve;
48584
56811
  friend class ::WinIfExists;
48585
56812
  friend class ::WinImportHandler;
48586
56813
  friend class ::WinMacros;
48587
 
  friend class ::CMatchSyntax;
48588
 
  friend class ::ExtGnu;
 
56814
  friend class ::WinAsm;
 
56815
  friend class ::WinDeclSpecs;
 
56816
  friend class ::WinMemberExplSpec;
 
56817
  friend class ::WinTypeKeywords;
 
56818
  friend class ::WinFriend;
48589
56819
  friend class ::ExtAC;
48590
56820
  friend class ::ExtACBuilderCoupling;
48591
56821
  friend class ::ExtACSyntaxCoupling;
48592
56822
  friend class ::ExtACTree;
48593
56823
  friend class ::ExtACKeywords;
48594
 
  friend class ::WinAsm;
48595
 
  friend class ::WinDeclSpecs;
48596
 
  friend class ::WinMemberExplSpec;
48597
 
  friend class ::WinTypeKeywords;
 
56824
  friend class ::ExtGnu;
48598
56825
  friend class ::PragmaOnceUnitState;
48599
56826
  friend class ::PragmaOnce;
48600
 
  friend class ::CCExprResolve;
48601
 
  friend class ::CExprResolve;
 
56827
  friend class ::CMatchSyntax;
48602
56828
 
48603
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56829
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48604
56830
 
48605
56831
  CTree *sons[2]; // using, typename
48606
56832
 
48607
56833
public:
48608
56834
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
48609
 
    sons[0] = u; sons[1] = 0; 
 
56835
    AddSon (sons[0], u); AddSon (sons[1], 0); 
48610
56836
  }
48611
56837
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
48612
 
    sons[0] = u; sons[1] = t; 
 
56838
    AddSon (sons[0], u); AddSon (sons[1], t); 
48613
56839
  }
 
56840
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48614
56841
  static const char *NodeId ();
 
56842
  /** Get the name of the node. Can be compared with NodeId(). */
48615
56843
  const char *NodeName () const { return NodeId (); }
 
56844
  /** Get the number of sons. */
48616
56845
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
56846
  /** Get the n-th son.
 
56847
   *  \param n The index of the son.
 
56848
   *  \return The n-th son or NULL. */
48617
56849
  CTree *Son (int n) const {
48618
56850
    int num = CTree::Sons (sons, 2);
48619
56851
    CTree *result = CTree::Son (sons, 2, n);
48620
56852
    return result ? result : CT_AccessDecl::Son (n-num);
48621
56853
  }
48622
56854
  CTree *Typename () const { return sons[1]; }
 
56855
  /** Replace a son.
 
56856
   *  \param old_son The son to replace.
 
56857
   *  \param new_son The new son. */
48623
56858
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48624
56859
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48625
56860
    CT_AccessDecl::ReplaceSon (old_son, new_son);
48633
56868
/*****************************************************************************/
48634
56869
 
48635
56870
 
48636
 
#line 48637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56871
#line 56872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48637
56872
} // closed Puma
 
56873
class CCExprResolve;
 
56874
class CExprResolve;
48638
56875
class WinIfExists;
48639
56876
class WinImportHandler;
48640
56877
class WinMacros;
48641
 
class CMatchSyntax;
48642
 
class ExtGnu;
 
56878
class WinAsm;
 
56879
class WinDeclSpecs;
 
56880
class WinMemberExplSpec;
 
56881
class WinTypeKeywords;
 
56882
class WinFriend;
48643
56883
class ExtAC;
48644
56884
class ExtACBuilderCoupling;
48645
56885
class ExtACSyntaxCoupling;
48646
56886
class ExtACTree;
48647
56887
class ExtACKeywords;
48648
 
class WinAsm;
48649
 
class WinDeclSpecs;
48650
 
class WinMemberExplSpec;
48651
 
class WinTypeKeywords;
 
56888
class ExtGnu;
48652
56889
class PragmaOnceUnitState;
48653
56890
class PragmaOnce;
48654
 
class CCExprResolve;
48655
 
class CExprResolve;
 
56891
class CMatchSyntax;
48656
56892
namespace Puma {
48657
56893
 
48658
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56894
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48659
56895
class CT_Any : public CTree {
48660
 
#line 48661 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56896
#line 56897 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56897
  friend class ::CCExprResolve;
 
56898
  friend class ::CExprResolve;
48661
56899
  friend class ::WinIfExists;
48662
56900
  friend class ::WinImportHandler;
48663
56901
  friend class ::WinMacros;
48664
 
  friend class ::CMatchSyntax;
48665
 
  friend class ::ExtGnu;
 
56902
  friend class ::WinAsm;
 
56903
  friend class ::WinDeclSpecs;
 
56904
  friend class ::WinMemberExplSpec;
 
56905
  friend class ::WinTypeKeywords;
 
56906
  friend class ::WinFriend;
48666
56907
  friend class ::ExtAC;
48667
56908
  friend class ::ExtACBuilderCoupling;
48668
56909
  friend class ::ExtACSyntaxCoupling;
48669
56910
  friend class ::ExtACTree;
48670
56911
  friend class ::ExtACKeywords;
48671
 
  friend class ::WinAsm;
48672
 
  friend class ::WinDeclSpecs;
48673
 
  friend class ::WinMemberExplSpec;
48674
 
  friend class ::WinTypeKeywords;
 
56912
  friend class ::ExtGnu;
48675
56913
  friend class ::PragmaOnceUnitState;
48676
56914
  friend class ::PragmaOnce;
48677
 
  friend class ::CCExprResolve;
48678
 
  friend class ::CExprResolve;
 
56915
  friend class ::CMatchSyntax;
48679
56916
 
48680
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56917
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48681
56918
 
48682
56919
  CTree *sons[2]; // keyword, extension
48683
56920
 
48684
56921
public:
48685
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
56922
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
56923
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48686
56924
  static const char *NodeId ();
 
56925
  /** Get the name of the node. Can be compared with NodeId(). */
48687
56926
  const char *NodeName () const { return NodeId (); }
 
56927
  /** Get the number of sons. */
48688
56928
  int Sons () const { return CTree::Sons (sons, 2); }
 
56929
  /** Get the n-th son.
 
56930
   *  \param n The index of the son.
 
56931
   *  \return The n-th son or NULL. */
48689
56932
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
56933
  /** Replace a son.
 
56934
   *  \param old_son The son to replace.
 
56935
   *  \param new_son The new son. */
48690
56936
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48691
56937
    CTree::ReplaceSon (sons, 2, old_son, new_son);
48692
56938
  }
48695
56941
};
48696
56942
 
48697
56943
 
48698
 
#line 48699 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56944
#line 56945 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48699
56945
} // closed Puma
 
56946
class CCExprResolve;
 
56947
class CExprResolve;
48700
56948
class WinIfExists;
48701
56949
class WinImportHandler;
48702
56950
class WinMacros;
48703
 
class CMatchSyntax;
48704
 
class ExtGnu;
 
56951
class WinAsm;
 
56952
class WinDeclSpecs;
 
56953
class WinMemberExplSpec;
 
56954
class WinTypeKeywords;
 
56955
class WinFriend;
48705
56956
class ExtAC;
48706
56957
class ExtACBuilderCoupling;
48707
56958
class ExtACSyntaxCoupling;
48708
56959
class ExtACTree;
48709
56960
class ExtACKeywords;
48710
 
class WinAsm;
48711
 
class WinDeclSpecs;
48712
 
class WinMemberExplSpec;
48713
 
class WinTypeKeywords;
 
56961
class ExtGnu;
48714
56962
class PragmaOnceUnitState;
48715
56963
class PragmaOnce;
48716
 
class CCExprResolve;
48717
 
class CExprResolve;
 
56964
class CMatchSyntax;
48718
56965
namespace Puma {
48719
56966
 
48720
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56967
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48721
56968
class CT_AnyList : public CT_Any {
48722
 
#line 48723 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
56969
#line 56970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
56970
  friend class ::CCExprResolve;
 
56971
  friend class ::CExprResolve;
48723
56972
  friend class ::WinIfExists;
48724
56973
  friend class ::WinImportHandler;
48725
56974
  friend class ::WinMacros;
48726
 
  friend class ::CMatchSyntax;
48727
 
  friend class ::ExtGnu;
 
56975
  friend class ::WinAsm;
 
56976
  friend class ::WinDeclSpecs;
 
56977
  friend class ::WinMemberExplSpec;
 
56978
  friend class ::WinTypeKeywords;
 
56979
  friend class ::WinFriend;
48728
56980
  friend class ::ExtAC;
48729
56981
  friend class ::ExtACBuilderCoupling;
48730
56982
  friend class ::ExtACSyntaxCoupling;
48731
56983
  friend class ::ExtACTree;
48732
56984
  friend class ::ExtACKeywords;
48733
 
  friend class ::WinAsm;
48734
 
  friend class ::WinDeclSpecs;
48735
 
  friend class ::WinMemberExplSpec;
48736
 
  friend class ::WinTypeKeywords;
 
56985
  friend class ::ExtGnu;
48737
56986
  friend class ::PragmaOnceUnitState;
48738
56987
  friend class ::PragmaOnce;
48739
 
  friend class ::CCExprResolve;
48740
 
  friend class ::CExprResolve;
 
56988
  friend class ::CMatchSyntax;
48741
56989
 
48742
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
56990
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48743
56991
 
48744
56992
public:
48745
56993
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
56994
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48746
56995
  static const char *NodeId ();
 
56996
  /** Get the name of the node. Can be compared with NodeId(). */
48747
56997
  const char *NodeName () const { return NodeId (); }
48748
56998
};
48749
56999
 
48750
57000
 
48751
 
#line 48752 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57001
#line 57002 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48752
57002
} // closed Puma
 
57003
class CCExprResolve;
 
57004
class CExprResolve;
48753
57005
class WinIfExists;
48754
57006
class WinImportHandler;
48755
57007
class WinMacros;
48756
 
class CMatchSyntax;
48757
 
class ExtGnu;
 
57008
class WinAsm;
 
57009
class WinDeclSpecs;
 
57010
class WinMemberExplSpec;
 
57011
class WinTypeKeywords;
 
57012
class WinFriend;
48758
57013
class ExtAC;
48759
57014
class ExtACBuilderCoupling;
48760
57015
class ExtACSyntaxCoupling;
48761
57016
class ExtACTree;
48762
57017
class ExtACKeywords;
48763
 
class WinAsm;
48764
 
class WinDeclSpecs;
48765
 
class WinMemberExplSpec;
48766
 
class WinTypeKeywords;
 
57018
class ExtGnu;
48767
57019
class PragmaOnceUnitState;
48768
57020
class PragmaOnce;
48769
 
class CCExprResolve;
48770
 
class CExprResolve;
 
57021
class CMatchSyntax;
48771
57022
namespace Puma {
48772
57023
 
48773
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57024
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48774
57025
class CT_AnyExtension : public CTree, public CSemValue {
48775
 
#line 48776 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57026
#line 57027 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
57027
  friend class ::CCExprResolve;
 
57028
  friend class ::CExprResolve;
48776
57029
  friend class ::WinIfExists;
48777
57030
  friend class ::WinImportHandler;
48778
57031
  friend class ::WinMacros;
48779
 
  friend class ::CMatchSyntax;
48780
 
  friend class ::ExtGnu;
 
57032
  friend class ::WinAsm;
 
57033
  friend class ::WinDeclSpecs;
 
57034
  friend class ::WinMemberExplSpec;
 
57035
  friend class ::WinTypeKeywords;
 
57036
  friend class ::WinFriend;
48781
57037
  friend class ::ExtAC;
48782
57038
  friend class ::ExtACBuilderCoupling;
48783
57039
  friend class ::ExtACSyntaxCoupling;
48784
57040
  friend class ::ExtACTree;
48785
57041
  friend class ::ExtACKeywords;
48786
 
  friend class ::WinAsm;
48787
 
  friend class ::WinDeclSpecs;
48788
 
  friend class ::WinMemberExplSpec;
48789
 
  friend class ::WinTypeKeywords;
 
57042
  friend class ::ExtGnu;
48790
57043
  friend class ::PragmaOnceUnitState;
48791
57044
  friend class ::PragmaOnce;
48792
 
  friend class ::CCExprResolve;
48793
 
  friend class ::CExprResolve;
 
57045
  friend class ::CMatchSyntax;
48794
57046
 
48795
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57047
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48796
57048
 
48797
57049
  CTree *sons[5]; // open, string, comma, cond, close
48798
57050
 
48799
57051
public:
48800
57052
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
48801
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
57053
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
57054
    AddSon (sons[3], c); AddSon (sons[4], cr); 
48802
57055
  }
 
57056
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48803
57057
  static const char *NodeId ();
 
57058
  /** Get the name of the node. Can be compared with NodeId(). */
48804
57059
  const char *NodeName () const { return NodeId (); }
 
57060
  /** Get the number of sons. */
48805
57061
  int Sons () const { return CTree::Sons (sons, 5); }
 
57062
  /** Get the n-th son.
 
57063
   *  \param n The index of the son.
 
57064
   *  \return The n-th son or NULL. */
48806
57065
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
57066
  /** Replace a son.
 
57067
   *  \param old_son The son to replace.
 
57068
   *  \param new_son The new son. */
48807
57069
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48808
57070
    CTree::ReplaceSon (sons, 5, old_son, new_son);
48809
57071
  }
48817
57079
};
48818
57080
 
48819
57081
 
48820
 
#line 48821 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57082
#line 57083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48821
57083
} // closed Puma
 
57084
class CCExprResolve;
 
57085
class CExprResolve;
48822
57086
class WinIfExists;
48823
57087
class WinImportHandler;
48824
57088
class WinMacros;
48825
 
class CMatchSyntax;
48826
 
class ExtGnu;
 
57089
class WinAsm;
 
57090
class WinDeclSpecs;
 
57091
class WinMemberExplSpec;
 
57092
class WinTypeKeywords;
 
57093
class WinFriend;
48827
57094
class ExtAC;
48828
57095
class ExtACBuilderCoupling;
48829
57096
class ExtACSyntaxCoupling;
48830
57097
class ExtACTree;
48831
57098
class ExtACKeywords;
48832
 
class WinAsm;
48833
 
class WinDeclSpecs;
48834
 
class WinMemberExplSpec;
48835
 
class WinTypeKeywords;
 
57099
class ExtGnu;
48836
57100
class PragmaOnceUnitState;
48837
57101
class PragmaOnce;
48838
 
class CCExprResolve;
48839
 
class CExprResolve;
 
57102
class CMatchSyntax;
48840
57103
namespace Puma {
48841
57104
 
48842
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57105
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48843
57106
class CT_AnyCondition : public CTree {
48844
 
#line 48845 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57107
#line 57108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
57108
  friend class ::CCExprResolve;
 
57109
  friend class ::CExprResolve;
48845
57110
  friend class ::WinIfExists;
48846
57111
  friend class ::WinImportHandler;
48847
57112
  friend class ::WinMacros;
48848
 
  friend class ::CMatchSyntax;
48849
 
  friend class ::ExtGnu;
 
57113
  friend class ::WinAsm;
 
57114
  friend class ::WinDeclSpecs;
 
57115
  friend class ::WinMemberExplSpec;
 
57116
  friend class ::WinTypeKeywords;
 
57117
  friend class ::WinFriend;
48850
57118
  friend class ::ExtAC;
48851
57119
  friend class ::ExtACBuilderCoupling;
48852
57120
  friend class ::ExtACSyntaxCoupling;
48853
57121
  friend class ::ExtACTree;
48854
57122
  friend class ::ExtACKeywords;
48855
 
  friend class ::WinAsm;
48856
 
  friend class ::WinDeclSpecs;
48857
 
  friend class ::WinMemberExplSpec;
48858
 
  friend class ::WinTypeKeywords;
 
57123
  friend class ::ExtGnu;
48859
57124
  friend class ::PragmaOnceUnitState;
48860
57125
  friend class ::PragmaOnce;
48861
 
  friend class ::CCExprResolve;
48862
 
  friend class ::CExprResolve;
 
57126
  friend class ::CMatchSyntax;
48863
57127
 
48864
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57128
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
48865
57129
 
48866
57130
  CTree *sons[3]; // arg1, arg2, arg3
48867
57131
 
48868
57132
public:
48869
57133
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
48870
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
57134
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
48871
57135
  }
 
57136
  /** Get the identifier for this node type. Can be compared with NodeName(). */
48872
57137
  static const char *NodeId ();
 
57138
  /** Get the name of the node. Can be compared with NodeId(). */
48873
57139
  const char *NodeName () const { return NodeId (); }
 
57140
  /** Get the number of sons. */
48874
57141
  int Sons () const { return CTree::Sons (sons, 3); }
 
57142
  /** Get the n-th son.
 
57143
   *  \param n The index of the son.
 
57144
   *  \return The n-th son or NULL. */
48875
57145
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
57146
  /** Replace a son.
 
57147
   *  \param old_son The son to replace.
 
57148
   *  \param new_son The new son. */
48876
57149
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
48877
57150
    CTree::ReplaceSon (sons, 3, old_son, new_son);
48878
57151
  }
48883
57156
 
48884
57157
#endif /* __CTree_h__ */
48885
57158
 
48886
 
#line 48887 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
48887
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
48888
 
 
48889
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
48890
 
 
48891
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
48892
 
namespace Puma {
48893
 
 
48894
 
 
48895
 
 
48896
 
#line 48897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
48897
 
} // closed Puma
48898
 
class WinIfExists;
48899
 
class WinImportHandler;
48900
 
class WinMacros;
48901
 
class CMatchSyntax;
48902
 
class ExtGnu;
48903
 
class ExtAC;
48904
 
class ExtACBuilderCoupling;
48905
 
class ExtACSyntaxCoupling;
48906
 
class ExtACTree;
48907
 
class ExtACKeywords;
48908
 
class WinAsm;
48909
 
class WinDeclSpecs;
48910
 
class WinMemberExplSpec;
48911
 
class WinTypeKeywords;
48912
 
class PragmaOnceUnitState;
48913
 
class PragmaOnce;
48914
 
class CCExprResolve;
48915
 
class CExprResolve;
48916
 
namespace Puma {
48917
 
 
48918
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57159
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57160
namespace Puma {
 
57161
 
 
57162
 
 
57163
 
 
57164
#line 57165 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
57165
} // closed Puma
 
57166
class CCExprResolve;
 
57167
class CExprResolve;
 
57168
class WinIfExists;
 
57169
class WinImportHandler;
 
57170
class WinMacros;
 
57171
class WinAsm;
 
57172
class WinDeclSpecs;
 
57173
class WinMemberExplSpec;
 
57174
class WinTypeKeywords;
 
57175
class WinFriend;
 
57176
class ExtAC;
 
57177
class ExtACBuilderCoupling;
 
57178
class ExtACSyntaxCoupling;
 
57179
class ExtACTree;
 
57180
class ExtACKeywords;
 
57181
class ExtGnu;
 
57182
class PragmaOnceUnitState;
 
57183
class PragmaOnce;
 
57184
class CMatchSyntax;
 
57185
namespace Puma {
 
57186
 
 
57187
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57188
class CT_GnuAsmSpec : public CTree {
 
57189
#line 57190 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
57190
  friend class ::CCExprResolve;
 
57191
  friend class ::CExprResolve;
 
57192
  friend class ::WinIfExists;
 
57193
  friend class ::WinImportHandler;
 
57194
  friend class ::WinMacros;
 
57195
  friend class ::WinAsm;
 
57196
  friend class ::WinDeclSpecs;
 
57197
  friend class ::WinMemberExplSpec;
 
57198
  friend class ::WinTypeKeywords;
 
57199
  friend class ::WinFriend;
 
57200
  friend class ::ExtAC;
 
57201
  friend class ::ExtACBuilderCoupling;
 
57202
  friend class ::ExtACSyntaxCoupling;
 
57203
  friend class ::ExtACTree;
 
57204
  friend class ::ExtACKeywords;
 
57205
  friend class ::ExtGnu;
 
57206
  friend class ::PragmaOnceUnitState;
 
57207
  friend class ::PragmaOnce;
 
57208
  friend class ::CMatchSyntax;
 
57209
 
 
57210
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57211
 
 
57212
  CTree *_key_asm;    // CT_Token
 
57213
  CTree *_open;   // CT_Token
 
57214
  CTree *_expr;
 
57215
  CTree *_close;  // CT_Token
 
57216
 
 
57217
public:
 
57218
  CT_GnuAsmSpec (CTree *a, CTree *o, CTree *e, CTree *c) :
 
57219
    _key_asm (a), _open (o), _expr (e), _close (c) {}
 
57220
  static const char *NodeId ();
 
57221
  const char *NodeName () const { return NodeId (); } 
 
57222
  int Sons () const { return 4; }
 
57223
  CTree *Son (int n) const {
 
57224
    switch (n) {
 
57225
      case 0: return _key_asm;
 
57226
      case 1: return _open;
 
57227
      case 2: return _expr;
 
57228
      case 3: return _close;
 
57229
      default: return (CTree*)0;
 
57230
    }
 
57231
  }
 
57232
  CT_Expression *Expr () const { return (CT_Expression*)_expr; }
 
57233
  void ReplaceSon (CTree *old_son, CTree *new_son) {
 
57234
    if (old_son == _expr) _expr = new_son;
 
57235
    else if (old_son == _key_asm) _key_asm = new_son;
 
57236
    else if (old_son == _open) _open = new_son;
 
57237
    else if (old_son == _close) _close = new_son;
 
57238
  }
 
57239
};
 
57240
 
 
57241
 
 
57242
#line 57243 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
57243
} // closed Puma
 
57244
class CCExprResolve;
 
57245
class CExprResolve;
 
57246
class WinIfExists;
 
57247
class WinImportHandler;
 
57248
class WinMacros;
 
57249
class WinAsm;
 
57250
class WinDeclSpecs;
 
57251
class WinMemberExplSpec;
 
57252
class WinTypeKeywords;
 
57253
class WinFriend;
 
57254
class ExtAC;
 
57255
class ExtACBuilderCoupling;
 
57256
class ExtACSyntaxCoupling;
 
57257
class ExtACTree;
 
57258
class ExtACKeywords;
 
57259
class ExtGnu;
 
57260
class PragmaOnceUnitState;
 
57261
class PragmaOnce;
 
57262
class CMatchSyntax;
 
57263
namespace Puma {
 
57264
 
 
57265
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
48919
57266
class CT_GnuAsmDef : public CT_AsmDef {
48920
 
#line 48921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57267
#line 57268 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
57268
  friend class ::CCExprResolve;
 
57269
  friend class ::CExprResolve;
48921
57270
  friend class ::WinIfExists;
48922
57271
  friend class ::WinImportHandler;
48923
57272
  friend class ::WinMacros;
48924
 
  friend class ::CMatchSyntax;
48925
 
  friend class ::ExtGnu;
 
57273
  friend class ::WinAsm;
 
57274
  friend class ::WinDeclSpecs;
 
57275
  friend class ::WinMemberExplSpec;
 
57276
  friend class ::WinTypeKeywords;
 
57277
  friend class ::WinFriend;
48926
57278
  friend class ::ExtAC;
48927
57279
  friend class ::ExtACBuilderCoupling;
48928
57280
  friend class ::ExtACSyntaxCoupling;
48929
57281
  friend class ::ExtACTree;
48930
57282
  friend class ::ExtACKeywords;
48931
 
  friend class ::WinAsm;
48932
 
  friend class ::WinDeclSpecs;
48933
 
  friend class ::WinMemberExplSpec;
48934
 
  friend class ::WinTypeKeywords;
 
57283
  friend class ::ExtGnu;
48935
57284
  friend class ::PragmaOnceUnitState;
48936
57285
  friend class ::PragmaOnce;
48937
 
  friend class ::CCExprResolve;
48938
 
  friend class ::CExprResolve;
 
57286
  friend class ::CMatchSyntax;
48939
57287
 
48940
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57288
#line 69 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
48941
57289
 
48942
57290
  CTree *_cvqual;
48943
57291
  CTree *_operands0;
48993
57341
};
48994
57342
 
48995
57343
 
48996
 
#line 48997 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57344
#line 57345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
48997
57345
} // closed Puma
 
57346
class CCExprResolve;
 
57347
class CExprResolve;
48998
57348
class WinIfExists;
48999
57349
class WinImportHandler;
49000
57350
class WinMacros;
49001
 
class CMatchSyntax;
49002
 
class ExtGnu;
 
57351
class WinAsm;
 
57352
class WinDeclSpecs;
 
57353
class WinMemberExplSpec;
 
57354
class WinTypeKeywords;
 
57355
class WinFriend;
49003
57356
class ExtAC;
49004
57357
class ExtACBuilderCoupling;
49005
57358
class ExtACSyntaxCoupling;
49006
57359
class ExtACTree;
49007
57360
class ExtACKeywords;
49008
 
class WinAsm;
49009
 
class WinDeclSpecs;
49010
 
class WinMemberExplSpec;
49011
 
class WinTypeKeywords;
 
57361
class ExtGnu;
49012
57362
class PragmaOnceUnitState;
49013
57363
class PragmaOnce;
49014
 
class CCExprResolve;
49015
 
class CExprResolve;
 
57364
class CMatchSyntax;
49016
57365
namespace Puma {
49017
57366
 
49018
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57367
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
49019
57368
class CT_GnuAsmOperand : public CTree {
49020
 
#line 49021 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57369
#line 57370 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
57370
  friend class ::CCExprResolve;
 
57371
  friend class ::CExprResolve;
49021
57372
  friend class ::WinIfExists;
49022
57373
  friend class ::WinImportHandler;
49023
57374
  friend class ::WinMacros;
49024
 
  friend class ::CMatchSyntax;
49025
 
  friend class ::ExtGnu;
 
57375
  friend class ::WinAsm;
 
57376
  friend class ::WinDeclSpecs;
 
57377
  friend class ::WinMemberExplSpec;
 
57378
  friend class ::WinTypeKeywords;
 
57379
  friend class ::WinFriend;
49026
57380
  friend class ::ExtAC;
49027
57381
  friend class ::ExtACBuilderCoupling;
49028
57382
  friend class ::ExtACSyntaxCoupling;
49029
57383
  friend class ::ExtACTree;
49030
57384
  friend class ::ExtACKeywords;
49031
 
  friend class ::WinAsm;
49032
 
  friend class ::WinDeclSpecs;
49033
 
  friend class ::WinMemberExplSpec;
49034
 
  friend class ::WinTypeKeywords;
 
57385
  friend class ::ExtGnu;
49035
57386
  friend class ::PragmaOnceUnitState;
49036
57387
  friend class ::PragmaOnce;
49037
 
  friend class ::CCExprResolve;
49038
 
  friend class ::CExprResolve;
 
57388
  friend class ::CMatchSyntax;
49039
57389
 
49040
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57390
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
49041
57391
 
49042
57392
  CTree *_string;
49043
57393
  CTree *_open;   // CT_Token
49070
57420
};
49071
57421
 
49072
57422
 
49073
 
#line 49074 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57423
#line 57424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
49074
57424
} // closed Puma
 
57425
class CCExprResolve;
 
57426
class CExprResolve;
49075
57427
class WinIfExists;
49076
57428
class WinImportHandler;
49077
57429
class WinMacros;
49078
 
class CMatchSyntax;
49079
 
class ExtGnu;
 
57430
class WinAsm;
 
57431
class WinDeclSpecs;
 
57432
class WinMemberExplSpec;
 
57433
class WinTypeKeywords;
 
57434
class WinFriend;
49080
57435
class ExtAC;
49081
57436
class ExtACBuilderCoupling;
49082
57437
class ExtACSyntaxCoupling;
49083
57438
class ExtACTree;
49084
57439
class ExtACKeywords;
49085
 
class WinAsm;
49086
 
class WinDeclSpecs;
49087
 
class WinMemberExplSpec;
49088
 
class WinTypeKeywords;
 
57440
class ExtGnu;
49089
57441
class PragmaOnceUnitState;
49090
57442
class PragmaOnce;
49091
 
class CCExprResolve;
49092
 
class CExprResolve;
 
57443
class CMatchSyntax;
49093
57444
namespace Puma {
49094
57445
 
49095
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57446
#line 154 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
49096
57447
class CT_GnuAsmOperands : public CT_List {
49097
 
#line 49098 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57448
#line 57449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
57449
  friend class ::CCExprResolve;
 
57450
  friend class ::CExprResolve;
49098
57451
  friend class ::WinIfExists;
49099
57452
  friend class ::WinImportHandler;
49100
57453
  friend class ::WinMacros;
49101
 
  friend class ::CMatchSyntax;
49102
 
  friend class ::ExtGnu;
 
57454
  friend class ::WinAsm;
 
57455
  friend class ::WinDeclSpecs;
 
57456
  friend class ::WinMemberExplSpec;
 
57457
  friend class ::WinTypeKeywords;
 
57458
  friend class ::WinFriend;
49103
57459
  friend class ::ExtAC;
49104
57460
  friend class ::ExtACBuilderCoupling;
49105
57461
  friend class ::ExtACSyntaxCoupling;
49106
57462
  friend class ::ExtACTree;
49107
57463
  friend class ::ExtACKeywords;
49108
 
  friend class ::WinAsm;
49109
 
  friend class ::WinDeclSpecs;
49110
 
  friend class ::WinMemberExplSpec;
49111
 
  friend class ::WinTypeKeywords;
 
57464
  friend class ::ExtGnu;
49112
57465
  friend class ::PragmaOnceUnitState;
49113
57466
  friend class ::PragmaOnce;
49114
 
  friend class ::CCExprResolve;
49115
 
  friend class ::CExprResolve;
 
57467
  friend class ::CMatchSyntax;
49116
57468
 
49117
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57469
#line 154 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
49118
57470
 
49119
57471
public:
49120
57472
  CT_GnuAsmOperands () { AddProperties (OPEN | SEPARATORS); }
49123
57475
};
49124
57476
 
49125
57477
 
49126
 
#line 49127 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57478
#line 57479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
49127
57479
} // closed Puma
 
57480
class CCExprResolve;
 
57481
class CExprResolve;
49128
57482
class WinIfExists;
49129
57483
class WinImportHandler;
49130
57484
class WinMacros;
49131
 
class CMatchSyntax;
49132
 
class ExtGnu;
 
57485
class WinAsm;
 
57486
class WinDeclSpecs;
 
57487
class WinMemberExplSpec;
 
57488
class WinTypeKeywords;
 
57489
class WinFriend;
49133
57490
class ExtAC;
49134
57491
class ExtACBuilderCoupling;
49135
57492
class ExtACSyntaxCoupling;
49136
57493
class ExtACTree;
49137
57494
class ExtACKeywords;
49138
 
class WinAsm;
49139
 
class WinDeclSpecs;
49140
 
class WinMemberExplSpec;
49141
 
class WinTypeKeywords;
 
57495
class ExtGnu;
49142
57496
class PragmaOnceUnitState;
49143
57497
class PragmaOnce;
49144
 
class CCExprResolve;
49145
 
class CExprResolve;
 
57498
class CMatchSyntax;
49146
57499
namespace Puma {
49147
57500
 
49148
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57501
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
49149
57502
class CT_GnuAsmClobbers : public CT_List {
49150
 
#line 49151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57503
#line 57504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
57504
  friend class ::CCExprResolve;
 
57505
  friend class ::CExprResolve;
49151
57506
  friend class ::WinIfExists;
49152
57507
  friend class ::WinImportHandler;
49153
57508
  friend class ::WinMacros;
49154
 
  friend class ::CMatchSyntax;
49155
 
  friend class ::ExtGnu;
 
57509
  friend class ::WinAsm;
 
57510
  friend class ::WinDeclSpecs;
 
57511
  friend class ::WinMemberExplSpec;
 
57512
  friend class ::WinTypeKeywords;
 
57513
  friend class ::WinFriend;
49156
57514
  friend class ::ExtAC;
49157
57515
  friend class ::ExtACBuilderCoupling;
49158
57516
  friend class ::ExtACSyntaxCoupling;
49159
57517
  friend class ::ExtACTree;
49160
57518
  friend class ::ExtACKeywords;
49161
 
  friend class ::WinAsm;
49162
 
  friend class ::WinDeclSpecs;
49163
 
  friend class ::WinMemberExplSpec;
49164
 
  friend class ::WinTypeKeywords;
 
57519
  friend class ::ExtGnu;
49165
57520
  friend class ::PragmaOnceUnitState;
49166
57521
  friend class ::PragmaOnce;
49167
 
  friend class ::CCExprResolve;
49168
 
  friend class ::CExprResolve;
 
57522
  friend class ::CMatchSyntax;
49169
57523
 
49170
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57524
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
49171
57525
 
49172
57526
public:
49173
57527
  CT_GnuAsmClobbers () { AddProperties (OPEN | SEPARATORS); }
49182
57536
/*****************************************************************************/
49183
57537
 
49184
57538
 
49185
 
#line 49186 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57539
#line 57540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
49186
57540
} // closed Puma
 
57541
class CCExprResolve;
 
57542
class CExprResolve;
49187
57543
class WinIfExists;
49188
57544
class WinImportHandler;
49189
57545
class WinMacros;
49190
 
class CMatchSyntax;
49191
 
class ExtGnu;
 
57546
class WinAsm;
 
57547
class WinDeclSpecs;
 
57548
class WinMemberExplSpec;
 
57549
class WinTypeKeywords;
 
57550
class WinFriend;
49192
57551
class ExtAC;
49193
57552
class ExtACBuilderCoupling;
49194
57553
class ExtACSyntaxCoupling;
49195
57554
class ExtACTree;
49196
57555
class ExtACKeywords;
49197
 
class WinAsm;
49198
 
class WinDeclSpecs;
49199
 
class WinMemberExplSpec;
49200
 
class WinTypeKeywords;
 
57556
class ExtGnu;
49201
57557
class PragmaOnceUnitState;
49202
57558
class PragmaOnce;
49203
 
class CCExprResolve;
49204
 
class CExprResolve;
49205
 
namespace Puma {
49206
 
 
49207
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57559
class CMatchSyntax;
 
57560
namespace Puma {
 
57561
 
 
57562
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57563
 
 
57564
#line 57565 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
57565
} // closed Puma
 
57566
 
 
57567
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57568
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
57569
#include "CCExprResolveH.ah"
 
57570
#endif
 
57571
namespace Puma {
 
57572
 
 
57573
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57574
 
 
57575
#line 57576 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
57576
} // closed Puma
 
57577
 
 
57578
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57579
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
57580
#include "CExprResolveH.ah"
 
57581
#endif
 
57582
namespace Puma {
 
57583
 
 
57584
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
49208
57585
class CT_GnuStatementExpr : public CT_Expression {
49209
 
#line 49210 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57586
#line 57587 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
57587
  friend class ::CCExprResolve;
 
57588
  friend class ::CExprResolve;
49210
57589
  friend class ::WinIfExists;
49211
57590
  friend class ::WinImportHandler;
49212
57591
  friend class ::WinMacros;
49213
 
  friend class ::CMatchSyntax;
49214
 
  friend class ::ExtGnu;
 
57592
  friend class ::WinAsm;
 
57593
  friend class ::WinDeclSpecs;
 
57594
  friend class ::WinMemberExplSpec;
 
57595
  friend class ::WinTypeKeywords;
 
57596
  friend class ::WinFriend;
49215
57597
  friend class ::ExtAC;
49216
57598
  friend class ::ExtACBuilderCoupling;
49217
57599
  friend class ::ExtACSyntaxCoupling;
49218
57600
  friend class ::ExtACTree;
49219
57601
  friend class ::ExtACKeywords;
49220
 
  friend class ::WinAsm;
49221
 
  friend class ::WinDeclSpecs;
49222
 
  friend class ::WinMemberExplSpec;
49223
 
  friend class ::WinTypeKeywords;
 
57602
  friend class ::ExtGnu;
49224
57603
  friend class ::PragmaOnceUnitState;
49225
57604
  friend class ::PragmaOnce;
49226
 
  friend class ::CCExprResolve;
49227
 
  friend class ::CExprResolve;
 
57605
  friend class ::CMatchSyntax;
49228
57606
 
49229
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57607
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
49230
57608
 
49231
57609
  CTree *_open;
49232
57610
  CTree *_stmt;
49249
57627
   private:
49250
57628
  typedef CT_GnuStatementExpr CCExprResolveExpr;
49251
57629
 
49252
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
57630
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49253
57631
 public :
49254
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
57632
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
49255
57633
  typedef CT_GnuStatementExpr CExprResolveExpr;
49256
57634
 
49257
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
57635
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49258
57636
 public :
49259
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49260
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57637
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
57638
#line 193 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
49261
57639
};
49262
57640
 
49263
57641
/*****************************************************************************/
49268
57646
 
49269
57647
// typeof(expr) or typeof(named type) feature
49270
57648
 
49271
 
#line 49272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57649
#line 57650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
49272
57650
} // closed Puma
 
57651
class CCExprResolve;
 
57652
class CExprResolve;
49273
57653
class WinIfExists;
49274
57654
class WinImportHandler;
49275
57655
class WinMacros;
49276
 
class CMatchSyntax;
49277
 
class ExtGnu;
 
57656
class WinAsm;
 
57657
class WinDeclSpecs;
 
57658
class WinMemberExplSpec;
 
57659
class WinTypeKeywords;
 
57660
class WinFriend;
49278
57661
class ExtAC;
49279
57662
class ExtACBuilderCoupling;
49280
57663
class ExtACSyntaxCoupling;
49281
57664
class ExtACTree;
49282
57665
class ExtACKeywords;
49283
 
class WinAsm;
49284
 
class WinDeclSpecs;
49285
 
class WinMemberExplSpec;
49286
 
class WinTypeKeywords;
 
57666
class ExtGnu;
49287
57667
class PragmaOnceUnitState;
49288
57668
class PragmaOnce;
49289
 
class CCExprResolve;
49290
 
class CExprResolve;
 
57669
class CMatchSyntax;
49291
57670
namespace Puma {
49292
57671
 
49293
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57672
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
49294
57673
class CT_GnuTypeof : public CT_DeclSpec, public CSemValue {
49295
 
#line 49296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57674
#line 57675 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
57675
  friend class ::CCExprResolve;
 
57676
  friend class ::CExprResolve;
49296
57677
  friend class ::WinIfExists;
49297
57678
  friend class ::WinImportHandler;
49298
57679
  friend class ::WinMacros;
49299
 
  friend class ::CMatchSyntax;
49300
 
  friend class ::ExtGnu;
 
57680
  friend class ::WinAsm;
 
57681
  friend class ::WinDeclSpecs;
 
57682
  friend class ::WinMemberExplSpec;
 
57683
  friend class ::WinTypeKeywords;
 
57684
  friend class ::WinFriend;
49301
57685
  friend class ::ExtAC;
49302
57686
  friend class ::ExtACBuilderCoupling;
49303
57687
  friend class ::ExtACSyntaxCoupling;
49304
57688
  friend class ::ExtACTree;
49305
57689
  friend class ::ExtACKeywords;
49306
 
  friend class ::WinAsm;
49307
 
  friend class ::WinDeclSpecs;
49308
 
  friend class ::WinMemberExplSpec;
49309
 
  friend class ::WinTypeKeywords;
 
57690
  friend class ::ExtGnu;
49310
57691
  friend class ::PragmaOnceUnitState;
49311
57692
  friend class ::PragmaOnce;
49312
 
  friend class ::CCExprResolve;
49313
 
  friend class ::CExprResolve;
 
57693
  friend class ::CMatchSyntax;
49314
57694
 
49315
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
 
57695
#line 202 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
49316
57696
 
49317
57697
  CTree *sons[5]; // key, open, type, close, expr
49318
57698
 
49340
57720
 
49341
57721
#endif /* __gnu_c_tree_h__ */
49342
57722
 
49343
 
#line 49344 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
49344
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_GnuCTree_h__
49345
 
 
49346
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/GnuCTree.h"
49347
 
 
49348
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
57723
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
49349
57724
// This file is part of PUMA.
49350
57725
// Copyright (C) 1999-2003  The PUMA developer team.
49351
57726
//                                                                
49368
57743
#define __CSemVisitor_h__
49369
57744
 
49370
57745
 
49371
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
57746
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
49372
57747
// This file is part of PUMA.
49373
57748
// Copyright (C) 1999-2003  The PUMA developer team.
49374
57749
//                                                                
49398
57773
class CTree;
49399
57774
 
49400
57775
 
49401
 
#line 49402 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57776
#line 57777 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
49402
57777
} // closed Puma
 
57778
class CCExprResolve;
 
57779
class CExprResolve;
49403
57780
class WinIfExists;
49404
57781
class WinImportHandler;
49405
57782
class WinMacros;
49406
 
class CMatchSyntax;
49407
 
class ExtGnu;
 
57783
class WinAsm;
 
57784
class WinDeclSpecs;
 
57785
class WinMemberExplSpec;
 
57786
class WinTypeKeywords;
 
57787
class WinFriend;
49408
57788
class ExtAC;
49409
57789
class ExtACBuilderCoupling;
49410
57790
class ExtACSyntaxCoupling;
49411
57791
class ExtACTree;
49412
57792
class ExtACKeywords;
49413
 
class WinAsm;
49414
 
class WinDeclSpecs;
49415
 
class WinMemberExplSpec;
49416
 
class WinTypeKeywords;
 
57793
class ExtGnu;
49417
57794
class PragmaOnceUnitState;
49418
57795
class PragmaOnce;
49419
 
class CCExprResolve;
49420
 
class CExprResolve;
 
57796
class CMatchSyntax;
49421
57797
namespace Puma {
49422
57798
 
49423
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
57799
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
49424
57800
class CVisitor {
49425
 
#line 49426 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57801
#line 57802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
57802
  friend class ::CCExprResolve;
 
57803
  friend class ::CExprResolve;
49426
57804
  friend class ::WinIfExists;
49427
57805
  friend class ::WinImportHandler;
49428
57806
  friend class ::WinMacros;
49429
 
  friend class ::CMatchSyntax;
49430
 
  friend class ::ExtGnu;
 
57807
  friend class ::WinAsm;
 
57808
  friend class ::WinDeclSpecs;
 
57809
  friend class ::WinMemberExplSpec;
 
57810
  friend class ::WinTypeKeywords;
 
57811
  friend class ::WinFriend;
49431
57812
  friend class ::ExtAC;
49432
57813
  friend class ::ExtACBuilderCoupling;
49433
57814
  friend class ::ExtACSyntaxCoupling;
49434
57815
  friend class ::ExtACTree;
49435
57816
  friend class ::ExtACKeywords;
49436
 
  friend class ::WinAsm;
49437
 
  friend class ::WinDeclSpecs;
49438
 
  friend class ::WinMemberExplSpec;
49439
 
  friend class ::WinTypeKeywords;
 
57817
  friend class ::ExtGnu;
49440
57818
  friend class ::PragmaOnceUnitState;
49441
57819
  friend class ::PragmaOnce;
49442
 
  friend class ::CCExprResolve;
49443
 
  friend class ::CExprResolve;
 
57820
  friend class ::CMatchSyntax;
49444
57821
 
49445
 
#line 29 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CVisitor.h"
 
57822
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CVisitor.h"
49446
57823
 
49447
57824
  bool _aborted;
49448
57825
  bool _pruned;
49469
57846
 
49470
57847
#endif /* __CVisitor_h__ */
49471
57848
 
49472
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Limits.h"
 
57849
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/Limits.h"
49473
57850
/* This file was generated by the PUMA library, version 1.1. */
49474
57851
 
49475
57852
// This file is part of PUMA.
49493
57870
#ifndef __Limits_h__
49494
57871
#define __Limits_h__
49495
57872
 
 
57873
#include <limits.h>
49496
57874
 
49497
 
#line 26 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/Limits.h"
49498
57875
namespace Puma {
49499
57876
 
49500
57877
 
49550
57927
 
49551
57928
#endif /* __Limits_h__ */
49552
57929
 
49553
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57930
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49554
57931
 
49555
 
#line 49556 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
57932
#line 57933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
49556
57933
 
49557
57934
#ifndef __ac_fwd_ExtACTree__
49558
57935
#define __ac_fwd_ExtACTree__
49559
57936
class ExtACTree;
49560
57937
namespace AC {
49561
57938
  template <class JoinPoint>
49562
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
57939
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
49563
57940
  template <class JoinPoint>
49564
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
57941
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
49565
57942
}
49566
57943
#endif
49567
57944
 
49568
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
49569
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
57945
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
57946
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
49570
57947
#endif
49571
57948
 
49572
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49573
 
 
49574
 
#line 49575 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
49575
 
 
49576
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
49577
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
49578
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
49579
 
 
49580
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
57949
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49581
57950
// This file is part of PUMA.
49582
57951
// Copyright (C) 1999-2003  The PUMA developer team.
49583
57952
//                                                                
49622
57991
class     CT_DefaultStmt;
49623
57992
class     CT_TryStmt;
49624
57993
class   CT_Expression;
 
57994
class     CT_Call;
 
57995
class       CT_CallExpr;
 
57996
class       CT_ImplicitCall;
49625
57997
class     CT_ThrowExpr;
49626
57998
class     CT_NewExpr;
49627
57999
class     CT_DeleteExpr;
49642
58014
class     CT_IfThenExpr;
49643
58015
class     CT_CmpdLiteral;
49644
58016
class     CT_IndexExpr;
49645
 
class     CT_CallExpr;
49646
58017
class     CT_CastExpr;
49647
58018
class     CT_StaticCast;
49648
58019
class       CT_ConstCast;
49689
58060
class     CT_NamespaceDef;
49690
58061
class     CT_NamespaceAliasDef;
49691
58062
class     CT_UsingDirective;
 
58063
class     CT_Condition;
49692
58064
class   CT_List;
49693
58065
class     CT_CmpdStmt;
49694
58066
class     CT_DeclSpecSeq;
49719
58091
class     CT_TemplateArgList;
49720
58092
class   CT_Token;
49721
58093
class   CT_Error;
49722
 
class   CT_Condition;
49723
58094
class   CT_BaseSpec;
49724
58095
class   CT_AccessSpec;
49725
58096
class   CT_ArrayDelimiter;
49759
58130
/*                                                                           */
49760
58131
/*****************************************************************************/
49761
58132
 
49762
 
 
49763
 
#line 49764 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58133
/** \file
 
58134
 *  C/C++ syntax tree classes.
 
58135
 *  \see Puma::CTree */
 
58136
 
 
58137
/** \class CTree CTree.h Puma/CTree.h
 
58138
 *  Base class for all C/C++ syntax tree classes. */
 
58139
 
 
58140
#line 58141 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
49764
58141
} // closed Puma
 
58142
class CCExprResolve;
 
58143
class CExprResolve;
49765
58144
class WinIfExists;
49766
58145
class WinImportHandler;
49767
58146
class WinMacros;
49768
 
class CMatchSyntax;
49769
 
class ExtGnu;
 
58147
class WinAsm;
 
58148
class WinDeclSpecs;
 
58149
class WinMemberExplSpec;
 
58150
class WinTypeKeywords;
 
58151
class WinFriend;
49770
58152
class ExtAC;
49771
58153
class ExtACBuilderCoupling;
49772
58154
class ExtACSyntaxCoupling;
49773
58155
class ExtACTree;
49774
58156
class ExtACKeywords;
49775
 
class WinAsm;
49776
 
class WinDeclSpecs;
49777
 
class WinMemberExplSpec;
49778
 
class WinTypeKeywords;
 
58157
class ExtGnu;
49779
58158
class PragmaOnceUnitState;
49780
58159
class PragmaOnce;
49781
 
class CCExprResolve;
49782
 
class CExprResolve;
49783
 
namespace Puma {
49784
 
 
49785
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58160
class CMatchSyntax;
 
58161
namespace Puma {
 
58162
 
 
58163
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58164
 
 
58165
#line 58166 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
58166
} // closed Puma
 
58167
 
 
58168
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58169
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
58170
#include "CCExprResolveH.ah"
 
58171
#endif
 
58172
namespace Puma {
 
58173
 
 
58174
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58175
 
 
58176
#line 58177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
58177
} // closed Puma
 
58178
 
 
58179
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58180
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
58181
#include "CExprResolveH.ah"
 
58182
#endif
 
58183
namespace Puma {
 
58184
 
 
58185
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49786
58186
class CTree {
49787
 
#line 49788 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58187
#line 58188 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
58188
  friend class ::CCExprResolve;
 
58189
  friend class ::CExprResolve;
49788
58190
  friend class ::WinIfExists;
49789
58191
  friend class ::WinImportHandler;
49790
58192
  friend class ::WinMacros;
49791
 
  friend class ::CMatchSyntax;
49792
 
  friend class ::ExtGnu;
 
58193
  friend class ::WinAsm;
 
58194
  friend class ::WinDeclSpecs;
 
58195
  friend class ::WinMemberExplSpec;
 
58196
  friend class ::WinTypeKeywords;
 
58197
  friend class ::WinFriend;
49793
58198
  friend class ::ExtAC;
49794
58199
  friend class ::ExtACBuilderCoupling;
49795
58200
  friend class ::ExtACSyntaxCoupling;
49796
58201
  friend class ::ExtACTree;
49797
58202
  friend class ::ExtACKeywords;
49798
 
  friend class ::WinAsm;
49799
 
  friend class ::WinDeclSpecs;
49800
 
  friend class ::WinMemberExplSpec;
49801
 
  friend class ::WinTypeKeywords;
 
58203
  friend class ::ExtGnu;
49802
58204
  friend class ::PragmaOnceUnitState;
49803
58205
  friend class ::PragmaOnce;
49804
 
  friend class ::CCExprResolve;
49805
 
  friend class ::CExprResolve;
49806
 
 
49807
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58206
  friend class ::CMatchSyntax;
 
58207
 
 
58208
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58209
 
 
58210
  CTree * _parent;
49808
58211
 
49809
58212
public:
49810
58213
  /*DEBUG*/static int alloc;
49811
58214
  /*DEBUG*/static int release;
49812
58215
 
49813
58216
protected:
49814
 
  CTree *Son (CTree * const *, int, int) const;
49815
 
  int Sons (CTree * const *, int) const;
49816
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
58217
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
58218
   *  \param sons The sons array.
 
58219
   *  \param len Length of the sons array.
 
58220
   *  \param n Index of the son.
 
58221
   *  \return The n-th son or NULL. */
 
58222
  CTree *Son (CTree * const *sons, int len, int n) const;
 
58223
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
58224
   *  \param sons The sons array.
 
58225
   *  \param len Length of the sons array. */
 
58226
  int Sons (CTree * const *sons, int len) const;
 
58227
  /** Replace a son.
 
58228
   *  \param sons The sons array.
 
58229
   *  \param len Length of the sons array.
 
58230
   *  \param old_son The son to replace.
 
58231
   *  \param new_son The new son. */
 
58232
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
58233
  /** Replace a son if it equals the given son.
 
58234
   *  \param son The actual son.
 
58235
   *  \param old_son The son to replace, must match the actual son.
 
58236
   *  \param new_son The new son, overwrites the actual son. */
 
58237
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
58238
  /** Add a new son.
 
58239
   *  \param son The actual son.
 
58240
   *  \param new_son The new son, overwrites the actual son. */
 
58241
  void AddSon (CTree *&son, CTree *new_son);
 
58242
  /** Set the parent tree node.
 
58243
   *  \param parent The new parent tree node. */
 
58244
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
58245
  /** Set the parent tree node of the given tree node.
 
58246
   *  \param node The tree node.
 
58247
   *  \param parent The new parent. */
 
58248
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
49817
58249
  
49818
58250
protected:
49819
 
  CTree () { /*DEBUG*/alloc++; }
 
58251
  /** Default constructor. */
 
58252
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
49820
58253
 
49821
58254
public:
 
58255
  /** Destructor. */
49822
58256
  virtual ~CTree () { /*DEBUG*/release++; }
 
58257
  /** Get the number of sons. */
49823
58258
  virtual int Sons () const = 0;
 
58259
  /** Get the n-th son.
 
58260
   *  \param n The index of the son.
 
58261
   *  \return The n-th son or NULL. */
49824
58262
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
58263
  /** Get the node name (node identifier). */
49825
58264
  virtual const char *NodeName () const = 0;
 
58265
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
58266
   *  \return The token or NULL. */
49826
58267
  virtual Token *token () const;
 
58268
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
58269
   *  \return The token or NULL. */
49827
58270
  virtual Token *end_token () const;
 
58271
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
58272
   *  \return The token node or NULL. */
49828
58273
  virtual CT_Token *token_node () const;
 
58274
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
58275
   *  \return The token node or NULL. */
49829
58276
  virtual CT_Token *end_token_node () const;
49830
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
58277
  /** Replace a son.
 
58278
   *  \param old_son The son to replace.
 
58279
   *  \param new_son The son with which to replace. */
 
58280
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
58281
  /** Get the parent node.
 
58282
   *  \return The parent node or NULL. */
 
58283
  virtual CTree *Parent () const { return (CTree*)_parent; }
49831
58284
 
49832
58285
public: // semantic information
 
58286
  /** Get the semantic type of the node.
 
58287
   *  \return The type object or NULL. */
49833
58288
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
58289
  /** Get the calculated value of the expression.
 
58290
   *  \return The value object or NULL. */
49834
58291
  virtual CExprValue *Value () const { return (CExprValue*)0; }
49835
58292
  
 
58293
  /** Get the semantic scope of the node.
 
58294
   *  \return The scope object or NULL. */
 
58295
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
58296
  /** Get the semantic value of the node.
 
58297
   *  \return The value object or NULL. */
49836
58298
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
58299
  /** Get the semantic object of the node.
 
58300
   *  \return The semantic object or NULL. */
49837
58301
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
49838
58302
  
49839
58303
public: // node classification function
 
58304
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
58305
   *  \return The CT_SimpleName node or NULL. */
49840
58306
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
58307
  /** Get a pointer to CT_String if the current node represents a string.
 
58308
   *  \return The CT_String node or NULL. */
 
58309
  virtual CT_String *IsString () { return 0; }
 
58310
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
58311
   *  \return The CT_Declarator pointer or NULL. */
49841
58312
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
58313
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
58314
   *  \return The CT_Statement pointer or NULL. */
 
58315
  virtual CT_Statement *IsStatement () { return 0; }
 
58316
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
58317
   *  \return The CT_Expression pointer or NULL. */
 
58318
  virtual CT_Expression *IsExpression () { return 0; }
 
58319
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
58320
   *  \return The CT_Decl pointer or NULL. */
 
58321
  virtual CT_Decl *IsDeclaration () { return 0; }
 
58322
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
58323
   *  \return The CT_Call pointer or NULL. */
 
58324
  virtual CT_Call *IsCall () { return 0; }
49842
58325
   private:
49843
58326
  typedef CTree CCExprResolveCTree;
49844
58327
 
49845
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
58328
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
49846
58329
 public :
49847
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
58330
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
49848
58331
  typedef CTree CExprResolveCTree;
49849
58332
 
49850
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
58333
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
49851
58334
 public :
49852
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
49853
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58335
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
58336
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49854
58337
};
49855
58338
 
 
58339
/** \class CT_Error CTree.h Puma/CTree.h
 
58340
 *  Error tree node that is inserted into the tree for syntactic constructs
 
58341
 *  that could not be parsed. */
49856
58342
 
49857
 
#line 49858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58343
#line 58344 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
49858
58344
} // closed Puma
 
58345
class CCExprResolve;
 
58346
class CExprResolve;
49859
58347
class WinIfExists;
49860
58348
class WinImportHandler;
49861
58349
class WinMacros;
49862
 
class CMatchSyntax;
49863
 
class ExtGnu;
 
58350
class WinAsm;
 
58351
class WinDeclSpecs;
 
58352
class WinMemberExplSpec;
 
58353
class WinTypeKeywords;
 
58354
class WinFriend;
49864
58355
class ExtAC;
49865
58356
class ExtACBuilderCoupling;
49866
58357
class ExtACSyntaxCoupling;
49867
58358
class ExtACTree;
49868
58359
class ExtACKeywords;
49869
 
class WinAsm;
49870
 
class WinDeclSpecs;
49871
 
class WinMemberExplSpec;
49872
 
class WinTypeKeywords;
 
58360
class ExtGnu;
49873
58361
class PragmaOnceUnitState;
49874
58362
class PragmaOnce;
49875
 
class CCExprResolve;
49876
 
class CExprResolve;
 
58363
class CMatchSyntax;
49877
58364
namespace Puma {
49878
58365
 
49879
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58366
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49880
58367
class CT_Error : public CTree {
49881
 
#line 49882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58368
#line 58369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
58369
  friend class ::CCExprResolve;
 
58370
  friend class ::CExprResolve;
49882
58371
  friend class ::WinIfExists;
49883
58372
  friend class ::WinImportHandler;
49884
58373
  friend class ::WinMacros;
49885
 
  friend class ::CMatchSyntax;
49886
 
  friend class ::ExtGnu;
 
58374
  friend class ::WinAsm;
 
58375
  friend class ::WinDeclSpecs;
 
58376
  friend class ::WinMemberExplSpec;
 
58377
  friend class ::WinTypeKeywords;
 
58378
  friend class ::WinFriend;
49887
58379
  friend class ::ExtAC;
49888
58380
  friend class ::ExtACBuilderCoupling;
49889
58381
  friend class ::ExtACSyntaxCoupling;
49890
58382
  friend class ::ExtACTree;
49891
58383
  friend class ::ExtACKeywords;
49892
 
  friend class ::WinAsm;
49893
 
  friend class ::WinDeclSpecs;
49894
 
  friend class ::WinMemberExplSpec;
49895
 
  friend class ::WinTypeKeywords;
 
58384
  friend class ::ExtGnu;
49896
58385
  friend class ::PragmaOnceUnitState;
49897
58386
  friend class ::PragmaOnce;
49898
 
  friend class ::CCExprResolve;
49899
 
  friend class ::CExprResolve;
 
58387
  friend class ::CMatchSyntax;
49900
58388
 
49901
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58389
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49902
58390
 
49903
58391
public:
 
58392
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49904
58393
  static const char *NodeId ();
 
58394
  /** Get the name of the node. Can be compared with NodeId(). */
49905
58395
  const char *NodeName () const { return NodeId (); }
 
58396
  /** Get the number of sons. */
49906
58397
  int Sons () const { return 0; }
49907
58398
};
49908
58399
 
 
58400
/** \class CT_Token CTree.h Puma/CTree.h
 
58401
 *  Tree node representing a single token in the source code. */
49909
58402
 
49910
 
#line 49911 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58403
#line 58404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
49911
58404
} // closed Puma
 
58405
class CCExprResolve;
 
58406
class CExprResolve;
49912
58407
class WinIfExists;
49913
58408
class WinImportHandler;
49914
58409
class WinMacros;
49915
 
class CMatchSyntax;
49916
 
class ExtGnu;
 
58410
class WinAsm;
 
58411
class WinDeclSpecs;
 
58412
class WinMemberExplSpec;
 
58413
class WinTypeKeywords;
 
58414
class WinFriend;
49917
58415
class ExtAC;
49918
58416
class ExtACBuilderCoupling;
49919
58417
class ExtACSyntaxCoupling;
49920
58418
class ExtACTree;
49921
58419
class ExtACKeywords;
49922
 
class WinAsm;
49923
 
class WinDeclSpecs;
49924
 
class WinMemberExplSpec;
49925
 
class WinTypeKeywords;
 
58420
class ExtGnu;
49926
58421
class PragmaOnceUnitState;
49927
58422
class PragmaOnce;
49928
 
class CCExprResolve;
49929
 
class CExprResolve;
 
58423
class CMatchSyntax;
49930
58424
namespace Puma {
49931
58425
 
49932
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58426
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49933
58427
class CT_Token : public CTree {
49934
 
#line 49935 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58428
#line 58429 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
58429
  friend class ::CCExprResolve;
 
58430
  friend class ::CExprResolve;
49935
58431
  friend class ::WinIfExists;
49936
58432
  friend class ::WinImportHandler;
49937
58433
  friend class ::WinMacros;
49938
 
  friend class ::CMatchSyntax;
49939
 
  friend class ::ExtGnu;
 
58434
  friend class ::WinAsm;
 
58435
  friend class ::WinDeclSpecs;
 
58436
  friend class ::WinMemberExplSpec;
 
58437
  friend class ::WinTypeKeywords;
 
58438
  friend class ::WinFriend;
49940
58439
  friend class ::ExtAC;
49941
58440
  friend class ::ExtACBuilderCoupling;
49942
58441
  friend class ::ExtACSyntaxCoupling;
49943
58442
  friend class ::ExtACTree;
49944
58443
  friend class ::ExtACKeywords;
49945
 
  friend class ::WinAsm;
49946
 
  friend class ::WinDeclSpecs;
49947
 
  friend class ::WinMemberExplSpec;
49948
 
  friend class ::WinTypeKeywords;
 
58444
  friend class ::ExtGnu;
49949
58445
  friend class ::PragmaOnceUnitState;
49950
58446
  friend class ::PragmaOnce;
49951
 
  friend class ::CCExprResolve;
49952
 
  friend class ::CExprResolve;
 
58447
  friend class ::CMatchSyntax;
49953
58448
 
49954
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58449
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
49955
58450
 
49956
58451
  Token *_token;
49957
58452
  unsigned long int _number;
49958
58453
  
49959
58454
public:
49960
 
  CT_Token (Token *t, unsigned long int n = 0) : 
49961
 
    _token (t), _number (n) {}
 
58455
  /** Constructor. 
 
58456
   *  \param token The represented token.
 
58457
   *  \param number The token number (a consecutive number). */
 
58458
  CT_Token (Token *token, unsigned long int number = 0) : 
 
58459
    _token (token), _number (number) {}
 
58460
  /** Get the identifier for this node type. Can be compared with NodeName(). */
49962
58461
  static const char *NodeId ();
 
58462
  /** Get the name of the node. Can be compared with NodeId(). */
49963
58463
  const char *NodeName () const { return NodeId (); }
 
58464
  /** Get the number of sons. */
49964
58465
  int Sons () const { return 0; }
 
58466
  /** Get the represented token. */
49965
58467
  Token *token () const { return _token; }
 
58468
  /** Get the represented token. */
49966
58469
  Token *end_token () const { return _token; }
 
58470
  /** Get this. */
49967
58471
  CT_Token *token_node () const { return (CT_Token*)this; }
 
58472
  /** Get this. */
49968
58473
  CT_Token *end_token_node () const { return (CT_Token*)this; }
49969
 
  void Number (unsigned long int n) { _number = n; }
 
58474
  /** Set the token number. 
 
58475
   *  \param number The token number. */ 
 
58476
  void Number (unsigned long int number) { _number = number; }
 
58477
  /** Get the token number. Can be used to indentify this token. */
49970
58478
  unsigned long int Number () const { return _number; }
49971
 
  // special new / delete with reusing memory
 
58479
  
 
58480
public:
 
58481
  /** Own new operator reusing memory. */
49972
58482
  void *operator new (size_t);
49973
 
  void  operator delete (void *);
 
58483
  /** Own delete operator. */
 
58484
  void operator delete (void *);
49974
58485
};
49975
58486
 
49976
58487
/*****************************************************************************/
49979
58490
/*                                                                           */
49980
58491
/*****************************************************************************/
49981
58492
 
 
58493
/** \class CT_List CTree.h Puma/CTree.h
 
58494
 *  Base class for tree nodes representing lists. */
49982
58495
 
49983
 
#line 49984 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58496
#line 58497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
49984
58497
} // closed Puma
 
58498
class CCExprResolve;
 
58499
class CExprResolve;
49985
58500
class WinIfExists;
49986
58501
class WinImportHandler;
49987
58502
class WinMacros;
49988
 
class CMatchSyntax;
49989
 
class ExtGnu;
 
58503
class WinAsm;
 
58504
class WinDeclSpecs;
 
58505
class WinMemberExplSpec;
 
58506
class WinTypeKeywords;
 
58507
class WinFriend;
49990
58508
class ExtAC;
49991
58509
class ExtACBuilderCoupling;
49992
58510
class ExtACSyntaxCoupling;
49993
58511
class ExtACTree;
49994
58512
class ExtACKeywords;
49995
 
class WinAsm;
49996
 
class WinDeclSpecs;
49997
 
class WinMemberExplSpec;
49998
 
class WinTypeKeywords;
 
58513
class ExtGnu;
49999
58514
class PragmaOnceUnitState;
50000
58515
class PragmaOnce;
50001
 
class CCExprResolve;
50002
 
class CExprResolve;
 
58516
class CMatchSyntax;
50003
58517
namespace Puma {
50004
58518
 
50005
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58519
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50006
58520
class CT_List : public CTree {
50007
 
#line 50008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58521
#line 58522 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
58522
  friend class ::CCExprResolve;
 
58523
  friend class ::CExprResolve;
50008
58524
  friend class ::WinIfExists;
50009
58525
  friend class ::WinImportHandler;
50010
58526
  friend class ::WinMacros;
50011
 
  friend class ::CMatchSyntax;
50012
 
  friend class ::ExtGnu;
 
58527
  friend class ::WinAsm;
 
58528
  friend class ::WinDeclSpecs;
 
58529
  friend class ::WinMemberExplSpec;
 
58530
  friend class ::WinTypeKeywords;
 
58531
  friend class ::WinFriend;
50013
58532
  friend class ::ExtAC;
50014
58533
  friend class ::ExtACBuilderCoupling;
50015
58534
  friend class ::ExtACSyntaxCoupling;
50016
58535
  friend class ::ExtACTree;
50017
58536
  friend class ::ExtACKeywords;
50018
 
  friend class ::WinAsm;
50019
 
  friend class ::WinDeclSpecs;
50020
 
  friend class ::WinMemberExplSpec;
50021
 
  friend class ::WinTypeKeywords;
 
58537
  friend class ::ExtGnu;
50022
58538
  friend class ::PragmaOnceUnitState;
50023
58539
  friend class ::PragmaOnce;
50024
 
  friend class ::CCExprResolve;
50025
 
  friend class ::CExprResolve;
 
58540
  friend class ::CMatchSyntax;
50026
58541
 
50027
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58542
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50028
58543
 
50029
58544
  Array<CTree*> _sons;
50030
58545
  int _properties;
50031
58546
 
50032
58547
protected:
 
58548
  /** Constructor.
 
58549
   *  \param size The initial list size.
 
58550
   *  \param incr The initial increment count. 
 
58551
   *  \param props The list properties (bit array). */
50033
58552
  CT_List(int size = 5, int incr = 5, int props = 0) : 
50034
58553
    _sons (size, incr), _properties (props) {}
50035
58554
 
50036
58555
public:
 
58556
  /** List properties. */
50037
58557
  enum {
50038
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
50039
 
    CLOSE = 2,
50040
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
50041
 
    SEPARATORS = 4,   // the list has separators like ','
50042
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
50043
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
50044
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
50045
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
58558
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
58559
    CLOSE = 2,        /** List has an end token */
 
58560
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
58561
    SEPARATORS = 4,   /** List has separators, like ',' */
 
58562
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
58563
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
58564
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
58565
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
50046
58566
  };
50047
58567
 
 
58568
  /** Get the number of list entries. */
50048
58569
  int Entries () const;
50049
 
  CTree *Entry (int no) const;
 
58570
  /** Get the n-th list entry.
 
58571
   *  \param n The index of the entry. 
 
58572
   *  \return The list entry or NULL. */
 
58573
  CTree *Entry (int n) const;
 
58574
  /** Get the number of sons. */
50050
58575
  int Sons () const { return _sons.length (); }
 
58576
  /** Get the n-th son.
 
58577
   *  \param n The index of the son. 
 
58578
   *  \return The n-th son or NULL. */
50051
58579
  CTree *Son (int n) const { return _sons.lookup (n); }
 
58580
  /** Get the list properties. */
50052
58581
  int GetProperties () const { return _properties; }
 
58582
  /** Add a list property.
 
58583
   *  \param p The property to add. */
50053
58584
  void AddProperties (int p) { _properties |= p; }
50054
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
50055
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
50056
 
  void InsertSon (CTree *, CTree *);  // before given son
50057
 
  void ReplaceSon (CTree *, CTree *);
50058
 
  void RemoveSon (CTree *);
 
58585
  /** Add a son.
 
58586
   *  \param s The son to add. */
 
58587
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
58588
  /** Prepend a son.
 
58589
   *  \param s The son to prepend. */
 
58590
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
58591
  /** Insert a son before another son.
 
58592
   *  \param before The son to insert the new son before.
 
58593
   *  \param son The son to insert. */
 
58594
  void InsertSon (CTree *before, CTree *son); 
 
58595
  /** Replace a son.
 
58596
   *  \param old_son The son to replace.
 
58597
   *  \param new_son The new son. */
 
58598
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
58599
  /** Remove a son.
 
58600
   *  \param son The son to remove. */
 
58601
  void RemoveSon (CTree *son);
 
58602
  /** Insert a son at the given index. 
 
58603
   *  \param idx The index at which to insert.
 
58604
   *  \param s The son to insert. */
50059
58605
  void InsertSon (int idx, CTree *s)
50060
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
58606
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
58607
  /** Replace the son at the given index.
 
58608
   *  \param idx The index of the son to replace.
 
58609
   *  \param s The new son. */
50061
58610
  void ReplaceSon (int idx, CTree *s) 
50062
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
58611
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
58612
  /** Remove the son at the given index. 
 
58613
   *  \param idx The index of the son to remove. */
50063
58614
  void RemoveSon (int idx) 
50064
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
58615
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
50065
58616
};
50066
58617
 
 
58618
/** \class CT_ExprList CTree.h Puma/CTree.h
 
58619
 *  Tree node representing an expression list. */
50067
58620
 
50068
 
#line 50069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58621
#line 58622 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50069
58622
} // closed Puma
 
58623
class CCExprResolve;
 
58624
class CExprResolve;
50070
58625
class WinIfExists;
50071
58626
class WinImportHandler;
50072
58627
class WinMacros;
50073
 
class CMatchSyntax;
50074
 
class ExtGnu;
 
58628
class WinAsm;
 
58629
class WinDeclSpecs;
 
58630
class WinMemberExplSpec;
 
58631
class WinTypeKeywords;
 
58632
class WinFriend;
50075
58633
class ExtAC;
50076
58634
class ExtACBuilderCoupling;
50077
58635
class ExtACSyntaxCoupling;
50078
58636
class ExtACTree;
50079
58637
class ExtACKeywords;
50080
 
class WinAsm;
50081
 
class WinDeclSpecs;
50082
 
class WinMemberExplSpec;
50083
 
class WinTypeKeywords;
 
58638
class ExtGnu;
50084
58639
class PragmaOnceUnitState;
50085
58640
class PragmaOnce;
50086
 
class CCExprResolve;
50087
 
class CExprResolve;
 
58641
class CMatchSyntax;
50088
58642
namespace Puma {
50089
58643
 
50090
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58644
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50091
58645
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
50092
 
#line 50093 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58646
#line 58647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
58647
  friend class ::CCExprResolve;
 
58648
  friend class ::CExprResolve;
50093
58649
  friend class ::WinIfExists;
50094
58650
  friend class ::WinImportHandler;
50095
58651
  friend class ::WinMacros;
50096
 
  friend class ::CMatchSyntax;
50097
 
  friend class ::ExtGnu;
 
58652
  friend class ::WinAsm;
 
58653
  friend class ::WinDeclSpecs;
 
58654
  friend class ::WinMemberExplSpec;
 
58655
  friend class ::WinTypeKeywords;
 
58656
  friend class ::WinFriend;
50098
58657
  friend class ::ExtAC;
50099
58658
  friend class ::ExtACBuilderCoupling;
50100
58659
  friend class ::ExtACSyntaxCoupling;
50101
58660
  friend class ::ExtACTree;
50102
58661
  friend class ::ExtACKeywords;
50103
 
  friend class ::WinAsm;
50104
 
  friend class ::WinDeclSpecs;
50105
 
  friend class ::WinMemberExplSpec;
50106
 
  friend class ::WinTypeKeywords;
 
58662
  friend class ::ExtGnu;
50107
58663
  friend class ::PragmaOnceUnitState;
50108
58664
  friend class ::PragmaOnce;
50109
 
  friend class ::CCExprResolve;
50110
 
  friend class ::CExprResolve;
 
58665
  friend class ::CMatchSyntax;
50111
58666
 
50112
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58667
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50113
58668
 
50114
58669
public:
 
58670
  /** Constructor. */
50115
58671
  CT_ExprList () { AddProperties (SEPARATORS); }
 
58672
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50116
58673
  static const char *NodeId ();
 
58674
  /** Get the name of the node. Can be compared with NodeId(). */
50117
58675
  const char *NodeName () const { return NodeId (); }
50118
58676
 
 
58677
  /** Get the type of the last expression in the expression list.
 
58678
   *  \return The type or NULL. */
50119
58679
  CTypeInfo *Type () const { return type; }
 
58680
  /** Get the value of the last expression in the expression list.
 
58681
   *  \return The value of NULL. */
50120
58682
  CExprValue *Value () const { return value; }
 
58683
  /** Get the semantic value of the node. */
50121
58684
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
58685
  /** Get the semantic object of the node. */
50122
58686
  CSemObject *SemObject () const { return (CSemObject*)this; }
50123
58687
};
50124
58688
 
 
58689
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
58690
 *  Tree node representing a list of declarators. */
50125
58691
 
50126
 
#line 50127 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58692
#line 58693 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50127
58693
} // closed Puma
 
58694
class CCExprResolve;
 
58695
class CExprResolve;
50128
58696
class WinIfExists;
50129
58697
class WinImportHandler;
50130
58698
class WinMacros;
50131
 
class CMatchSyntax;
50132
 
class ExtGnu;
 
58699
class WinAsm;
 
58700
class WinDeclSpecs;
 
58701
class WinMemberExplSpec;
 
58702
class WinTypeKeywords;
 
58703
class WinFriend;
50133
58704
class ExtAC;
50134
58705
class ExtACBuilderCoupling;
50135
58706
class ExtACSyntaxCoupling;
50136
58707
class ExtACTree;
50137
58708
class ExtACKeywords;
50138
 
class WinAsm;
50139
 
class WinDeclSpecs;
50140
 
class WinMemberExplSpec;
50141
 
class WinTypeKeywords;
 
58709
class ExtGnu;
50142
58710
class PragmaOnceUnitState;
50143
58711
class PragmaOnce;
50144
 
class CCExprResolve;
50145
 
class CExprResolve;
 
58712
class CMatchSyntax;
50146
58713
namespace Puma {
50147
58714
 
50148
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58715
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50149
58716
class CT_DeclaratorList : public CT_List {
50150
 
#line 50151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58717
#line 58718 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
58718
  friend class ::CCExprResolve;
 
58719
  friend class ::CExprResolve;
50151
58720
  friend class ::WinIfExists;
50152
58721
  friend class ::WinImportHandler;
50153
58722
  friend class ::WinMacros;
50154
 
  friend class ::CMatchSyntax;
50155
 
  friend class ::ExtGnu;
 
58723
  friend class ::WinAsm;
 
58724
  friend class ::WinDeclSpecs;
 
58725
  friend class ::WinMemberExplSpec;
 
58726
  friend class ::WinTypeKeywords;
 
58727
  friend class ::WinFriend;
50156
58728
  friend class ::ExtAC;
50157
58729
  friend class ::ExtACBuilderCoupling;
50158
58730
  friend class ::ExtACSyntaxCoupling;
50159
58731
  friend class ::ExtACTree;
50160
58732
  friend class ::ExtACKeywords;
50161
 
  friend class ::WinAsm;
50162
 
  friend class ::WinDeclSpecs;
50163
 
  friend class ::WinMemberExplSpec;
50164
 
  friend class ::WinTypeKeywords;
 
58733
  friend class ::ExtGnu;
50165
58734
  friend class ::PragmaOnceUnitState;
50166
58735
  friend class ::PragmaOnce;
50167
 
  friend class ::CCExprResolve;
50168
 
  friend class ::CExprResolve;
 
58736
  friend class ::CMatchSyntax;
50169
58737
 
50170
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58738
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50171
58739
 
50172
58740
public:
 
58741
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50173
58742
  static const char *NodeId ();
 
58743
  /** Get the name of the node. Can be compared with NodeId(). */
50174
58744
  const char *NodeName () const { return NodeId (); }
50175
58745
};
50176
58746
 
 
58747
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
58748
 *  Tree node representing a list of enumerator constants. */
50177
58749
 
50178
 
#line 50179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58750
#line 58751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50179
58751
} // closed Puma
 
58752
class CCExprResolve;
 
58753
class CExprResolve;
50180
58754
class WinIfExists;
50181
58755
class WinImportHandler;
50182
58756
class WinMacros;
50183
 
class CMatchSyntax;
50184
 
class ExtGnu;
 
58757
class WinAsm;
 
58758
class WinDeclSpecs;
 
58759
class WinMemberExplSpec;
 
58760
class WinTypeKeywords;
 
58761
class WinFriend;
50185
58762
class ExtAC;
50186
58763
class ExtACBuilderCoupling;
50187
58764
class ExtACSyntaxCoupling;
50188
58765
class ExtACTree;
50189
58766
class ExtACKeywords;
50190
 
class WinAsm;
50191
 
class WinDeclSpecs;
50192
 
class WinMemberExplSpec;
50193
 
class WinTypeKeywords;
 
58767
class ExtGnu;
50194
58768
class PragmaOnceUnitState;
50195
58769
class PragmaOnce;
50196
 
class CCExprResolve;
50197
 
class CExprResolve;
 
58770
class CMatchSyntax;
50198
58771
namespace Puma {
50199
58772
 
50200
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58773
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50201
58774
class CT_EnumeratorList : public CT_List {
50202
 
#line 50203 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58775
#line 58776 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
58776
  friend class ::CCExprResolve;
 
58777
  friend class ::CExprResolve;
50203
58778
  friend class ::WinIfExists;
50204
58779
  friend class ::WinImportHandler;
50205
58780
  friend class ::WinMacros;
50206
 
  friend class ::CMatchSyntax;
50207
 
  friend class ::ExtGnu;
 
58781
  friend class ::WinAsm;
 
58782
  friend class ::WinDeclSpecs;
 
58783
  friend class ::WinMemberExplSpec;
 
58784
  friend class ::WinTypeKeywords;
 
58785
  friend class ::WinFriend;
50208
58786
  friend class ::ExtAC;
50209
58787
  friend class ::ExtACBuilderCoupling;
50210
58788
  friend class ::ExtACSyntaxCoupling;
50211
58789
  friend class ::ExtACTree;
50212
58790
  friend class ::ExtACKeywords;
50213
 
  friend class ::WinAsm;
50214
 
  friend class ::WinDeclSpecs;
50215
 
  friend class ::WinMemberExplSpec;
50216
 
  friend class ::WinTypeKeywords;
 
58791
  friend class ::ExtGnu;
50217
58792
  friend class ::PragmaOnceUnitState;
50218
58793
  friend class ::PragmaOnce;
50219
 
  friend class ::CCExprResolve;
50220
 
  friend class ::CExprResolve;
 
58794
  friend class ::CMatchSyntax;
50221
58795
 
50222
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58796
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50223
58797
 
50224
58798
public:
 
58799
  /** Constructor. */
50225
58800
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
58801
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50226
58802
  static const char *NodeId ();
 
58803
  /** Get the name of the node. Can be compared with NodeId(). */
50227
58804
  const char *NodeName () const { return NodeId (); }
50228
58805
};
50229
58806
   
 
58807
/** \class CT_DeclList CTree.h Puma/CTree.h
 
58808
 *  Tree node representing a list of declarations. */
50230
58809
 
50231
 
#line 50232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58810
#line 58811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50232
58811
} // closed Puma
 
58812
class CCExprResolve;
 
58813
class CExprResolve;
50233
58814
class WinIfExists;
50234
58815
class WinImportHandler;
50235
58816
class WinMacros;
50236
 
class CMatchSyntax;
50237
 
class ExtGnu;
 
58817
class WinAsm;
 
58818
class WinDeclSpecs;
 
58819
class WinMemberExplSpec;
 
58820
class WinTypeKeywords;
 
58821
class WinFriend;
50238
58822
class ExtAC;
50239
58823
class ExtACBuilderCoupling;
50240
58824
class ExtACSyntaxCoupling;
50241
58825
class ExtACTree;
50242
58826
class ExtACKeywords;
50243
 
class WinAsm;
50244
 
class WinDeclSpecs;
50245
 
class WinMemberExplSpec;
50246
 
class WinTypeKeywords;
 
58827
class ExtGnu;
50247
58828
class PragmaOnceUnitState;
50248
58829
class PragmaOnce;
50249
 
class CCExprResolve;
50250
 
class CExprResolve;
 
58830
class CMatchSyntax;
50251
58831
namespace Puma {
50252
58832
 
50253
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58833
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50254
58834
class CT_DeclList : public CT_List {
50255
 
#line 50256 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58835
#line 58836 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
58836
  friend class ::CCExprResolve;
 
58837
  friend class ::CExprResolve;
50256
58838
  friend class ::WinIfExists;
50257
58839
  friend class ::WinImportHandler;
50258
58840
  friend class ::WinMacros;
50259
 
  friend class ::CMatchSyntax;
50260
 
  friend class ::ExtGnu;
 
58841
  friend class ::WinAsm;
 
58842
  friend class ::WinDeclSpecs;
 
58843
  friend class ::WinMemberExplSpec;
 
58844
  friend class ::WinTypeKeywords;
 
58845
  friend class ::WinFriend;
50261
58846
  friend class ::ExtAC;
50262
58847
  friend class ::ExtACBuilderCoupling;
50263
58848
  friend class ::ExtACSyntaxCoupling;
50264
58849
  friend class ::ExtACTree;
50265
58850
  friend class ::ExtACKeywords;
50266
 
  friend class ::WinAsm;
50267
 
  friend class ::WinDeclSpecs;
50268
 
  friend class ::WinMemberExplSpec;
50269
 
  friend class ::WinTypeKeywords;
 
58851
  friend class ::ExtGnu;
50270
58852
  friend class ::PragmaOnceUnitState;
50271
58853
  friend class ::PragmaOnce;
50272
 
  friend class ::CCExprResolve;
50273
 
  friend class ::CExprResolve;
 
58854
  friend class ::CMatchSyntax;
50274
58855
 
50275
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58856
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50276
58857
 
50277
58858
public:
 
58859
  /** Constructor. 
 
58860
   *  \param size The initial size of the list.
 
58861
   *  \param incr The initial increment count of the list. */
50278
58862
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
58863
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50279
58864
  static const char *NodeId ();
 
58865
  /** Get the name of the node. Can be compared with NodeId(). */
50280
58866
  const char *NodeName () const { return NodeId (); }
 
58867
  /** Set the linkage specifiers to each declaration in the list.
 
58868
   *  \param l The linkage specifiers node. */
50281
58869
  void Linkage (CT_LinkageSpec *l);
50282
58870
};
50283
58871
 
 
58872
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
58873
 *  Tree node representing a sequence of declaration specifiers. */
50284
58874
 
50285
 
#line 50286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58875
#line 58876 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50286
58876
} // closed Puma
 
58877
class CCExprResolve;
 
58878
class CExprResolve;
50287
58879
class WinIfExists;
50288
58880
class WinImportHandler;
50289
58881
class WinMacros;
50290
 
class CMatchSyntax;
50291
 
class ExtGnu;
 
58882
class WinAsm;
 
58883
class WinDeclSpecs;
 
58884
class WinMemberExplSpec;
 
58885
class WinTypeKeywords;
 
58886
class WinFriend;
50292
58887
class ExtAC;
50293
58888
class ExtACBuilderCoupling;
50294
58889
class ExtACSyntaxCoupling;
50295
58890
class ExtACTree;
50296
58891
class ExtACKeywords;
50297
 
class WinAsm;
50298
 
class WinDeclSpecs;
50299
 
class WinMemberExplSpec;
50300
 
class WinTypeKeywords;
 
58892
class ExtGnu;
50301
58893
class PragmaOnceUnitState;
50302
58894
class PragmaOnce;
50303
 
class CCExprResolve;
50304
 
class CExprResolve;
 
58895
class CMatchSyntax;
50305
58896
namespace Puma {
50306
58897
 
50307
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58898
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50308
58899
class CT_DeclSpecSeq : public CT_List {
50309
 
#line 50310 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58900
#line 58901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
58901
  friend class ::CCExprResolve;
 
58902
  friend class ::CExprResolve;
50310
58903
  friend class ::WinIfExists;
50311
58904
  friend class ::WinImportHandler;
50312
58905
  friend class ::WinMacros;
50313
 
  friend class ::CMatchSyntax;
50314
 
  friend class ::ExtGnu;
 
58906
  friend class ::WinAsm;
 
58907
  friend class ::WinDeclSpecs;
 
58908
  friend class ::WinMemberExplSpec;
 
58909
  friend class ::WinTypeKeywords;
 
58910
  friend class ::WinFriend;
50315
58911
  friend class ::ExtAC;
50316
58912
  friend class ::ExtACBuilderCoupling;
50317
58913
  friend class ::ExtACSyntaxCoupling;
50318
58914
  friend class ::ExtACTree;
50319
58915
  friend class ::ExtACKeywords;
50320
 
  friend class ::WinAsm;
50321
 
  friend class ::WinDeclSpecs;
50322
 
  friend class ::WinMemberExplSpec;
50323
 
  friend class ::WinTypeKeywords;
 
58916
  friend class ::ExtGnu;
50324
58917
  friend class ::PragmaOnceUnitState;
50325
58918
  friend class ::PragmaOnce;
50326
 
  friend class ::CCExprResolve;
50327
 
  friend class ::CExprResolve;
 
58919
  friend class ::CMatchSyntax;
50328
58920
 
50329
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58921
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50330
58922
 
50331
58923
public:
 
58924
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50332
58925
  static const char *NodeId ();
 
58926
  /** Get the name of the node. Can be compared with NodeId(). */
50333
58927
  const char *NodeName () const { return NodeId (); }
50334
58928
};
50335
58929
 
 
58930
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
58931
 *  Tree node representing a compound statement. */
50336
58932
 
50337
 
#line 50338 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58933
#line 58934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50338
58934
} // closed Puma
 
58935
class CCExprResolve;
 
58936
class CExprResolve;
50339
58937
class WinIfExists;
50340
58938
class WinImportHandler;
50341
58939
class WinMacros;
50342
 
class CMatchSyntax;
50343
 
class ExtGnu;
 
58940
class WinAsm;
 
58941
class WinDeclSpecs;
 
58942
class WinMemberExplSpec;
 
58943
class WinTypeKeywords;
 
58944
class WinFriend;
50344
58945
class ExtAC;
50345
58946
class ExtACBuilderCoupling;
50346
58947
class ExtACSyntaxCoupling;
50347
58948
class ExtACTree;
50348
58949
class ExtACKeywords;
50349
 
class WinAsm;
50350
 
class WinDeclSpecs;
50351
 
class WinMemberExplSpec;
50352
 
class WinTypeKeywords;
 
58950
class ExtGnu;
50353
58951
class PragmaOnceUnitState;
50354
58952
class PragmaOnce;
50355
 
class CCExprResolve;
50356
 
class CExprResolve;
 
58953
class CMatchSyntax;
50357
58954
namespace Puma {
50358
58955
 
50359
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58956
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50360
58957
class CT_CmpdStmt : public CT_List, public CSemScope {
50361
 
#line 50362 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58958
#line 58959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
58959
  friend class ::CCExprResolve;
 
58960
  friend class ::CExprResolve;
50362
58961
  friend class ::WinIfExists;
50363
58962
  friend class ::WinImportHandler;
50364
58963
  friend class ::WinMacros;
50365
 
  friend class ::CMatchSyntax;
50366
 
  friend class ::ExtGnu;
 
58964
  friend class ::WinAsm;
 
58965
  friend class ::WinDeclSpecs;
 
58966
  friend class ::WinMemberExplSpec;
 
58967
  friend class ::WinTypeKeywords;
 
58968
  friend class ::WinFriend;
50367
58969
  friend class ::ExtAC;
50368
58970
  friend class ::ExtACBuilderCoupling;
50369
58971
  friend class ::ExtACSyntaxCoupling;
50370
58972
  friend class ::ExtACTree;
50371
58973
  friend class ::ExtACKeywords;
50372
 
  friend class ::WinAsm;
50373
 
  friend class ::WinDeclSpecs;
50374
 
  friend class ::WinMemberExplSpec;
50375
 
  friend class ::WinTypeKeywords;
 
58974
  friend class ::ExtGnu;
50376
58975
  friend class ::PragmaOnceUnitState;
50377
58976
  friend class ::PragmaOnce;
50378
 
  friend class ::CCExprResolve;
50379
 
  friend class ::CExprResolve;
 
58977
  friend class ::CMatchSyntax;
50380
58978
 
50381
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
58979
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50382
58980
 
50383
58981
public:
 
58982
  /* Constructor. */
50384
58983
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
58984
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50385
58985
  static const char *NodeId ();
 
58986
  /** Get the name of the node. Can be compared with NodeId(). */
50386
58987
  const char *NodeName () const { return NodeId (); }
 
58988
  /** Get the local scope of the compound statement. */
 
58989
  CSemScope *SemScope () const { return (CSemScope*)this; }
50387
58990
};
50388
58991
 
 
58992
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
58993
 *  Tree node representing an exception handler sequence. */
50389
58994
 
50390
 
#line 50391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
58995
#line 58996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50391
58996
} // closed Puma
 
58997
class CCExprResolve;
 
58998
class CExprResolve;
50392
58999
class WinIfExists;
50393
59000
class WinImportHandler;
50394
59001
class WinMacros;
50395
 
class CMatchSyntax;
50396
 
class ExtGnu;
 
59002
class WinAsm;
 
59003
class WinDeclSpecs;
 
59004
class WinMemberExplSpec;
 
59005
class WinTypeKeywords;
 
59006
class WinFriend;
50397
59007
class ExtAC;
50398
59008
class ExtACBuilderCoupling;
50399
59009
class ExtACSyntaxCoupling;
50400
59010
class ExtACTree;
50401
59011
class ExtACKeywords;
50402
 
class WinAsm;
50403
 
class WinDeclSpecs;
50404
 
class WinMemberExplSpec;
50405
 
class WinTypeKeywords;
 
59012
class ExtGnu;
50406
59013
class PragmaOnceUnitState;
50407
59014
class PragmaOnce;
50408
 
class CCExprResolve;
50409
 
class CExprResolve;
 
59015
class CMatchSyntax;
50410
59016
namespace Puma {
50411
59017
 
50412
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59018
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50413
59019
class CT_HandlerSeq : public CT_List {
50414
 
#line 50415 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59020
#line 59021 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59021
  friend class ::CCExprResolve;
 
59022
  friend class ::CExprResolve;
50415
59023
  friend class ::WinIfExists;
50416
59024
  friend class ::WinImportHandler;
50417
59025
  friend class ::WinMacros;
50418
 
  friend class ::CMatchSyntax;
50419
 
  friend class ::ExtGnu;
 
59026
  friend class ::WinAsm;
 
59027
  friend class ::WinDeclSpecs;
 
59028
  friend class ::WinMemberExplSpec;
 
59029
  friend class ::WinTypeKeywords;
 
59030
  friend class ::WinFriend;
50420
59031
  friend class ::ExtAC;
50421
59032
  friend class ::ExtACBuilderCoupling;
50422
59033
  friend class ::ExtACSyntaxCoupling;
50423
59034
  friend class ::ExtACTree;
50424
59035
  friend class ::ExtACKeywords;
50425
 
  friend class ::WinAsm;
50426
 
  friend class ::WinDeclSpecs;
50427
 
  friend class ::WinMemberExplSpec;
50428
 
  friend class ::WinTypeKeywords;
 
59036
  friend class ::ExtGnu;
50429
59037
  friend class ::PragmaOnceUnitState;
50430
59038
  friend class ::PragmaOnce;
50431
 
  friend class ::CCExprResolve;
50432
 
  friend class ::CExprResolve;
 
59039
  friend class ::CMatchSyntax;
50433
59040
 
50434
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59041
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50435
59042
 
50436
59043
public:
 
59044
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50437
59045
  static const char *NodeId ();
 
59046
  /** Get the name of the node. Can be compared with NodeId(). */
50438
59047
  const char *NodeName () const { return NodeId (); }
50439
59048
};
50440
59049
 
 
59050
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
59051
 *  Tree node representing a template parameter list. */
50441
59052
 
50442
 
#line 50443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59053
#line 59054 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50443
59054
} // closed Puma
 
59055
class CCExprResolve;
 
59056
class CExprResolve;
50444
59057
class WinIfExists;
50445
59058
class WinImportHandler;
50446
59059
class WinMacros;
50447
 
class CMatchSyntax;
50448
 
class ExtGnu;
 
59060
class WinAsm;
 
59061
class WinDeclSpecs;
 
59062
class WinMemberExplSpec;
 
59063
class WinTypeKeywords;
 
59064
class WinFriend;
50449
59065
class ExtAC;
50450
59066
class ExtACBuilderCoupling;
50451
59067
class ExtACSyntaxCoupling;
50452
59068
class ExtACTree;
50453
59069
class ExtACKeywords;
50454
 
class WinAsm;
50455
 
class WinDeclSpecs;
50456
 
class WinMemberExplSpec;
50457
 
class WinTypeKeywords;
 
59070
class ExtGnu;
50458
59071
class PragmaOnceUnitState;
50459
59072
class PragmaOnce;
50460
 
class CCExprResolve;
50461
 
class CExprResolve;
 
59073
class CMatchSyntax;
50462
59074
namespace Puma {
50463
59075
 
50464
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59076
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50465
59077
class CT_TemplateParamList : public CT_List, public CSemScope {
50466
 
#line 50467 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59078
#line 59079 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59079
  friend class ::CCExprResolve;
 
59080
  friend class ::CExprResolve;
50467
59081
  friend class ::WinIfExists;
50468
59082
  friend class ::WinImportHandler;
50469
59083
  friend class ::WinMacros;
50470
 
  friend class ::CMatchSyntax;
50471
 
  friend class ::ExtGnu;
 
59084
  friend class ::WinAsm;
 
59085
  friend class ::WinDeclSpecs;
 
59086
  friend class ::WinMemberExplSpec;
 
59087
  friend class ::WinTypeKeywords;
 
59088
  friend class ::WinFriend;
50472
59089
  friend class ::ExtAC;
50473
59090
  friend class ::ExtACBuilderCoupling;
50474
59091
  friend class ::ExtACSyntaxCoupling;
50475
59092
  friend class ::ExtACTree;
50476
59093
  friend class ::ExtACKeywords;
50477
 
  friend class ::WinAsm;
50478
 
  friend class ::WinDeclSpecs;
50479
 
  friend class ::WinMemberExplSpec;
50480
 
  friend class ::WinTypeKeywords;
 
59094
  friend class ::ExtGnu;
50481
59095
  friend class ::PragmaOnceUnitState;
50482
59096
  friend class ::PragmaOnce;
50483
 
  friend class ::CCExprResolve;
50484
 
  friend class ::CExprResolve;
 
59097
  friend class ::CMatchSyntax;
50485
59098
 
50486
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59099
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50487
59100
 
50488
59101
public:
50489
59102
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
59103
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50490
59104
  static const char *NodeId ();
 
59105
  /** Get the name of the node. Can be compared with NodeId(). */
50491
59106
  const char *NodeName () const { return NodeId (); }
 
59107
  /** Get the scope of the template parameter list. */
 
59108
  CSemScope *SemScope () const { return (CSemScope*)this; }
50492
59109
};
50493
59110
 
 
59111
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
59112
 *  Tree node representing a template argument list. */
50494
59113
 
50495
 
#line 50496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59114
#line 59115 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50496
59115
} // closed Puma
 
59116
class CCExprResolve;
 
59117
class CExprResolve;
50497
59118
class WinIfExists;
50498
59119
class WinImportHandler;
50499
59120
class WinMacros;
50500
 
class CMatchSyntax;
50501
 
class ExtGnu;
 
59121
class WinAsm;
 
59122
class WinDeclSpecs;
 
59123
class WinMemberExplSpec;
 
59124
class WinTypeKeywords;
 
59125
class WinFriend;
50502
59126
class ExtAC;
50503
59127
class ExtACBuilderCoupling;
50504
59128
class ExtACSyntaxCoupling;
50505
59129
class ExtACTree;
50506
59130
class ExtACKeywords;
50507
 
class WinAsm;
50508
 
class WinDeclSpecs;
50509
 
class WinMemberExplSpec;
50510
 
class WinTypeKeywords;
 
59131
class ExtGnu;
50511
59132
class PragmaOnceUnitState;
50512
59133
class PragmaOnce;
50513
 
class CCExprResolve;
50514
 
class CExprResolve;
 
59134
class CMatchSyntax;
50515
59135
namespace Puma {
50516
59136
 
50517
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59137
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50518
59138
class CT_TemplateArgList : public CT_List {
50519
 
#line 50520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59139
#line 59140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59140
  friend class ::CCExprResolve;
 
59141
  friend class ::CExprResolve;
50520
59142
  friend class ::WinIfExists;
50521
59143
  friend class ::WinImportHandler;
50522
59144
  friend class ::WinMacros;
50523
 
  friend class ::CMatchSyntax;
50524
 
  friend class ::ExtGnu;
 
59145
  friend class ::WinAsm;
 
59146
  friend class ::WinDeclSpecs;
 
59147
  friend class ::WinMemberExplSpec;
 
59148
  friend class ::WinTypeKeywords;
 
59149
  friend class ::WinFriend;
50525
59150
  friend class ::ExtAC;
50526
59151
  friend class ::ExtACBuilderCoupling;
50527
59152
  friend class ::ExtACSyntaxCoupling;
50528
59153
  friend class ::ExtACTree;
50529
59154
  friend class ::ExtACKeywords;
50530
 
  friend class ::WinAsm;
50531
 
  friend class ::WinDeclSpecs;
50532
 
  friend class ::WinMemberExplSpec;
50533
 
  friend class ::WinTypeKeywords;
 
59155
  friend class ::ExtGnu;
50534
59156
  friend class ::PragmaOnceUnitState;
50535
59157
  friend class ::PragmaOnce;
50536
 
  friend class ::CCExprResolve;
50537
 
  friend class ::CExprResolve;
 
59158
  friend class ::CMatchSyntax;
50538
59159
 
50539
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59160
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50540
59161
 
50541
59162
public:
 
59163
  /** Constructor. */
50542
59164
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
59165
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50543
59166
  static const char *NodeId ();
 
59167
  /** Get the name of the node. Can be compared with NodeId(). */
50544
59168
  const char *NodeName () const { return NodeId (); }
50545
59169
};
50546
59170
 
50550
59174
/*                                                                           */
50551
59175
/*****************************************************************************/
50552
59176
 
 
59177
/** \class CT_Expression CTree.h Puma/CTree.h
 
59178
 *  Base class for all expression tree nodes. */
50553
59179
 
50554
 
#line 50555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59180
#line 59181 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50555
59181
} // closed Puma
 
59182
class CCExprResolve;
 
59183
class CExprResolve;
50556
59184
class WinIfExists;
50557
59185
class WinImportHandler;
50558
59186
class WinMacros;
50559
 
class CMatchSyntax;
50560
 
class ExtGnu;
 
59187
class WinAsm;
 
59188
class WinDeclSpecs;
 
59189
class WinMemberExplSpec;
 
59190
class WinTypeKeywords;
 
59191
class WinFriend;
50561
59192
class ExtAC;
50562
59193
class ExtACBuilderCoupling;
50563
59194
class ExtACSyntaxCoupling;
50564
59195
class ExtACTree;
50565
59196
class ExtACKeywords;
50566
 
class WinAsm;
50567
 
class WinDeclSpecs;
50568
 
class WinMemberExplSpec;
50569
 
class WinTypeKeywords;
 
59197
class ExtGnu;
50570
59198
class PragmaOnceUnitState;
50571
59199
class PragmaOnce;
50572
 
class CCExprResolve;
50573
 
class CExprResolve;
50574
 
namespace Puma {
50575
 
 
50576
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59200
class CMatchSyntax;
 
59201
namespace Puma {
 
59202
 
 
59203
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59204
 
 
59205
#line 59206 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59206
} // closed Puma
 
59207
 
 
59208
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59209
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59210
#include "CCExprResolveH.ah"
 
59211
#endif
 
59212
namespace Puma {
 
59213
 
 
59214
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59215
 
 
59216
#line 59217 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59217
} // closed Puma
 
59218
 
 
59219
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59220
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59221
#include "CExprResolveH.ah"
 
59222
#endif
 
59223
namespace Puma {
 
59224
 
 
59225
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50577
59226
class CT_Expression : public CTree, public CSemValue {
50578
 
#line 50579 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59227
#line 59228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59228
  friend class ::CCExprResolve;
 
59229
  friend class ::CExprResolve;
50579
59230
  friend class ::WinIfExists;
50580
59231
  friend class ::WinImportHandler;
50581
59232
  friend class ::WinMacros;
50582
 
  friend class ::CMatchSyntax;
50583
 
  friend class ::ExtGnu;
 
59233
  friend class ::WinAsm;
 
59234
  friend class ::WinDeclSpecs;
 
59235
  friend class ::WinMemberExplSpec;
 
59236
  friend class ::WinTypeKeywords;
 
59237
  friend class ::WinFriend;
50584
59238
  friend class ::ExtAC;
50585
59239
  friend class ::ExtACBuilderCoupling;
50586
59240
  friend class ::ExtACSyntaxCoupling;
50587
59241
  friend class ::ExtACTree;
50588
59242
  friend class ::ExtACKeywords;
50589
 
  friend class ::WinAsm;
50590
 
  friend class ::WinDeclSpecs;
50591
 
  friend class ::WinMemberExplSpec;
50592
 
  friend class ::WinTypeKeywords;
 
59243
  friend class ::ExtGnu;
50593
59244
  friend class ::PragmaOnceUnitState;
50594
59245
  friend class ::PragmaOnce;
50595
 
  friend class ::CCExprResolve;
50596
 
  friend class ::CExprResolve;
 
59246
  friend class ::CMatchSyntax;
50597
59247
 
50598
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59248
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50599
59249
 
50600
59250
protected:
 
59251
  /** Constructor. */
50601
59252
  CT_Expression () {}
50602
59253
 
50603
59254
public:
 
59255
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50604
59256
  static const char *NodeId ();
 
59257
  /** Get the name of the node. Can be compared with NodeId(). */
50605
59258
  const char *NodeName () const { return NodeId (); }
 
59259
  /** Get the type of the expression.
 
59260
   *  \return The type information object or NULL. */
50606
59261
  CTypeInfo *Type () const { return type; }
 
59262
  /** Get the value of the expression.
 
59263
   *  \return The value object or NULL. */
50607
59264
  CExprValue *Value () const { return value; }
 
59265
  /** Get the semantic value information of the expression.
 
59266
   *  \return The value object or NULL. */
50608
59267
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
59268
  /** Get this. */
 
59269
  virtual CT_Expression *IsExpression () { return this; }
50609
59270
   private:
50610
59271
  typedef CT_Expression CCExprResolveExpr;
50611
59272
 
50612
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59273
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
50613
59274
 public :
50614
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
59275
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
50615
59276
  typedef CT_Expression CExprResolveExpr;
50616
59277
 
50617
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
50618
 
 public :
50619
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
50620
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50621
 
};
50622
 
 
50623
 
 
50624
 
#line 50625 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
50625
 
} // closed Puma
50626
 
class WinIfExists;
50627
 
class WinImportHandler;
50628
 
class WinMacros;
50629
 
class CMatchSyntax;
50630
 
class ExtGnu;
50631
 
class ExtAC;
50632
 
class ExtACBuilderCoupling;
50633
 
class ExtACSyntaxCoupling;
50634
 
class ExtACTree;
50635
 
class ExtACKeywords;
50636
 
class WinAsm;
50637
 
class WinDeclSpecs;
50638
 
class WinMemberExplSpec;
50639
 
class WinTypeKeywords;
50640
 
class PragmaOnceUnitState;
50641
 
class PragmaOnce;
50642
 
class CCExprResolve;
50643
 
class CExprResolve;
50644
 
namespace Puma {
50645
 
 
50646
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59278
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59279
 public :
 
59280
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59281
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59282
};
 
59283
 
 
59284
/** \class CT_Call CTree.h Puma/CTree.h
 
59285
 *  Tree node representing explicit or implicit function calls 
 
59286
 *  including built-in or user-defined functions and overloaded
 
59287
 *  operators. */
 
59288
 
 
59289
#line 59290 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59290
} // closed Puma
 
59291
class CCExprResolve;
 
59292
class CExprResolve;
 
59293
class WinIfExists;
 
59294
class WinImportHandler;
 
59295
class WinMacros;
 
59296
class WinAsm;
 
59297
class WinDeclSpecs;
 
59298
class WinMemberExplSpec;
 
59299
class WinTypeKeywords;
 
59300
class WinFriend;
 
59301
class ExtAC;
 
59302
class ExtACBuilderCoupling;
 
59303
class ExtACSyntaxCoupling;
 
59304
class ExtACTree;
 
59305
class ExtACKeywords;
 
59306
class ExtGnu;
 
59307
class PragmaOnceUnitState;
 
59308
class PragmaOnce;
 
59309
class CMatchSyntax;
 
59310
namespace Puma {
 
59311
 
 
59312
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59313
 
 
59314
#line 59315 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59315
} // closed Puma
 
59316
 
 
59317
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59318
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59319
#include "CCExprResolveH.ah"
 
59320
#endif
 
59321
namespace Puma {
 
59322
 
 
59323
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59324
 
 
59325
#line 59326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59326
} // closed Puma
 
59327
 
 
59328
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59329
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59330
#include "CExprResolveH.ah"
 
59331
#endif
 
59332
namespace Puma {
 
59333
 
 
59334
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59335
class CT_Call : public CT_Expression, public CSemObject {
 
59336
#line 59337 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59337
  friend class ::CCExprResolve;
 
59338
  friend class ::CExprResolve;
 
59339
  friend class ::WinIfExists;
 
59340
  friend class ::WinImportHandler;
 
59341
  friend class ::WinMacros;
 
59342
  friend class ::WinAsm;
 
59343
  friend class ::WinDeclSpecs;
 
59344
  friend class ::WinMemberExplSpec;
 
59345
  friend class ::WinTypeKeywords;
 
59346
  friend class ::WinFriend;
 
59347
  friend class ::ExtAC;
 
59348
  friend class ::ExtACBuilderCoupling;
 
59349
  friend class ::ExtACSyntaxCoupling;
 
59350
  friend class ::ExtACTree;
 
59351
  friend class ::ExtACKeywords;
 
59352
  friend class ::ExtGnu;
 
59353
  friend class ::PragmaOnceUnitState;
 
59354
  friend class ::PragmaOnce;
 
59355
  friend class ::CMatchSyntax;
 
59356
 
 
59357
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59358
 
 
59359
protected:
 
59360
  /** Constructor. */
 
59361
  CT_Call () {}
 
59362
  
 
59363
public:
 
59364
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
59365
  static const char *NodeId ();
 
59366
  /** Get the name of the node. Can be compared with NodeId(). */
 
59367
  const char *NodeName () const { return NodeId (); }
 
59368
  /** Get the semantic information of the call.
 
59369
   *  \return The semantic information or NULL. */
 
59370
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
59371
  /** Get this. */
 
59372
  CT_Call *IsCall () { return this; }
 
59373
   private:
 
59374
  typedef CT_Call CCExprResolveExpr;
 
59375
 
 
59376
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59377
 public :
 
59378
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
59379
  typedef CT_Call CExprResolveExpr;
 
59380
 
 
59381
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59382
 public :
 
59383
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59384
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59385
};
 
59386
 
 
59387
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
59388
 *  Tree node representing implicit function calls detected by
 
59389
 *  the semantic analysis. */
 
59390
 
 
59391
#line 59392 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59392
} // closed Puma
 
59393
class CCExprResolve;
 
59394
class CExprResolve;
 
59395
class WinIfExists;
 
59396
class WinImportHandler;
 
59397
class WinMacros;
 
59398
class WinAsm;
 
59399
class WinDeclSpecs;
 
59400
class WinMemberExplSpec;
 
59401
class WinTypeKeywords;
 
59402
class WinFriend;
 
59403
class ExtAC;
 
59404
class ExtACBuilderCoupling;
 
59405
class ExtACSyntaxCoupling;
 
59406
class ExtACTree;
 
59407
class ExtACKeywords;
 
59408
class ExtGnu;
 
59409
class PragmaOnceUnitState;
 
59410
class PragmaOnce;
 
59411
class CMatchSyntax;
 
59412
namespace Puma {
 
59413
 
 
59414
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59415
 
 
59416
#line 59417 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59417
} // closed Puma
 
59418
 
 
59419
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59420
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59421
#include "CCExprResolveH.ah"
 
59422
#endif
 
59423
namespace Puma {
 
59424
 
 
59425
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59426
 
 
59427
#line 59428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59428
} // closed Puma
 
59429
 
 
59430
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59431
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59432
#include "CExprResolveH.ah"
 
59433
#endif
 
59434
namespace Puma {
 
59435
 
 
59436
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59437
class CT_ImplicitCall : public CT_Call {
 
59438
#line 59439 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59439
  friend class ::CCExprResolve;
 
59440
  friend class ::CExprResolve;
 
59441
  friend class ::WinIfExists;
 
59442
  friend class ::WinImportHandler;
 
59443
  friend class ::WinMacros;
 
59444
  friend class ::WinAsm;
 
59445
  friend class ::WinDeclSpecs;
 
59446
  friend class ::WinMemberExplSpec;
 
59447
  friend class ::WinTypeKeywords;
 
59448
  friend class ::WinFriend;
 
59449
  friend class ::ExtAC;
 
59450
  friend class ::ExtACBuilderCoupling;
 
59451
  friend class ::ExtACSyntaxCoupling;
 
59452
  friend class ::ExtACTree;
 
59453
  friend class ::ExtACKeywords;
 
59454
  friend class ::ExtGnu;
 
59455
  friend class ::PragmaOnceUnitState;
 
59456
  friend class ::PragmaOnce;
 
59457
  friend class ::CMatchSyntax;
 
59458
 
 
59459
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59460
 
 
59461
  CTree *_arg;
 
59462
 
 
59463
public:
 
59464
  /** Constructor.
 
59465
   *  \param arg The call argument. */
 
59466
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
59467
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
59468
  static const char *NodeId ();
 
59469
  /** Get the name of the node. Can be compared with NodeId(). */
 
59470
  const char *NodeName () const { return NodeId (); }
 
59471
  /** Get the number of sons. */
 
59472
  int Sons () const { return 1; }
 
59473
  /** Get the n-th son.
 
59474
   *  \param n The index of the son.
 
59475
   *  \return The n-th son or NULL. */
 
59476
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
59477
  /** Replace a son.
 
59478
   *  \param old_son The son to replace.
 
59479
   *  \param new_son The new son. */
 
59480
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
59481
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
59482
   private:
 
59483
  typedef CT_ImplicitCall CCExprResolveExpr;
 
59484
 
 
59485
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59486
 public :
 
59487
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
59488
  typedef CT_ImplicitCall CExprResolveExpr;
 
59489
 
 
59490
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59491
 public :
 
59492
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59493
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59494
};
 
59495
 
 
59496
/** \class CT_String CTree.h Puma/CTree.h
 
59497
 *  Tree node representing a string literal. */
 
59498
 
 
59499
#line 59500 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59500
} // closed Puma
 
59501
class CCExprResolve;
 
59502
class CExprResolve;
 
59503
class WinIfExists;
 
59504
class WinImportHandler;
 
59505
class WinMacros;
 
59506
class WinAsm;
 
59507
class WinDeclSpecs;
 
59508
class WinMemberExplSpec;
 
59509
class WinTypeKeywords;
 
59510
class WinFriend;
 
59511
class ExtAC;
 
59512
class ExtACBuilderCoupling;
 
59513
class ExtACSyntaxCoupling;
 
59514
class ExtACTree;
 
59515
class ExtACKeywords;
 
59516
class ExtGnu;
 
59517
class PragmaOnceUnitState;
 
59518
class PragmaOnce;
 
59519
class CMatchSyntax;
 
59520
namespace Puma {
 
59521
 
 
59522
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59523
 
 
59524
#line 59525 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59525
} // closed Puma
 
59526
 
 
59527
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59528
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59529
#include "CCExprResolveH.ah"
 
59530
#endif
 
59531
namespace Puma {
 
59532
 
 
59533
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59534
 
 
59535
#line 59536 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59536
} // closed Puma
 
59537
 
 
59538
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59539
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59540
#include "CExprResolveH.ah"
 
59541
#endif
 
59542
namespace Puma {
 
59543
 
 
59544
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50647
59545
class CT_String : public CT_List, public CSemValue {
50648
 
#line 50649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59546
#line 59547 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59547
  friend class ::CCExprResolve;
 
59548
  friend class ::CExprResolve;
50649
59549
  friend class ::WinIfExists;
50650
59550
  friend class ::WinImportHandler;
50651
59551
  friend class ::WinMacros;
50652
 
  friend class ::CMatchSyntax;
50653
 
  friend class ::ExtGnu;
 
59552
  friend class ::WinAsm;
 
59553
  friend class ::WinDeclSpecs;
 
59554
  friend class ::WinMemberExplSpec;
 
59555
  friend class ::WinTypeKeywords;
 
59556
  friend class ::WinFriend;
50654
59557
  friend class ::ExtAC;
50655
59558
  friend class ::ExtACBuilderCoupling;
50656
59559
  friend class ::ExtACSyntaxCoupling;
50657
59560
  friend class ::ExtACTree;
50658
59561
  friend class ::ExtACKeywords;
50659
 
  friend class ::WinAsm;
50660
 
  friend class ::WinDeclSpecs;
50661
 
  friend class ::WinMemberExplSpec;
50662
 
  friend class ::WinTypeKeywords;
 
59562
  friend class ::ExtGnu;
50663
59563
  friend class ::PragmaOnceUnitState;
50664
59564
  friend class ::PragmaOnce;
50665
 
  friend class ::CCExprResolve;
50666
 
  friend class ::CExprResolve;
 
59565
  friend class ::CMatchSyntax;
50667
59566
 
50668
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59567
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50669
59568
 
50670
59569
public:
 
59570
  /** Constructor. 
 
59571
   *  \param size The number of sub-strings. */
50671
59572
  CT_String (int size) : CT_List (size, 1) {}
 
59573
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50672
59574
  static const char *NodeId ();
 
59575
  /** Get the name of the node. Can be compared with NodeId(). */
50673
59576
  const char *NodeName () const { return NodeId (); }
50674
59577
 
 
59578
  /** Get the type of the string. 
 
59579
   *  \return The type or NULL. */
50675
59580
  CTypeInfo *Type () const { return type; }
 
59581
  /** Get the string value.
 
59582
   *  \return The value or NULL. */
50676
59583
  CExprValue *Value () const { return value; }
 
59584
  /** Get the semantic value info object.
 
59585
   *  \return The semantic value object or NULL. */
50677
59586
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
59587
  /** Get this. */
 
59588
  virtual CT_String *IsString () { return this; }
50678
59589
   private:
50679
59590
  typedef CT_String CCExprResolveExpr;
50680
59591
 
50681
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59592
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
50682
59593
 public :
50683
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
59594
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
50684
59595
  typedef CT_String CExprResolveExpr;
50685
59596
 
50686
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59597
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
50687
59598
 public :
50688
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
50689
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59599
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59600
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50690
59601
};
50691
59602
 
 
59603
/** \class CT_WideString CTree.h Puma/CTree.h
 
59604
 *  Tree node representing a wide string literal. */
50692
59605
 
50693
 
#line 50694 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59606
#line 59607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50694
59607
} // closed Puma
 
59608
class CCExprResolve;
 
59609
class CExprResolve;
50695
59610
class WinIfExists;
50696
59611
class WinImportHandler;
50697
59612
class WinMacros;
50698
 
class CMatchSyntax;
50699
 
class ExtGnu;
 
59613
class WinAsm;
 
59614
class WinDeclSpecs;
 
59615
class WinMemberExplSpec;
 
59616
class WinTypeKeywords;
 
59617
class WinFriend;
50700
59618
class ExtAC;
50701
59619
class ExtACBuilderCoupling;
50702
59620
class ExtACSyntaxCoupling;
50703
59621
class ExtACTree;
50704
59622
class ExtACKeywords;
50705
 
class WinAsm;
50706
 
class WinDeclSpecs;
50707
 
class WinMemberExplSpec;
50708
 
class WinTypeKeywords;
 
59623
class ExtGnu;
50709
59624
class PragmaOnceUnitState;
50710
59625
class PragmaOnce;
50711
 
class CCExprResolve;
50712
 
class CExprResolve;
50713
 
namespace Puma {
50714
 
 
50715
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59626
class CMatchSyntax;
 
59627
namespace Puma {
 
59628
 
 
59629
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59630
 
 
59631
#line 59632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59632
} // closed Puma
 
59633
 
 
59634
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59635
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59636
#include "CCExprResolveH.ah"
 
59637
#endif
 
59638
namespace Puma {
 
59639
 
 
59640
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59641
 
 
59642
#line 59643 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59643
} // closed Puma
 
59644
 
 
59645
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59646
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59647
#include "CExprResolveH.ah"
 
59648
#endif
 
59649
namespace Puma {
 
59650
 
 
59651
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50716
59652
class CT_WideString : public CT_String {
50717
 
#line 50718 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59653
#line 59654 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59654
  friend class ::CCExprResolve;
 
59655
  friend class ::CExprResolve;
50718
59656
  friend class ::WinIfExists;
50719
59657
  friend class ::WinImportHandler;
50720
59658
  friend class ::WinMacros;
50721
 
  friend class ::CMatchSyntax;
50722
 
  friend class ::ExtGnu;
 
59659
  friend class ::WinAsm;
 
59660
  friend class ::WinDeclSpecs;
 
59661
  friend class ::WinMemberExplSpec;
 
59662
  friend class ::WinTypeKeywords;
 
59663
  friend class ::WinFriend;
50723
59664
  friend class ::ExtAC;
50724
59665
  friend class ::ExtACBuilderCoupling;
50725
59666
  friend class ::ExtACSyntaxCoupling;
50726
59667
  friend class ::ExtACTree;
50727
59668
  friend class ::ExtACKeywords;
50728
 
  friend class ::WinAsm;
50729
 
  friend class ::WinDeclSpecs;
50730
 
  friend class ::WinMemberExplSpec;
50731
 
  friend class ::WinTypeKeywords;
 
59669
  friend class ::ExtGnu;
50732
59670
  friend class ::PragmaOnceUnitState;
50733
59671
  friend class ::PragmaOnce;
50734
 
  friend class ::CCExprResolve;
50735
 
  friend class ::CExprResolve;
 
59672
  friend class ::CMatchSyntax;
50736
59673
 
50737
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59674
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50738
59675
 
50739
59676
public:
 
59677
  /** Constructor.
 
59678
   *  \param size The number of sub-strings. */
50740
59679
  CT_WideString (int size) : CT_String (size) {}
 
59680
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50741
59681
  static const char *NodeId ();
 
59682
  /** Get the name of the node. Can be compared with NodeId(). */
50742
59683
  const char *NodeName () const { return NodeId (); }
50743
59684
   private:
50744
59685
  typedef CT_WideString CCExprResolveExpr;
50745
59686
 
50746
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59687
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
50747
59688
 public :
50748
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
59689
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
50749
59690
  typedef CT_WideString CExprResolveExpr;
50750
59691
 
50751
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59692
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
50752
59693
 public :
50753
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
50754
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59694
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59695
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50755
59696
};
50756
59697
 
 
59698
/** \class CT_Integer CTree.h Puma/CTree.h
 
59699
 *  Tree node representing an integer constant. */
50757
59700
 
50758
 
#line 50759 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59701
#line 59702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50759
59702
} // closed Puma
 
59703
class CCExprResolve;
 
59704
class CExprResolve;
50760
59705
class WinIfExists;
50761
59706
class WinImportHandler;
50762
59707
class WinMacros;
50763
 
class CMatchSyntax;
50764
 
class ExtGnu;
 
59708
class WinAsm;
 
59709
class WinDeclSpecs;
 
59710
class WinMemberExplSpec;
 
59711
class WinTypeKeywords;
 
59712
class WinFriend;
50765
59713
class ExtAC;
50766
59714
class ExtACBuilderCoupling;
50767
59715
class ExtACSyntaxCoupling;
50768
59716
class ExtACTree;
50769
59717
class ExtACKeywords;
50770
 
class WinAsm;
50771
 
class WinDeclSpecs;
50772
 
class WinMemberExplSpec;
50773
 
class WinTypeKeywords;
 
59718
class ExtGnu;
50774
59719
class PragmaOnceUnitState;
50775
59720
class PragmaOnce;
50776
 
class CCExprResolve;
50777
 
class CExprResolve;
50778
 
namespace Puma {
50779
 
 
50780
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59721
class CMatchSyntax;
 
59722
namespace Puma {
 
59723
 
 
59724
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59725
 
 
59726
#line 59727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59727
} // closed Puma
 
59728
 
 
59729
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59730
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59731
#include "CCExprResolveH.ah"
 
59732
#endif
 
59733
namespace Puma {
 
59734
 
 
59735
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59736
 
 
59737
#line 59738 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59738
} // closed Puma
 
59739
 
 
59740
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59741
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59742
#include "CExprResolveH.ah"
 
59743
#endif
 
59744
namespace Puma {
 
59745
 
 
59746
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50781
59747
class CT_Integer : public CT_Expression {
50782
 
#line 50783 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59748
#line 59749 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59749
  friend class ::CCExprResolve;
 
59750
  friend class ::CExprResolve;
50783
59751
  friend class ::WinIfExists;
50784
59752
  friend class ::WinImportHandler;
50785
59753
  friend class ::WinMacros;
50786
 
  friend class ::CMatchSyntax;
50787
 
  friend class ::ExtGnu;
 
59754
  friend class ::WinAsm;
 
59755
  friend class ::WinDeclSpecs;
 
59756
  friend class ::WinMemberExplSpec;
 
59757
  friend class ::WinTypeKeywords;
 
59758
  friend class ::WinFriend;
50788
59759
  friend class ::ExtAC;
50789
59760
  friend class ::ExtACBuilderCoupling;
50790
59761
  friend class ::ExtACSyntaxCoupling;
50791
59762
  friend class ::ExtACTree;
50792
59763
  friend class ::ExtACKeywords;
50793
 
  friend class ::WinAsm;
50794
 
  friend class ::WinDeclSpecs;
50795
 
  friend class ::WinMemberExplSpec;
50796
 
  friend class ::WinTypeKeywords;
 
59764
  friend class ::ExtGnu;
50797
59765
  friend class ::PragmaOnceUnitState;
50798
59766
  friend class ::PragmaOnce;
50799
 
  friend class ::CCExprResolve;
50800
 
  friend class ::CExprResolve;
 
59767
  friend class ::CMatchSyntax;
50801
59768
 
50802
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59769
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50803
59770
 
50804
59771
  CTree *_value;  // CT_Token
50805
59772
 
50806
59773
public:
50807
 
  CT_Integer (CTree *t) : _value (t) {}
 
59774
  /** Constructor.
 
59775
   *  \param token The token containing the integer value. */
 
59776
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
59777
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50808
59778
  static const char *NodeId ();
 
59779
  /** Get the name of the node. Can be compared with NodeId(). */
50809
59780
  const char *NodeName () const { return NodeId (); }
 
59781
  /** Get the number of sons. */
50810
59782
  int Sons () const { return _value ? 1 : 0; }
 
59783
  /** Get the n-th son.
 
59784
   *  \param n The index of the son.
 
59785
   *  \return The n-th son or NULL. */
50811
59786
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
59787
  /** Replace a son.
 
59788
   *  \param old_son The son to replace.
 
59789
   *  \param new_son The new son. */
50812
59790
  void ReplaceSon (CTree *old_son, CTree *new_son) 
50813
 
   { if (old_son == _value) _value = new_son; }
 
59791
   { CTree::ReplaceSon (_value, old_son, new_son); }
50814
59792
   private:
50815
59793
  typedef CT_Integer CCExprResolveExpr;
50816
59794
 
50817
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59795
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
50818
59796
 public :
50819
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
59797
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
50820
59798
  typedef CT_Integer CExprResolveExpr;
50821
59799
 
50822
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59800
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
50823
59801
 public :
50824
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
50825
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59802
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59803
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50826
59804
};
50827
59805
 
 
59806
/** \class CT_Character CTree.h Puma/CTree.h
 
59807
 *  Tree node representing a single character constant. */
50828
59808
 
50829
 
#line 50830 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59809
#line 59810 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50830
59810
} // closed Puma
 
59811
class CCExprResolve;
 
59812
class CExprResolve;
50831
59813
class WinIfExists;
50832
59814
class WinImportHandler;
50833
59815
class WinMacros;
50834
 
class CMatchSyntax;
50835
 
class ExtGnu;
 
59816
class WinAsm;
 
59817
class WinDeclSpecs;
 
59818
class WinMemberExplSpec;
 
59819
class WinTypeKeywords;
 
59820
class WinFriend;
50836
59821
class ExtAC;
50837
59822
class ExtACBuilderCoupling;
50838
59823
class ExtACSyntaxCoupling;
50839
59824
class ExtACTree;
50840
59825
class ExtACKeywords;
50841
 
class WinAsm;
50842
 
class WinDeclSpecs;
50843
 
class WinMemberExplSpec;
50844
 
class WinTypeKeywords;
 
59826
class ExtGnu;
50845
59827
class PragmaOnceUnitState;
50846
59828
class PragmaOnce;
50847
 
class CCExprResolve;
50848
 
class CExprResolve;
50849
 
namespace Puma {
50850
 
 
50851
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59829
class CMatchSyntax;
 
59830
namespace Puma {
 
59831
 
 
59832
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59833
 
 
59834
#line 59835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59835
} // closed Puma
 
59836
 
 
59837
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59838
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59839
#include "CCExprResolveH.ah"
 
59840
#endif
 
59841
namespace Puma {
 
59842
 
 
59843
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59844
 
 
59845
#line 59846 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59846
} // closed Puma
 
59847
 
 
59848
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59849
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59850
#include "CExprResolveH.ah"
 
59851
#endif
 
59852
namespace Puma {
 
59853
 
 
59854
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50852
59855
class CT_Character : public CT_Expression {
50853
 
#line 50854 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59856
#line 59857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59857
  friend class ::CCExprResolve;
 
59858
  friend class ::CExprResolve;
50854
59859
  friend class ::WinIfExists;
50855
59860
  friend class ::WinImportHandler;
50856
59861
  friend class ::WinMacros;
50857
 
  friend class ::CMatchSyntax;
50858
 
  friend class ::ExtGnu;
 
59862
  friend class ::WinAsm;
 
59863
  friend class ::WinDeclSpecs;
 
59864
  friend class ::WinMemberExplSpec;
 
59865
  friend class ::WinTypeKeywords;
 
59866
  friend class ::WinFriend;
50859
59867
  friend class ::ExtAC;
50860
59868
  friend class ::ExtACBuilderCoupling;
50861
59869
  friend class ::ExtACSyntaxCoupling;
50862
59870
  friend class ::ExtACTree;
50863
59871
  friend class ::ExtACKeywords;
50864
 
  friend class ::WinAsm;
50865
 
  friend class ::WinDeclSpecs;
50866
 
  friend class ::WinMemberExplSpec;
50867
 
  friend class ::WinTypeKeywords;
 
59872
  friend class ::ExtGnu;
50868
59873
  friend class ::PragmaOnceUnitState;
50869
59874
  friend class ::PragmaOnce;
50870
 
  friend class ::CCExprResolve;
50871
 
  friend class ::CExprResolve;
 
59875
  friend class ::CMatchSyntax;
50872
59876
 
50873
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59877
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50874
59878
 
50875
59879
  CTree *_value;  // CT_Token
50876
59880
 
50877
59881
public:
50878
 
  CT_Character (CTree *t) : _value (t) {}
 
59882
  /** Constructor.
 
59883
   *  \param token The token containing the character value. */
 
59884
  CT_Character (CTree *token) { AddSon (_value, token); }
 
59885
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50879
59886
  static const char *NodeId ();
 
59887
  /** Get the name of the node. Can be compared with NodeId(). */
50880
59888
  const char *NodeName () const { return NodeId (); }
 
59889
  /** Get the number of sons. */
50881
59890
  int Sons () const { return 1; }
 
59891
  /** Get the n-th son.
 
59892
   *  \param n The index of the son.
 
59893
   *  \return The n-th son or NULL. */
50882
59894
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
59895
  /** Replace a son.
 
59896
   *  \param old_son The son to replace.
 
59897
   *  \param new_son The new son. */
50883
59898
  void ReplaceSon (CTree *old_son, CTree *new_son) 
50884
 
   { if (old_son == _value) _value = new_son; }
 
59899
   { CTree::ReplaceSon (_value, old_son, new_son); }
50885
59900
   private:
50886
59901
  typedef CT_Character CCExprResolveExpr;
50887
59902
 
50888
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59903
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
50889
59904
 public :
50890
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
59905
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
50891
59906
  typedef CT_Character CExprResolveExpr;
50892
59907
 
50893
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
59908
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
50894
59909
 public :
50895
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
50896
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59910
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
59911
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50897
59912
};
50898
59913
 
 
59914
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
59915
 *  Tree node representing a wide character constant. */
50899
59916
 
50900
 
#line 50901 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59917
#line 59918 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50901
59918
} // closed Puma
 
59919
class CCExprResolve;
 
59920
class CExprResolve;
50902
59921
class WinIfExists;
50903
59922
class WinImportHandler;
50904
59923
class WinMacros;
50905
 
class CMatchSyntax;
50906
 
class ExtGnu;
 
59924
class WinAsm;
 
59925
class WinDeclSpecs;
 
59926
class WinMemberExplSpec;
 
59927
class WinTypeKeywords;
 
59928
class WinFriend;
50907
59929
class ExtAC;
50908
59930
class ExtACBuilderCoupling;
50909
59931
class ExtACSyntaxCoupling;
50910
59932
class ExtACTree;
50911
59933
class ExtACKeywords;
50912
 
class WinAsm;
50913
 
class WinDeclSpecs;
50914
 
class WinMemberExplSpec;
50915
 
class WinTypeKeywords;
 
59934
class ExtGnu;
50916
59935
class PragmaOnceUnitState;
50917
59936
class PragmaOnce;
50918
 
class CCExprResolve;
50919
 
class CExprResolve;
50920
 
namespace Puma {
50921
 
 
50922
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59937
class CMatchSyntax;
 
59938
namespace Puma {
 
59939
 
 
59940
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59941
 
 
59942
#line 59943 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59943
} // closed Puma
 
59944
 
 
59945
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59946
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
59947
#include "CCExprResolveH.ah"
 
59948
#endif
 
59949
namespace Puma {
 
59950
 
 
59951
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
59952
 
 
59953
#line 59954 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59954
} // closed Puma
 
59955
 
 
59956
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59957
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
59958
#include "CExprResolveH.ah"
 
59959
#endif
 
59960
namespace Puma {
 
59961
 
 
59962
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50923
59963
class CT_WideCharacter : public CT_Character {
50924
 
#line 50925 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
59964
#line 59965 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
59965
  friend class ::CCExprResolve;
 
59966
  friend class ::CExprResolve;
50925
59967
  friend class ::WinIfExists;
50926
59968
  friend class ::WinImportHandler;
50927
59969
  friend class ::WinMacros;
50928
 
  friend class ::CMatchSyntax;
50929
 
  friend class ::ExtGnu;
 
59970
  friend class ::WinAsm;
 
59971
  friend class ::WinDeclSpecs;
 
59972
  friend class ::WinMemberExplSpec;
 
59973
  friend class ::WinTypeKeywords;
 
59974
  friend class ::WinFriend;
50930
59975
  friend class ::ExtAC;
50931
59976
  friend class ::ExtACBuilderCoupling;
50932
59977
  friend class ::ExtACSyntaxCoupling;
50933
59978
  friend class ::ExtACTree;
50934
59979
  friend class ::ExtACKeywords;
50935
 
  friend class ::WinAsm;
50936
 
  friend class ::WinDeclSpecs;
50937
 
  friend class ::WinMemberExplSpec;
50938
 
  friend class ::WinTypeKeywords;
 
59980
  friend class ::ExtGnu;
50939
59981
  friend class ::PragmaOnceUnitState;
50940
59982
  friend class ::PragmaOnce;
50941
 
  friend class ::CCExprResolve;
50942
 
  friend class ::CExprResolve;
50943
 
 
50944
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
50945
 
 
50946
 
  CTree *_value;  // CT_Token
 
59983
  friend class ::CMatchSyntax;
 
59984
 
 
59985
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50947
59986
 
50948
59987
public:
50949
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
59988
  /** Constructor.
 
59989
   *  \param token The token containing the wide character value. */
 
59990
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
59991
  /** Get the identifier for this node type. Can be compared with NodeName(). */
50950
59992
  static const char *NodeId ();
 
59993
  /** Get the name of the node. Can be compared with NodeId(). */
50951
59994
  const char *NodeName () const { return NodeId (); }
50952
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
50953
 
   { if (old_son == _value) _value = new_son; }
50954
59995
   private:
50955
59996
  typedef CT_WideCharacter CCExprResolveExpr;
50956
59997
 
50957
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
59998
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
50958
59999
 public :
50959
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
60000
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
50960
60001
  typedef CT_WideCharacter CExprResolveExpr;
50961
60002
 
50962
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60003
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
50963
60004
 public :
50964
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
50965
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60005
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60006
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50966
60007
};
50967
60008
 
 
60009
/** \class CT_Float CTree.h Puma/CTree.h
 
60010
 *  Tree node representing a floating point constant. */
50968
60011
 
50969
 
#line 50970 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60012
#line 60013 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
50970
60013
} // closed Puma
 
60014
class CCExprResolve;
 
60015
class CExprResolve;
50971
60016
class WinIfExists;
50972
60017
class WinImportHandler;
50973
60018
class WinMacros;
50974
 
class CMatchSyntax;
50975
 
class ExtGnu;
 
60019
class WinAsm;
 
60020
class WinDeclSpecs;
 
60021
class WinMemberExplSpec;
 
60022
class WinTypeKeywords;
 
60023
class WinFriend;
50976
60024
class ExtAC;
50977
60025
class ExtACBuilderCoupling;
50978
60026
class ExtACSyntaxCoupling;
50979
60027
class ExtACTree;
50980
60028
class ExtACKeywords;
50981
 
class WinAsm;
50982
 
class WinDeclSpecs;
50983
 
class WinMemberExplSpec;
50984
 
class WinTypeKeywords;
 
60029
class ExtGnu;
50985
60030
class PragmaOnceUnitState;
50986
60031
class PragmaOnce;
50987
 
class CCExprResolve;
50988
 
class CExprResolve;
50989
 
namespace Puma {
50990
 
 
50991
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60032
class CMatchSyntax;
 
60033
namespace Puma {
 
60034
 
 
60035
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60036
 
 
60037
#line 60038 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60038
} // closed Puma
 
60039
 
 
60040
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60041
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60042
#include "CCExprResolveH.ah"
 
60043
#endif
 
60044
namespace Puma {
 
60045
 
 
60046
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60047
 
 
60048
#line 60049 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60049
} // closed Puma
 
60050
 
 
60051
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60052
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60053
#include "CExprResolveH.ah"
 
60054
#endif
 
60055
namespace Puma {
 
60056
 
 
60057
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
50992
60058
class CT_Float : public CT_Expression {
50993
 
#line 50994 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60059
#line 60060 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60060
  friend class ::CCExprResolve;
 
60061
  friend class ::CExprResolve;
50994
60062
  friend class ::WinIfExists;
50995
60063
  friend class ::WinImportHandler;
50996
60064
  friend class ::WinMacros;
50997
 
  friend class ::CMatchSyntax;
50998
 
  friend class ::ExtGnu;
 
60065
  friend class ::WinAsm;
 
60066
  friend class ::WinDeclSpecs;
 
60067
  friend class ::WinMemberExplSpec;
 
60068
  friend class ::WinTypeKeywords;
 
60069
  friend class ::WinFriend;
50999
60070
  friend class ::ExtAC;
51000
60071
  friend class ::ExtACBuilderCoupling;
51001
60072
  friend class ::ExtACSyntaxCoupling;
51002
60073
  friend class ::ExtACTree;
51003
60074
  friend class ::ExtACKeywords;
51004
 
  friend class ::WinAsm;
51005
 
  friend class ::WinDeclSpecs;
51006
 
  friend class ::WinMemberExplSpec;
51007
 
  friend class ::WinTypeKeywords;
 
60075
  friend class ::ExtGnu;
51008
60076
  friend class ::PragmaOnceUnitState;
51009
60077
  friend class ::PragmaOnce;
51010
 
  friend class ::CCExprResolve;
51011
 
  friend class ::CExprResolve;
 
60078
  friend class ::CMatchSyntax;
51012
60079
 
51013
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60080
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51014
60081
 
51015
60082
  CTree *_value;  // CT_Token
51016
60083
 
51017
60084
public:
51018
 
  CT_Float (CTree *t) : _value (t) {}
 
60085
  /** Constructor.
 
60086
   *  \param token The token containing the floating point value. */
 
60087
  CT_Float (CTree *token) { AddSon (_value, token); }
 
60088
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51019
60089
  static const char *NodeId ();
 
60090
  /** Get the name of the node. Can be compared with NodeId(). */
51020
60091
  const char *NodeName () const { return NodeId (); }
 
60092
  /** Get the number of sons. */
51021
60093
  int Sons () const { return 1; }
 
60094
  /** Get the n-th son.
 
60095
   *  \param n The index of the son.
 
60096
   *  \return The n-th son or NULL. */
51022
60097
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
60098
  /** Replace a son.
 
60099
   *  \param old_son The son to replace.
 
60100
   *  \param new_son The new son. */
51023
60101
  void ReplaceSon (CTree *old_son, CTree *new_son) 
51024
 
   { if (old_son == _value) _value = new_son; }
 
60102
   { CTree::ReplaceSon (_value, old_son, new_son); }
51025
60103
   private:
51026
60104
  typedef CT_Float CCExprResolveExpr;
51027
60105
 
51028
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60106
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
51029
60107
 public :
51030
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
60108
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
51031
60109
  typedef CT_Float CExprResolveExpr;
51032
60110
 
51033
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60111
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
51034
60112
 public :
51035
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
51036
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60113
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60114
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51037
60115
};
51038
60116
 
 
60117
/** \class CT_Bool CTree.h Puma/CTree.h
 
60118
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
51039
60119
 
51040
 
#line 51041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60120
#line 60121 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
51041
60121
} // closed Puma
 
60122
class CCExprResolve;
 
60123
class CExprResolve;
51042
60124
class WinIfExists;
51043
60125
class WinImportHandler;
51044
60126
class WinMacros;
51045
 
class CMatchSyntax;
51046
 
class ExtGnu;
 
60127
class WinAsm;
 
60128
class WinDeclSpecs;
 
60129
class WinMemberExplSpec;
 
60130
class WinTypeKeywords;
 
60131
class WinFriend;
51047
60132
class ExtAC;
51048
60133
class ExtACBuilderCoupling;
51049
60134
class ExtACSyntaxCoupling;
51050
60135
class ExtACTree;
51051
60136
class ExtACKeywords;
51052
 
class WinAsm;
51053
 
class WinDeclSpecs;
51054
 
class WinMemberExplSpec;
51055
 
class WinTypeKeywords;
 
60137
class ExtGnu;
51056
60138
class PragmaOnceUnitState;
51057
60139
class PragmaOnce;
51058
 
class CCExprResolve;
51059
 
class CExprResolve;
51060
 
namespace Puma {
51061
 
 
51062
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60140
class CMatchSyntax;
 
60141
namespace Puma {
 
60142
 
 
60143
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60144
 
 
60145
#line 60146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60146
} // closed Puma
 
60147
 
 
60148
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60149
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60150
#include "CCExprResolveH.ah"
 
60151
#endif
 
60152
namespace Puma {
 
60153
 
 
60154
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60155
 
 
60156
#line 60157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60157
} // closed Puma
 
60158
 
 
60159
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60160
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60161
#include "CExprResolveH.ah"
 
60162
#endif
 
60163
namespace Puma {
 
60164
 
 
60165
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51063
60166
class CT_Bool : public CT_Expression {
51064
 
#line 51065 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60167
#line 60168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60168
  friend class ::CCExprResolve;
 
60169
  friend class ::CExprResolve;
51065
60170
  friend class ::WinIfExists;
51066
60171
  friend class ::WinImportHandler;
51067
60172
  friend class ::WinMacros;
51068
 
  friend class ::CMatchSyntax;
51069
 
  friend class ::ExtGnu;
 
60173
  friend class ::WinAsm;
 
60174
  friend class ::WinDeclSpecs;
 
60175
  friend class ::WinMemberExplSpec;
 
60176
  friend class ::WinTypeKeywords;
 
60177
  friend class ::WinFriend;
51070
60178
  friend class ::ExtAC;
51071
60179
  friend class ::ExtACBuilderCoupling;
51072
60180
  friend class ::ExtACSyntaxCoupling;
51073
60181
  friend class ::ExtACTree;
51074
60182
  friend class ::ExtACKeywords;
51075
 
  friend class ::WinAsm;
51076
 
  friend class ::WinDeclSpecs;
51077
 
  friend class ::WinMemberExplSpec;
51078
 
  friend class ::WinTypeKeywords;
 
60183
  friend class ::ExtGnu;
51079
60184
  friend class ::PragmaOnceUnitState;
51080
60185
  friend class ::PragmaOnce;
51081
 
  friend class ::CCExprResolve;
51082
 
  friend class ::CExprResolve;
 
60186
  friend class ::CMatchSyntax;
51083
60187
 
51084
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60188
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51085
60189
 
51086
60190
  CTree *_value;  // CT_Token
51087
60191
 
51088
60192
public:
51089
 
  CT_Bool (CTree *t) : _value (t) {}
 
60193
  /** Constructor.
 
60194
   *  \param token The token containing the boolean value. */
 
60195
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
60196
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51090
60197
  static const char *NodeId ();
 
60198
  /** Get the name of the node. Can be compared with NodeId(). */
51091
60199
  const char *NodeName () const { return NodeId (); }
 
60200
  /** Get the number of sons. */
51092
60201
  int Sons () const { return 1; }
 
60202
  /** Get the n-th son.
 
60203
   *  \param n The index of the son.
 
60204
   *  \return The n-th son or NULL. */
51093
60205
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
60206
  /** Replace a son.
 
60207
   *  \param old_son The son to replace.
 
60208
   *  \param new_son The new son. */
51094
60209
  void ReplaceSon (CTree *old_son, CTree *new_son) 
51095
 
   { if (old_son == _value) _value = new_son; }
 
60210
   { CTree::ReplaceSon (_value, old_son, new_son); }
51096
60211
   private:
51097
60212
  typedef CT_Bool CCExprResolveExpr;
51098
60213
 
51099
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60214
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
51100
60215
 public :
51101
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
60216
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
51102
60217
  typedef CT_Bool CExprResolveExpr;
51103
60218
 
51104
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60219
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
51105
60220
 public :
51106
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
51107
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60221
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60222
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51108
60223
};
51109
60224
 
 
60225
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
60226
 *  Tree node representing a braced expression, e.g. (a+b). */
51110
60227
 
51111
 
#line 51112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60228
#line 60229 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
51112
60229
} // closed Puma
 
60230
class CCExprResolve;
 
60231
class CExprResolve;
51113
60232
class WinIfExists;
51114
60233
class WinImportHandler;
51115
60234
class WinMacros;
51116
 
class CMatchSyntax;
51117
 
class ExtGnu;
 
60235
class WinAsm;
 
60236
class WinDeclSpecs;
 
60237
class WinMemberExplSpec;
 
60238
class WinTypeKeywords;
 
60239
class WinFriend;
51118
60240
class ExtAC;
51119
60241
class ExtACBuilderCoupling;
51120
60242
class ExtACSyntaxCoupling;
51121
60243
class ExtACTree;
51122
60244
class ExtACKeywords;
51123
 
class WinAsm;
51124
 
class WinDeclSpecs;
51125
 
class WinMemberExplSpec;
51126
 
class WinTypeKeywords;
 
60245
class ExtGnu;
51127
60246
class PragmaOnceUnitState;
51128
60247
class PragmaOnce;
51129
 
class CCExprResolve;
51130
 
class CExprResolve;
51131
 
namespace Puma {
51132
 
 
51133
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60248
class CMatchSyntax;
 
60249
namespace Puma {
 
60250
 
 
60251
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60252
 
 
60253
#line 60254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60254
} // closed Puma
 
60255
 
 
60256
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60257
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60258
#include "CCExprResolveH.ah"
 
60259
#endif
 
60260
namespace Puma {
 
60261
 
 
60262
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60263
 
 
60264
#line 60265 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60265
} // closed Puma
 
60266
 
 
60267
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60268
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60269
#include "CExprResolveH.ah"
 
60270
#endif
 
60271
namespace Puma {
 
60272
 
 
60273
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51134
60274
class CT_BracedExpr : public CT_Expression {
51135
 
#line 51136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60275
#line 60276 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60276
  friend class ::CCExprResolve;
 
60277
  friend class ::CExprResolve;
51136
60278
  friend class ::WinIfExists;
51137
60279
  friend class ::WinImportHandler;
51138
60280
  friend class ::WinMacros;
51139
 
  friend class ::CMatchSyntax;
51140
 
  friend class ::ExtGnu;
 
60281
  friend class ::WinAsm;
 
60282
  friend class ::WinDeclSpecs;
 
60283
  friend class ::WinMemberExplSpec;
 
60284
  friend class ::WinTypeKeywords;
 
60285
  friend class ::WinFriend;
51141
60286
  friend class ::ExtAC;
51142
60287
  friend class ::ExtACBuilderCoupling;
51143
60288
  friend class ::ExtACSyntaxCoupling;
51144
60289
  friend class ::ExtACTree;
51145
60290
  friend class ::ExtACKeywords;
51146
 
  friend class ::WinAsm;
51147
 
  friend class ::WinDeclSpecs;
51148
 
  friend class ::WinMemberExplSpec;
51149
 
  friend class ::WinTypeKeywords;
 
60291
  friend class ::ExtGnu;
51150
60292
  friend class ::PragmaOnceUnitState;
51151
60293
  friend class ::PragmaOnce;
51152
 
  friend class ::CCExprResolve;
51153
 
  friend class ::CExprResolve;
 
60294
  friend class ::CMatchSyntax;
51154
60295
 
51155
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60296
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51156
60297
 
51157
60298
  CTree *sons[3]; // open, expr, close
51158
60299
 
51159
60300
public:
 
60301
  /** Constructor.
 
60302
   *  \param o The opening brace.
 
60303
   *  \param e The enclosed expression.
 
60304
   *  \param c The closing brace. */
51160
60305
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
51161
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
60306
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
51162
60307
  }
 
60308
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51163
60309
  static const char *NodeId ();
 
60310
  /** Get the name of the node. Can be compared with NodeId(). */
51164
60311
  const char *NodeName () const { return NodeId (); }
 
60312
  /** Get the number of sons. */
51165
60313
  int Sons () const { return 3; }
 
60314
  /** Get the n-th son.
 
60315
   *  \param n The index of the son.
 
60316
   *  \return The n-th son or NULL. */
51166
60317
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
60318
  /** Get the enclosed expression. */
51167
60319
  CTree *Expr () const { return sons[1]; }
 
60320
  /** Get the type of the enclosed expression. */
51168
60321
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
60322
  /** Get the value of the enclosed expression. */
51169
60323
  CExprValue *Value () const { return Expr ()->Value (); }
 
60324
  /** Get the semantic value object. */
51170
60325
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
60326
  /** Replace a son.
 
60327
   *  \param old_son The son to replace.
 
60328
   *  \param new_son The new son. */
51171
60329
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51172
60330
    CTree::ReplaceSon (sons, 3, old_son, new_son);
51173
60331
  }
51174
60332
   private:
51175
60333
  typedef CT_BracedExpr CCExprResolveExpr;
51176
60334
 
51177
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60335
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
51178
60336
 public :
51179
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
60337
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
51180
60338
  typedef CT_BracedExpr CExprResolveExpr;
51181
60339
 
51182
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60340
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
51183
60341
 public :
51184
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
51185
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60342
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60343
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51186
60344
};
51187
60345
 
 
60346
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
60347
 *  Base class for all tree nodes representing a name. */
51188
60348
 
51189
 
#line 51190 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60349
#line 60350 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
51190
60350
} // closed Puma
 
60351
class CCExprResolve;
 
60352
class CExprResolve;
51191
60353
class WinIfExists;
51192
60354
class WinImportHandler;
51193
60355
class WinMacros;
51194
 
class CMatchSyntax;
51195
 
class ExtGnu;
 
60356
class WinAsm;
 
60357
class WinDeclSpecs;
 
60358
class WinMemberExplSpec;
 
60359
class WinTypeKeywords;
 
60360
class WinFriend;
51196
60361
class ExtAC;
51197
60362
class ExtACBuilderCoupling;
51198
60363
class ExtACSyntaxCoupling;
51199
60364
class ExtACTree;
51200
60365
class ExtACKeywords;
51201
 
class WinAsm;
51202
 
class WinDeclSpecs;
51203
 
class WinMemberExplSpec;
51204
 
class WinTypeKeywords;
 
60366
class ExtGnu;
51205
60367
class PragmaOnceUnitState;
51206
60368
class PragmaOnce;
51207
 
class CCExprResolve;
51208
 
class CExprResolve;
51209
 
namespace Puma {
51210
 
 
51211
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60369
class CMatchSyntax;
 
60370
namespace Puma {
 
60371
 
 
60372
#line 839 "/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/Parser.cc"
 
60375
} // closed Puma
 
60376
 
 
60377
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60378
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60379
#include "CCExprResolveH.ah"
 
60380
#endif
 
60381
namespace Puma {
 
60382
 
 
60383
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60384
 
 
60385
#line 60386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60386
} // closed Puma
 
60387
 
 
60388
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60389
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60390
#include "CExprResolveH.ah"
 
60391
#endif
 
60392
namespace Puma {
 
60393
 
 
60394
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51212
60395
class CT_SimpleName : public CT_List, public Printable, 
51213
60396
                      public CSemValue, public CSemObject {
51214
 
#line 51215 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60397
#line 60398 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60398
  friend class ::CCExprResolve;
 
60399
  friend class ::CExprResolve;
51215
60400
  friend class ::WinIfExists;
51216
60401
  friend class ::WinImportHandler;
51217
60402
  friend class ::WinMacros;
51218
 
  friend class ::CMatchSyntax;
51219
 
  friend class ::ExtGnu;
 
60403
  friend class ::WinAsm;
 
60404
  friend class ::WinDeclSpecs;
 
60405
  friend class ::WinMemberExplSpec;
 
60406
  friend class ::WinTypeKeywords;
 
60407
  friend class ::WinFriend;
51220
60408
  friend class ::ExtAC;
51221
60409
  friend class ::ExtACBuilderCoupling;
51222
60410
  friend class ::ExtACSyntaxCoupling;
51223
60411
  friend class ::ExtACTree;
51224
60412
  friend class ::ExtACKeywords;
51225
 
  friend class ::WinAsm;
51226
 
  friend class ::WinDeclSpecs;
51227
 
  friend class ::WinMemberExplSpec;
51228
 
  friend class ::WinTypeKeywords;
 
60413
  friend class ::ExtGnu;
51229
60414
  friend class ::PragmaOnceUnitState;
51230
60415
  friend class ::PragmaOnce;
51231
 
  friend class ::CCExprResolve;
51232
 
  friend class ::CExprResolve;
 
60416
  friend class ::CMatchSyntax;
51233
60417
 
51234
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60418
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51235
60419
 
51236
60420
protected:
 
60421
  /** Constructor.
 
60422
   *  \param size The number of sub-names (for qualified names). */
51237
60423
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
60424
  /** Constructor.
 
60425
   *  \param size The number of sub-names (for qualified names). 
 
60426
   *  \param properties Additional name list properties (for root qualified names). */
51238
60427
  CT_SimpleName (int size, int properties) : 
51239
60428
    CT_List (size, 2, properties) {}
51240
60429
  
51241
60430
public:
 
60431
  /** Constructor.
 
60432
   *  \param n The sub-tree containing the name. */
51242
60433
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
60434
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51243
60435
  static const char *NodeId ();
 
60436
  /** Get the name of the node. Can be compared with NodeId(). */
51244
60437
  const char *NodeName () const { return NodeId (); }
 
60438
  /** Get the string containing the name. */
51245
60439
  virtual const char *Text () const 
51246
60440
   { return Son (Sons ()-1)->token ()->text (); }
 
60441
  /** Print the name on the given stream. 
 
60442
   *  \param os The output stream. */
51247
60443
  virtual void print (ostream &os) const { os << Text (); }
 
60444
  /** Get this. */
51248
60445
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
60446
  /** Get the type of the entity represented by the name. */
51249
60447
  CTypeInfo *Type () const { return type; }
 
60448
  /** Get the value of the entity represented by the name. */ 
51250
60449
  CExprValue *Value () const { return value; }
 
60450
  /** Get the sematic value information object. */
51251
60451
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
60452
  /** Get the sematic information object. */
51252
60453
  CSemObject *SemObject () const { return (CSemObject*)this; }
51253
 
  // special new / delete with reusing memory
51254
 
  void *operator new (size_t);
51255
 
  void  operator delete (void *);
51256
 
  // classification function
 
60454
  /** Get this. */
51257
60455
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
60456
 
 
60457
public:
 
60458
  /** Own new operator reusing memory. */
 
60459
  void *operator new (size_t);
 
60460
  /** Own delete operator. */
 
60461
  void operator delete (void *);
51258
60462
   private:
51259
60463
  typedef CT_SimpleName CCExprResolveExpr;
51260
60464
 
51261
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60465
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
51262
60466
 public :
51263
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
60467
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
51264
60468
  typedef CT_SimpleName CExprResolveExpr;
51265
60469
 
51266
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60470
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
51267
60471
 public :
51268
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
51269
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60472
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60473
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51270
60474
};
51271
60475
 
 
60476
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
60477
 *  Base class for tree nodes representing a special name, like destructor names. */
51272
60478
 
51273
 
#line 51274 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60479
#line 60480 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
51274
60480
} // closed Puma
 
60481
class CCExprResolve;
 
60482
class CExprResolve;
51275
60483
class WinIfExists;
51276
60484
class WinImportHandler;
51277
60485
class WinMacros;
51278
 
class CMatchSyntax;
51279
 
class ExtGnu;
 
60486
class WinAsm;
 
60487
class WinDeclSpecs;
 
60488
class WinMemberExplSpec;
 
60489
class WinTypeKeywords;
 
60490
class WinFriend;
51280
60491
class ExtAC;
51281
60492
class ExtACBuilderCoupling;
51282
60493
class ExtACSyntaxCoupling;
51283
60494
class ExtACTree;
51284
60495
class ExtACKeywords;
51285
 
class WinAsm;
51286
 
class WinDeclSpecs;
51287
 
class WinMemberExplSpec;
51288
 
class WinTypeKeywords;
 
60496
class ExtGnu;
51289
60497
class PragmaOnceUnitState;
51290
60498
class PragmaOnce;
51291
 
class CCExprResolve;
51292
 
class CExprResolve;
51293
 
namespace Puma {
51294
 
 
51295
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60499
class CMatchSyntax;
 
60500
namespace Puma {
 
60501
 
 
60502
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60503
 
 
60504
#line 60505 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60505
} // closed Puma
 
60506
 
 
60507
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60508
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60509
#include "CCExprResolveH.ah"
 
60510
#endif
 
60511
namespace Puma {
 
60512
 
 
60513
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60514
 
 
60515
#line 60516 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60516
} // closed Puma
 
60517
 
 
60518
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60519
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60520
#include "CExprResolveH.ah"
 
60521
#endif
 
60522
namespace Puma {
 
60523
 
 
60524
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51296
60525
class CT_SpecialName : public CT_SimpleName {
51297
 
#line 51298 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60526
#line 60527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60527
  friend class ::CCExprResolve;
 
60528
  friend class ::CExprResolve;
51298
60529
  friend class ::WinIfExists;
51299
60530
  friend class ::WinImportHandler;
51300
60531
  friend class ::WinMacros;
51301
 
  friend class ::CMatchSyntax;
51302
 
  friend class ::ExtGnu;
 
60532
  friend class ::WinAsm;
 
60533
  friend class ::WinDeclSpecs;
 
60534
  friend class ::WinMemberExplSpec;
 
60535
  friend class ::WinTypeKeywords;
 
60536
  friend class ::WinFriend;
51303
60537
  friend class ::ExtAC;
51304
60538
  friend class ::ExtACBuilderCoupling;
51305
60539
  friend class ::ExtACSyntaxCoupling;
51306
60540
  friend class ::ExtACTree;
51307
60541
  friend class ::ExtACKeywords;
51308
 
  friend class ::WinAsm;
51309
 
  friend class ::WinDeclSpecs;
51310
 
  friend class ::WinMemberExplSpec;
51311
 
  friend class ::WinTypeKeywords;
 
60542
  friend class ::ExtGnu;
51312
60543
  friend class ::PragmaOnceUnitState;
51313
60544
  friend class ::PragmaOnce;
51314
 
  friend class ::CCExprResolve;
51315
 
  friend class ::CExprResolve;
 
60545
  friend class ::CMatchSyntax;
51316
60546
 
51317
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60547
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51318
60548
 
51319
60549
  char *_name;
51320
60550
  
51321
60551
protected:
 
60552
  /** Constructor.
 
60553
   *  \param size The number of sub-names (for qualified names). */
51322
60554
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
51323
60555
  
51324
60556
public:
 
60557
  /** Destructor. Deletes the name string. */
51325
60558
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
60559
  /** Get the string containing the name. */
51326
60560
  const char *Text () const { return _name; }
 
60561
  /** Set the name. The name is copied.
 
60562
   *  \param n The name. */
51327
60563
  void Name (const char *n) { 
51328
60564
    if (n) { 
51329
60565
      _name = new char[strlen(n) + 1];
51330
60566
      strcpy (_name,n);
51331
60567
    }
51332
60568
  }
51333
 
  // special new / delete with reusing memory
 
60569
 
 
60570
public:
 
60571
  /** Own new operator reusing memory. */
51334
60572
  void *operator new (size_t);
51335
 
  void  operator delete (void *);
 
60573
  /** Own delete operator. */
 
60574
  void operator delete (void *);
51336
60575
   private:
51337
60576
  typedef CT_SpecialName CCExprResolveExpr;
51338
60577
 
51339
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60578
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
51340
60579
 public :
51341
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
60580
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
51342
60581
  typedef CT_SpecialName CExprResolveExpr;
51343
60582
 
51344
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60583
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
51345
60584
 public :
51346
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
51347
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60585
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60586
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51348
60587
};
51349
60588
 
 
60589
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
60590
 *  Tree node representing a private name. Private names 
 
60591
 *  are generated names for abstract declarators etc. */
51350
60592
 
51351
 
#line 51352 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60593
#line 60594 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
51352
60594
} // closed Puma
 
60595
class CCExprResolve;
 
60596
class CExprResolve;
51353
60597
class WinIfExists;
51354
60598
class WinImportHandler;
51355
60599
class WinMacros;
51356
 
class CMatchSyntax;
51357
 
class ExtGnu;
 
60600
class WinAsm;
 
60601
class WinDeclSpecs;
 
60602
class WinMemberExplSpec;
 
60603
class WinTypeKeywords;
 
60604
class WinFriend;
51358
60605
class ExtAC;
51359
60606
class ExtACBuilderCoupling;
51360
60607
class ExtACSyntaxCoupling;
51361
60608
class ExtACTree;
51362
60609
class ExtACKeywords;
51363
 
class WinAsm;
51364
 
class WinDeclSpecs;
51365
 
class WinMemberExplSpec;
51366
 
class WinTypeKeywords;
 
60610
class ExtGnu;
51367
60611
class PragmaOnceUnitState;
51368
60612
class PragmaOnce;
51369
 
class CCExprResolve;
51370
 
class CExprResolve;
51371
 
namespace Puma {
51372
 
 
51373
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60613
class CMatchSyntax;
 
60614
namespace Puma {
 
60615
 
 
60616
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60617
 
 
60618
#line 60619 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60619
} // closed Puma
 
60620
 
 
60621
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60622
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60623
#include "CCExprResolveH.ah"
 
60624
#endif
 
60625
namespace Puma {
 
60626
 
 
60627
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60628
 
 
60629
#line 60630 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60630
} // closed Puma
 
60631
 
 
60632
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60633
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60634
#include "CExprResolveH.ah"
 
60635
#endif
 
60636
namespace Puma {
 
60637
 
 
60638
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51374
60639
class CT_PrivateName : public CT_SpecialName {
51375
 
#line 51376 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60640
#line 60641 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60641
  friend class ::CCExprResolve;
 
60642
  friend class ::CExprResolve;
51376
60643
  friend class ::WinIfExists;
51377
60644
  friend class ::WinImportHandler;
51378
60645
  friend class ::WinMacros;
51379
 
  friend class ::CMatchSyntax;
51380
 
  friend class ::ExtGnu;
 
60646
  friend class ::WinAsm;
 
60647
  friend class ::WinDeclSpecs;
 
60648
  friend class ::WinMemberExplSpec;
 
60649
  friend class ::WinTypeKeywords;
 
60650
  friend class ::WinFriend;
51381
60651
  friend class ::ExtAC;
51382
60652
  friend class ::ExtACBuilderCoupling;
51383
60653
  friend class ::ExtACSyntaxCoupling;
51384
60654
  friend class ::ExtACTree;
51385
60655
  friend class ::ExtACKeywords;
51386
 
  friend class ::WinAsm;
51387
 
  friend class ::WinDeclSpecs;
51388
 
  friend class ::WinMemberExplSpec;
51389
 
  friend class ::WinTypeKeywords;
 
60656
  friend class ::ExtGnu;
51390
60657
  friend class ::PragmaOnceUnitState;
51391
60658
  friend class ::PragmaOnce;
51392
 
  friend class ::CCExprResolve;
51393
 
  friend class ::CExprResolve;
 
60659
  friend class ::CMatchSyntax;
51394
60660
 
51395
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60661
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51396
60662
 
51397
60663
public:
 
60664
  /** Constructor.
 
60665
   *  \param n The private (generated) name. */
51398
60666
  CT_PrivateName (const char *n) { Name (n); }
 
60667
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51399
60668
  static const char *NodeId ();
 
60669
  /** Get the name of the node. Can be compared with NodeId(). */
51400
60670
  const char *NodeName () const { return NodeId (); }
 
60671
  /** Get the number of sons. */
51401
60672
  int Sons () const { return 0; }
 
60673
  /** Get the n-th son.
 
60674
   *  \param n The index of the son.
 
60675
   *  \return The n-th son or NULL. */
51402
60676
  CTree *Son (int n) const { return (CTree*)0; }
51403
 
  // special new / delete with reusing memory
 
60677
 
 
60678
public:
 
60679
  /** Own new operator reusing memory. */
51404
60680
  void *operator new (size_t);
51405
 
  void  operator delete (void *);
 
60681
  /** Own delete operator. */
 
60682
  void operator delete (void *);
51406
60683
   private:
51407
60684
  typedef CT_PrivateName CCExprResolveExpr;
51408
60685
 
51409
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60686
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
51410
60687
 public :
51411
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
60688
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
51412
60689
  typedef CT_PrivateName CExprResolveExpr;
51413
60690
 
51414
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60691
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
51415
60692
 public :
51416
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
51417
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60693
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60694
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51418
60695
};
51419
60696
 
 
60697
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
60698
 *  Tree node representing a destructor name. */
51420
60699
 
51421
 
#line 51422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60700
#line 60701 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
51422
60701
} // closed Puma
 
60702
class CCExprResolve;
 
60703
class CExprResolve;
51423
60704
class WinIfExists;
51424
60705
class WinImportHandler;
51425
60706
class WinMacros;
51426
 
class CMatchSyntax;
51427
 
class ExtGnu;
 
60707
class WinAsm;
 
60708
class WinDeclSpecs;
 
60709
class WinMemberExplSpec;
 
60710
class WinTypeKeywords;
 
60711
class WinFriend;
51428
60712
class ExtAC;
51429
60713
class ExtACBuilderCoupling;
51430
60714
class ExtACSyntaxCoupling;
51431
60715
class ExtACTree;
51432
60716
class ExtACKeywords;
51433
 
class WinAsm;
51434
 
class WinDeclSpecs;
51435
 
class WinMemberExplSpec;
51436
 
class WinTypeKeywords;
 
60717
class ExtGnu;
51437
60718
class PragmaOnceUnitState;
51438
60719
class PragmaOnce;
51439
 
class CCExprResolve;
51440
 
class CExprResolve;
51441
 
namespace Puma {
51442
 
 
51443
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60720
class CMatchSyntax;
 
60721
namespace Puma {
 
60722
 
 
60723
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60724
 
 
60725
#line 60726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60726
} // closed Puma
 
60727
 
 
60728
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60729
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60730
#include "CCExprResolveH.ah"
 
60731
#endif
 
60732
namespace Puma {
 
60733
 
 
60734
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60735
 
 
60736
#line 60737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60737
} // closed Puma
 
60738
 
 
60739
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60740
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60741
#include "CExprResolveH.ah"
 
60742
#endif
 
60743
namespace Puma {
 
60744
 
 
60745
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51444
60746
class CT_DestructorName : public CT_SpecialName {
51445
 
#line 51446 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60747
#line 60748 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60748
  friend class ::CCExprResolve;
 
60749
  friend class ::CExprResolve;
51446
60750
  friend class ::WinIfExists;
51447
60751
  friend class ::WinImportHandler;
51448
60752
  friend class ::WinMacros;
51449
 
  friend class ::CMatchSyntax;
51450
 
  friend class ::ExtGnu;
 
60753
  friend class ::WinAsm;
 
60754
  friend class ::WinDeclSpecs;
 
60755
  friend class ::WinMemberExplSpec;
 
60756
  friend class ::WinTypeKeywords;
 
60757
  friend class ::WinFriend;
51451
60758
  friend class ::ExtAC;
51452
60759
  friend class ::ExtACBuilderCoupling;
51453
60760
  friend class ::ExtACSyntaxCoupling;
51454
60761
  friend class ::ExtACTree;
51455
60762
  friend class ::ExtACKeywords;
51456
 
  friend class ::WinAsm;
51457
 
  friend class ::WinDeclSpecs;
51458
 
  friend class ::WinMemberExplSpec;
51459
 
  friend class ::WinTypeKeywords;
 
60763
  friend class ::ExtGnu;
51460
60764
  friend class ::PragmaOnceUnitState;
51461
60765
  friend class ::PragmaOnce;
51462
 
  friend class ::CCExprResolve;
51463
 
  friend class ::CExprResolve;
 
60766
  friend class ::CMatchSyntax;
51464
60767
 
51465
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60768
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51466
60769
 
51467
60770
public:
51468
 
  CT_DestructorName (CTree *, CTree *);
 
60771
  /** Constructor.
 
60772
   *  \param t The tilde operator.
 
60773
   *  \param n The class name. */
 
60774
  CT_DestructorName (CTree *t, CTree *n);
 
60775
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51469
60776
  static const char *NodeId ();
 
60777
  /** Get the name of the node. Can be compared with NodeId(). */
51470
60778
  const char *NodeName () const { return NodeId (); }
51471
 
  // special new / delete with reusing memory
 
60779
 
 
60780
public:
 
60781
  /** Own new operator reusing memory. */
51472
60782
  void *operator new (size_t);
51473
 
  void  operator delete (void *);
 
60783
  /** Own delete operator. */
 
60784
  void operator delete (void *);
51474
60785
   private:
51475
60786
  typedef CT_DestructorName CCExprResolveExpr;
51476
60787
 
51477
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60788
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
51478
60789
 public :
51479
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
60790
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
51480
60791
  typedef CT_DestructorName CExprResolveExpr;
51481
60792
 
51482
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60793
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
51483
60794
 public :
51484
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
51485
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60795
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60796
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51486
60797
};
51487
60798
 
 
60799
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
60800
 *  Tree node representing a template name. */
51488
60801
 
51489
 
#line 51490 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60802
#line 60803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
51490
60803
} // closed Puma
 
60804
class CCExprResolve;
 
60805
class CExprResolve;
51491
60806
class WinIfExists;
51492
60807
class WinImportHandler;
51493
60808
class WinMacros;
51494
 
class CMatchSyntax;
51495
 
class ExtGnu;
 
60809
class WinAsm;
 
60810
class WinDeclSpecs;
 
60811
class WinMemberExplSpec;
 
60812
class WinTypeKeywords;
 
60813
class WinFriend;
51496
60814
class ExtAC;
51497
60815
class ExtACBuilderCoupling;
51498
60816
class ExtACSyntaxCoupling;
51499
60817
class ExtACTree;
51500
60818
class ExtACKeywords;
51501
 
class WinAsm;
51502
 
class WinDeclSpecs;
51503
 
class WinMemberExplSpec;
51504
 
class WinTypeKeywords;
 
60819
class ExtGnu;
51505
60820
class PragmaOnceUnitState;
51506
60821
class PragmaOnce;
51507
 
class CCExprResolve;
51508
 
class CExprResolve;
51509
 
namespace Puma {
51510
 
 
51511
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60822
class CMatchSyntax;
 
60823
namespace Puma {
 
60824
 
 
60825
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60826
 
 
60827
#line 60828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60828
} // closed Puma
 
60829
 
 
60830
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60831
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60832
#include "CCExprResolveH.ah"
 
60833
#endif
 
60834
namespace Puma {
 
60835
 
 
60836
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60837
 
 
60838
#line 60839 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60839
} // closed Puma
 
60840
 
 
60841
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60842
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60843
#include "CExprResolveH.ah"
 
60844
#endif
 
60845
namespace Puma {
 
60846
 
 
60847
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51512
60848
class CT_TemplateName : public CT_SpecialName {
51513
 
#line 51514 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60849
#line 60850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60850
  friend class ::CCExprResolve;
 
60851
  friend class ::CExprResolve;
51514
60852
  friend class ::WinIfExists;
51515
60853
  friend class ::WinImportHandler;
51516
60854
  friend class ::WinMacros;
51517
 
  friend class ::CMatchSyntax;
51518
 
  friend class ::ExtGnu;
 
60855
  friend class ::WinAsm;
 
60856
  friend class ::WinDeclSpecs;
 
60857
  friend class ::WinMemberExplSpec;
 
60858
  friend class ::WinTypeKeywords;
 
60859
  friend class ::WinFriend;
51519
60860
  friend class ::ExtAC;
51520
60861
  friend class ::ExtACBuilderCoupling;
51521
60862
  friend class ::ExtACSyntaxCoupling;
51522
60863
  friend class ::ExtACTree;
51523
60864
  friend class ::ExtACKeywords;
51524
 
  friend class ::WinAsm;
51525
 
  friend class ::WinDeclSpecs;
51526
 
  friend class ::WinMemberExplSpec;
51527
 
  friend class ::WinTypeKeywords;
 
60865
  friend class ::ExtGnu;
51528
60866
  friend class ::PragmaOnceUnitState;
51529
60867
  friend class ::PragmaOnce;
51530
 
  friend class ::CCExprResolve;
51531
 
  friend class ::CExprResolve;
 
60868
  friend class ::CMatchSyntax;
51532
60869
 
51533
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60870
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51534
60871
 
51535
60872
public:
 
60873
  /** Constructor.
 
60874
   *  \param n The template class or function name.
 
60875
   *  \param a The template argument list. */
51536
60876
  CT_TemplateName (CTree *n, CTree *a) 
51537
60877
   { AddSon (n); AddSon (a); }
 
60878
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51538
60879
  static const char *NodeId ();
 
60880
  /** Get the name of the node. Can be compared with NodeId(). */
51539
60881
  const char *NodeName () const { return NodeId (); }
 
60882
  /** Get the template argument list. */
51540
60883
  CT_TemplateArgList *Arguments () const 
51541
60884
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
60885
  /** Get the template class or function name. */
51542
60886
  CT_SimpleName *TemplateName () const 
51543
60887
   { return (CT_SimpleName*)Son (Sons ()-2); }
51544
60888
  // may change in the future
51545
60889
  const char *Text () const { return TemplateName ()->Text (); }
51546
 
  // special new / delete with reusing memory
 
60890
 
 
60891
public:
 
60892
  /** Own new operator reusing memory. */
51547
60893
  void *operator new (size_t);
51548
 
  void  operator delete (void *);
 
60894
  /** Own delete operator. */
 
60895
  void operator delete (void *);
51549
60896
   private:
51550
60897
  typedef CT_TemplateName CCExprResolveExpr;
51551
60898
 
51552
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
60899
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
51553
60900
 public :
51554
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
60901
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
51555
60902
  typedef CT_TemplateName CExprResolveExpr;
51556
60903
 
51557
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
60904
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
51558
60905
 public :
51559
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
51560
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60906
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
60907
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51561
60908
};
51562
60909
 
 
60910
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
60911
 *  Tree node representing the name of an overloaded operator. */
51563
60912
 
51564
 
#line 51565 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60913
#line 60914 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
51565
60914
} // closed Puma
 
60915
class CCExprResolve;
 
60916
class CExprResolve;
51566
60917
class WinIfExists;
51567
60918
class WinImportHandler;
51568
60919
class WinMacros;
51569
 
class CMatchSyntax;
51570
 
class ExtGnu;
 
60920
class WinAsm;
 
60921
class WinDeclSpecs;
 
60922
class WinMemberExplSpec;
 
60923
class WinTypeKeywords;
 
60924
class WinFriend;
51571
60925
class ExtAC;
51572
60926
class ExtACBuilderCoupling;
51573
60927
class ExtACSyntaxCoupling;
51574
60928
class ExtACTree;
51575
60929
class ExtACKeywords;
51576
 
class WinAsm;
51577
 
class WinDeclSpecs;
51578
 
class WinMemberExplSpec;
51579
 
class WinTypeKeywords;
 
60930
class ExtGnu;
51580
60931
class PragmaOnceUnitState;
51581
60932
class PragmaOnce;
51582
 
class CCExprResolve;
51583
 
class CExprResolve;
51584
 
namespace Puma {
51585
 
 
51586
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60933
class CMatchSyntax;
 
60934
namespace Puma {
 
60935
 
 
60936
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60937
 
 
60938
#line 60939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60939
} // closed Puma
 
60940
 
 
60941
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60942
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
60943
#include "CCExprResolveH.ah"
 
60944
#endif
 
60945
namespace Puma {
 
60946
 
 
60947
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60948
 
 
60949
#line 60950 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60950
} // closed Puma
 
60951
 
 
60952
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60953
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
60954
#include "CExprResolveH.ah"
 
60955
#endif
 
60956
namespace Puma {
 
60957
 
 
60958
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51587
60959
class CT_OperatorName : public CT_SpecialName {
51588
 
#line 51589 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
60960
#line 60961 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
60961
  friend class ::CCExprResolve;
 
60962
  friend class ::CExprResolve;
51589
60963
  friend class ::WinIfExists;
51590
60964
  friend class ::WinImportHandler;
51591
60965
  friend class ::WinMacros;
51592
 
  friend class ::CMatchSyntax;
51593
 
  friend class ::ExtGnu;
 
60966
  friend class ::WinAsm;
 
60967
  friend class ::WinDeclSpecs;
 
60968
  friend class ::WinMemberExplSpec;
 
60969
  friend class ::WinTypeKeywords;
 
60970
  friend class ::WinFriend;
51594
60971
  friend class ::ExtAC;
51595
60972
  friend class ::ExtACBuilderCoupling;
51596
60973
  friend class ::ExtACSyntaxCoupling;
51597
60974
  friend class ::ExtACTree;
51598
60975
  friend class ::ExtACKeywords;
51599
 
  friend class ::WinAsm;
51600
 
  friend class ::WinDeclSpecs;
51601
 
  friend class ::WinMemberExplSpec;
51602
 
  friend class ::WinTypeKeywords;
 
60976
  friend class ::ExtGnu;
51603
60977
  friend class ::PragmaOnceUnitState;
51604
60978
  friend class ::PragmaOnce;
51605
 
  friend class ::CCExprResolve;
51606
 
  friend class ::CExprResolve;
 
60979
  friend class ::CMatchSyntax;
51607
60980
 
51608
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
60981
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51609
60982
 
51610
60983
  int _oper;
51611
60984
 
51612
60985
public:
51613
 
  enum { // complex operators
51614
 
    FCT_CALL = -100,
51615
 
    SUBSCRIPT,
51616
 
    NEW_ARRAY,
51617
 
    DEL_ARRAY
 
60986
  /** Complex operator types. */
 
60987
  enum { 
 
60988
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
60989
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
60990
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
60991
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
51618
60992
  };
51619
60993
 
51620
60994
public:
51621
 
  CT_OperatorName (CTree *);
51622
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
60995
  /** Constructor.
 
60996
   *  \param op The token containing the operator. */
 
60997
  CT_OperatorName (CTree *op);
 
60998
  /** Constructor.
 
60999
   *  \param f The operator function keyword 'operator'.
 
61000
   *  \param op The token containing the operator. 
 
61001
   *  \param o The token of '[' or '('.
 
61002
   *  \param c The token of ']' or ')'. */
 
61003
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
61004
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51623
61005
  static const char *NodeId ();
 
61006
  /** Get the name of the node. Can be compared with NodeId(). */
51624
61007
  const char *NodeName () const { return NodeId (); }
 
61008
  /** Get the operator type (either the token type or one of 
 
61009
   *  the complex operator types). */
51625
61010
  int Operator () const { return _oper; }
51626
 
  // special new / delete with reusing memory
 
61011
 
 
61012
public:
 
61013
  /** Own new operator reusing memory. */
51627
61014
  void *operator new (size_t);
51628
 
  void  operator delete (void *);
 
61015
  /** Own delete operator. */
 
61016
  void operator delete (void *);
51629
61017
   private:
51630
61018
  typedef CT_OperatorName CCExprResolveExpr;
51631
61019
 
51632
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61020
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
51633
61021
 public :
51634
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
61022
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
51635
61023
  typedef CT_OperatorName CExprResolveExpr;
51636
61024
 
51637
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61025
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
51638
61026
 public :
51639
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
51640
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61027
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61028
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51641
61029
};
51642
61030
 
 
61031
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
61032
 *  Tree node representing the name of a conversion function. */
51643
61033
 
51644
 
#line 51645 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61034
#line 61035 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
51645
61035
} // closed Puma
 
61036
class CCExprResolve;
 
61037
class CExprResolve;
51646
61038
class WinIfExists;
51647
61039
class WinImportHandler;
51648
61040
class WinMacros;
51649
 
class CMatchSyntax;
51650
 
class ExtGnu;
 
61041
class WinAsm;
 
61042
class WinDeclSpecs;
 
61043
class WinMemberExplSpec;
 
61044
class WinTypeKeywords;
 
61045
class WinFriend;
51651
61046
class ExtAC;
51652
61047
class ExtACBuilderCoupling;
51653
61048
class ExtACSyntaxCoupling;
51654
61049
class ExtACTree;
51655
61050
class ExtACKeywords;
51656
 
class WinAsm;
51657
 
class WinDeclSpecs;
51658
 
class WinMemberExplSpec;
51659
 
class WinTypeKeywords;
 
61051
class ExtGnu;
51660
61052
class PragmaOnceUnitState;
51661
61053
class PragmaOnce;
51662
 
class CCExprResolve;
51663
 
class CExprResolve;
51664
 
namespace Puma {
51665
 
 
51666
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61054
class CMatchSyntax;
 
61055
namespace Puma {
 
61056
 
 
61057
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61058
 
 
61059
#line 61060 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61060
} // closed Puma
 
61061
 
 
61062
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61063
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61064
#include "CCExprResolveH.ah"
 
61065
#endif
 
61066
namespace Puma {
 
61067
 
 
61068
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61069
 
 
61070
#line 61071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61071
} // closed Puma
 
61072
 
 
61073
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61074
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61075
#include "CExprResolveH.ah"
 
61076
#endif
 
61077
namespace Puma {
 
61078
 
 
61079
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51667
61080
class CT_ConversionName : public CT_SpecialName {
51668
 
#line 51669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61081
#line 61082 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61082
  friend class ::CCExprResolve;
 
61083
  friend class ::CExprResolve;
51669
61084
  friend class ::WinIfExists;
51670
61085
  friend class ::WinImportHandler;
51671
61086
  friend class ::WinMacros;
51672
 
  friend class ::CMatchSyntax;
51673
 
  friend class ::ExtGnu;
 
61087
  friend class ::WinAsm;
 
61088
  friend class ::WinDeclSpecs;
 
61089
  friend class ::WinMemberExplSpec;
 
61090
  friend class ::WinTypeKeywords;
 
61091
  friend class ::WinFriend;
51674
61092
  friend class ::ExtAC;
51675
61093
  friend class ::ExtACBuilderCoupling;
51676
61094
  friend class ::ExtACSyntaxCoupling;
51677
61095
  friend class ::ExtACTree;
51678
61096
  friend class ::ExtACKeywords;
51679
 
  friend class ::WinAsm;
51680
 
  friend class ::WinDeclSpecs;
51681
 
  friend class ::WinMemberExplSpec;
51682
 
  friend class ::WinTypeKeywords;
 
61097
  friend class ::ExtGnu;
51683
61098
  friend class ::PragmaOnceUnitState;
51684
61099
  friend class ::PragmaOnce;
51685
 
  friend class ::CCExprResolve;
51686
 
  friend class ::CExprResolve;
 
61100
  friend class ::CMatchSyntax;
51687
61101
 
51688
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61102
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51689
61103
 
51690
61104
public:
51691
 
  CT_ConversionName (CTree *, CTree *);
 
61105
  /** Constructor.
 
61106
   *  \param f The operator function keyword 'operator'.
 
61107
   *  \param t The sub-tree containing the conversion type. */
 
61108
  CT_ConversionName (CTree *f, CTree *t);
 
61109
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51692
61110
  static const char *NodeId ();
 
61111
  /** Get the name of the node. Can be compared with NodeId(). */
51693
61112
  const char *NodeName () const { return NodeId (); }
 
61113
  /** Get the conversion type. */
51694
61114
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
51695
 
  // special new / delete with reusing memory
 
61115
 
 
61116
public:
 
61117
  /** Own new operator reusing memory. */
51696
61118
  void *operator new (size_t);
51697
 
  void  operator delete (void *);
 
61119
  /** Own delete operator. */
 
61120
  void operator delete (void *);
51698
61121
   private:
51699
61122
  typedef CT_ConversionName CCExprResolveExpr;
51700
61123
 
51701
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61124
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
51702
61125
 public :
51703
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
61126
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
51704
61127
  typedef CT_ConversionName CExprResolveExpr;
51705
61128
 
51706
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61129
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
51707
61130
 public :
51708
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
51709
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61131
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61132
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51710
61133
};
51711
61134
 
 
61135
/** \class CT_QualName CTree.h Puma/CTree.h
 
61136
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
51712
61137
 
51713
 
#line 51714 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61138
#line 61139 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
51714
61139
} // closed Puma
 
61140
class CCExprResolve;
 
61141
class CExprResolve;
51715
61142
class WinIfExists;
51716
61143
class WinImportHandler;
51717
61144
class WinMacros;
51718
 
class CMatchSyntax;
51719
 
class ExtGnu;
 
61145
class WinAsm;
 
61146
class WinDeclSpecs;
 
61147
class WinMemberExplSpec;
 
61148
class WinTypeKeywords;
 
61149
class WinFriend;
51720
61150
class ExtAC;
51721
61151
class ExtACBuilderCoupling;
51722
61152
class ExtACSyntaxCoupling;
51723
61153
class ExtACTree;
51724
61154
class ExtACKeywords;
51725
 
class WinAsm;
51726
 
class WinDeclSpecs;
51727
 
class WinMemberExplSpec;
51728
 
class WinTypeKeywords;
 
61155
class ExtGnu;
51729
61156
class PragmaOnceUnitState;
51730
61157
class PragmaOnce;
51731
 
class CCExprResolve;
51732
 
class CExprResolve;
51733
 
namespace Puma {
51734
 
 
51735
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61158
class CMatchSyntax;
 
61159
namespace Puma {
 
61160
 
 
61161
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61162
 
 
61163
#line 61164 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61164
} // closed Puma
 
61165
 
 
61166
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61167
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61168
#include "CCExprResolveH.ah"
 
61169
#endif
 
61170
namespace Puma {
 
61171
 
 
61172
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61173
 
 
61174
#line 61175 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61175
} // closed Puma
 
61176
 
 
61177
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61178
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61179
#include "CExprResolveH.ah"
 
61180
#endif
 
61181
namespace Puma {
 
61182
 
 
61183
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51736
61184
class CT_QualName : public CT_SimpleName {
51737
 
#line 51738 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61185
#line 61186 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61186
  friend class ::CCExprResolve;
 
61187
  friend class ::CExprResolve;
51738
61188
  friend class ::WinIfExists;
51739
61189
  friend class ::WinImportHandler;
51740
61190
  friend class ::WinMacros;
51741
 
  friend class ::CMatchSyntax;
51742
 
  friend class ::ExtGnu;
 
61191
  friend class ::WinAsm;
 
61192
  friend class ::WinDeclSpecs;
 
61193
  friend class ::WinMemberExplSpec;
 
61194
  friend class ::WinTypeKeywords;
 
61195
  friend class ::WinFriend;
51743
61196
  friend class ::ExtAC;
51744
61197
  friend class ::ExtACBuilderCoupling;
51745
61198
  friend class ::ExtACSyntaxCoupling;
51746
61199
  friend class ::ExtACTree;
51747
61200
  friend class ::ExtACKeywords;
51748
 
  friend class ::WinAsm;
51749
 
  friend class ::WinDeclSpecs;
51750
 
  friend class ::WinMemberExplSpec;
51751
 
  friend class ::WinTypeKeywords;
 
61201
  friend class ::ExtGnu;
51752
61202
  friend class ::PragmaOnceUnitState;
51753
61203
  friend class ::PragmaOnce;
51754
 
  friend class ::CCExprResolve;
51755
 
  friend class ::CExprResolve;
 
61204
  friend class ::CMatchSyntax;
51756
61205
 
51757
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61206
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51758
61207
 
51759
61208
public:
 
61209
  /** Constructor.
 
61210
   *  \param size The initial number sub-names plus separators. */
51760
61211
  CT_QualName (int size = 3) : 
51761
61212
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
61213
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51762
61214
  static const char *NodeId ();
 
61215
  /** Get the name of the node. Can be compared with NodeId(). */
51763
61216
  const char *NodeName () const { return NodeId (); }
51764
 
  void print (ostream &) const;
 
61217
  /** Print the qualified name on the given stream. 
 
61218
   *  \param os The output stream. */
 
61219
  void print (ostream &os) const;
 
61220
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
51765
61221
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
61222
  /** Get the string containing the last name of the qualified name. */
51766
61223
  const char *Text () const { return Name ()->Text (); }
 
61224
  /** Get the type of the last name. */
51767
61225
  CTypeInfo *Type () const { return Name ()->Type (); }
 
61226
  /** Get the value of the last name. */
51768
61227
  CExprValue *Value () const { return Name ()->Value (); }
 
61228
  /** Get the semantic value object of the last name. */
51769
61229
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
61230
  /** Get the semantic information object of the last name. */
51770
61231
  CSemObject *SemObject () const { return Name ()->SemObject (); }
51771
 
  // special new / delete with reusing memory
 
61232
 
 
61233
public:
 
61234
  /** Own new operator reusing memory. */
51772
61235
  void *operator new (size_t);
51773
 
  void  operator delete (void *);
 
61236
  /** Own delete operator. */
 
61237
  void operator delete (void *);
51774
61238
   private:
51775
61239
  typedef CT_QualName CCExprResolveExpr;
51776
61240
 
51777
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61241
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
51778
61242
 public :
51779
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
61243
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
51780
61244
  typedef CT_QualName CExprResolveExpr;
51781
61245
 
51782
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61246
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
51783
61247
 public :
51784
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
51785
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61248
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61249
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51786
61250
};
51787
61251
 
 
61252
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
61253
 *  Tree node representing a qualified name with introducing name separator,
 
61254
 *  e.g. ::X::Y::Z. */
51788
61255
 
51789
 
#line 51790 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61256
#line 61257 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
51790
61257
} // closed Puma
 
61258
class CCExprResolve;
 
61259
class CExprResolve;
51791
61260
class WinIfExists;
51792
61261
class WinImportHandler;
51793
61262
class WinMacros;
51794
 
class CMatchSyntax;
51795
 
class ExtGnu;
 
61263
class WinAsm;
 
61264
class WinDeclSpecs;
 
61265
class WinMemberExplSpec;
 
61266
class WinTypeKeywords;
 
61267
class WinFriend;
51796
61268
class ExtAC;
51797
61269
class ExtACBuilderCoupling;
51798
61270
class ExtACSyntaxCoupling;
51799
61271
class ExtACTree;
51800
61272
class ExtACKeywords;
51801
 
class WinAsm;
51802
 
class WinDeclSpecs;
51803
 
class WinMemberExplSpec;
51804
 
class WinTypeKeywords;
 
61273
class ExtGnu;
51805
61274
class PragmaOnceUnitState;
51806
61275
class PragmaOnce;
51807
 
class CCExprResolve;
51808
 
class CExprResolve;
51809
 
namespace Puma {
51810
 
 
51811
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61276
class CMatchSyntax;
 
61277
namespace Puma {
 
61278
 
 
61279
#line 1090 "/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/Parser.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 1090 "/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/Parser.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 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51812
61302
class CT_RootQualName : public CT_QualName {
51813
 
#line 51814 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61303
#line 61304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61304
  friend class ::CCExprResolve;
 
61305
  friend class ::CExprResolve;
51814
61306
  friend class ::WinIfExists;
51815
61307
  friend class ::WinImportHandler;
51816
61308
  friend class ::WinMacros;
51817
 
  friend class ::CMatchSyntax;
51818
 
  friend class ::ExtGnu;
 
61309
  friend class ::WinAsm;
 
61310
  friend class ::WinDeclSpecs;
 
61311
  friend class ::WinMemberExplSpec;
 
61312
  friend class ::WinTypeKeywords;
 
61313
  friend class ::WinFriend;
51819
61314
  friend class ::ExtAC;
51820
61315
  friend class ::ExtACBuilderCoupling;
51821
61316
  friend class ::ExtACSyntaxCoupling;
51822
61317
  friend class ::ExtACTree;
51823
61318
  friend class ::ExtACKeywords;
51824
 
  friend class ::WinAsm;
51825
 
  friend class ::WinDeclSpecs;
51826
 
  friend class ::WinMemberExplSpec;
51827
 
  friend class ::WinTypeKeywords;
 
61319
  friend class ::ExtGnu;
51828
61320
  friend class ::PragmaOnceUnitState;
51829
61321
  friend class ::PragmaOnce;
51830
 
  friend class ::CCExprResolve;
51831
 
  friend class ::CExprResolve;
 
61322
  friend class ::CMatchSyntax;
51832
61323
 
51833
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61324
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51834
61325
 
51835
61326
public:
 
61327
  /** Constructor.
 
61328
   *  \param size Initial number of sub-name plus separator. */
51836
61329
  CT_RootQualName (int size = 2) : 
51837
61330
    CT_QualName (size) { AddProperties (INTRO); }
 
61331
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51838
61332
  static const char *NodeId ();
 
61333
  /** Get the name of the node. Can be compared with NodeId(). */
51839
61334
  const char *NodeName () const { return NodeId (); }
51840
 
  // special new / delete with reusing memory
 
61335
 
 
61336
public:
 
61337
  /** Own new operator reusing memory. */
51841
61338
  void *operator new (size_t);
51842
 
  void  operator delete (void *);
 
61339
  /** Own delete operator. */
 
61340
  void operator delete (void *);
51843
61341
   private:
51844
61342
  typedef CT_RootQualName CCExprResolveExpr;
51845
61343
 
51846
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61344
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
51847
61345
 public :
51848
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
61346
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
51849
61347
  typedef CT_RootQualName CExprResolveExpr;
51850
61348
 
51851
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61349
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
51852
61350
 public :
51853
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
51854
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61351
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61352
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51855
61353
};
51856
61354
 
 
61355
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
61356
 *  Tree node representing a binary expression, e.g. a+b. */
51857
61357
 
51858
 
#line 51859 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61358
#line 61359 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
51859
61359
} // closed Puma
 
61360
class CCExprResolve;
 
61361
class CExprResolve;
51860
61362
class WinIfExists;
51861
61363
class WinImportHandler;
51862
61364
class WinMacros;
51863
 
class CMatchSyntax;
51864
 
class ExtGnu;
 
61365
class WinAsm;
 
61366
class WinDeclSpecs;
 
61367
class WinMemberExplSpec;
 
61368
class WinTypeKeywords;
 
61369
class WinFriend;
51865
61370
class ExtAC;
51866
61371
class ExtACBuilderCoupling;
51867
61372
class ExtACSyntaxCoupling;
51868
61373
class ExtACTree;
51869
61374
class ExtACKeywords;
51870
 
class WinAsm;
51871
 
class WinDeclSpecs;
51872
 
class WinMemberExplSpec;
51873
 
class WinTypeKeywords;
 
61375
class ExtGnu;
51874
61376
class PragmaOnceUnitState;
51875
61377
class PragmaOnce;
51876
 
class CCExprResolve;
51877
 
class CExprResolve;
51878
 
namespace Puma {
51879
 
 
51880
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51881
 
class CT_BinaryExpr : public CT_Expression {
51882
 
#line 51883 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61378
class CMatchSyntax;
 
61379
namespace Puma {
 
61380
 
 
61381
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61382
 
 
61383
#line 61384 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61384
} // closed Puma
 
61385
 
 
61386
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61387
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61388
#include "CCExprResolveH.ah"
 
61389
#endif
 
61390
namespace Puma {
 
61391
 
 
61392
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61393
 
 
61394
#line 61395 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61395
} // closed Puma
 
61396
 
 
61397
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61398
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61399
#include "CExprResolveH.ah"
 
61400
#endif
 
61401
namespace Puma {
 
61402
 
 
61403
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61404
class CT_BinaryExpr : public CT_Call {
 
61405
#line 61406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61406
  friend class ::CCExprResolve;
 
61407
  friend class ::CExprResolve;
51883
61408
  friend class ::WinIfExists;
51884
61409
  friend class ::WinImportHandler;
51885
61410
  friend class ::WinMacros;
51886
 
  friend class ::CMatchSyntax;
51887
 
  friend class ::ExtGnu;
 
61411
  friend class ::WinAsm;
 
61412
  friend class ::WinDeclSpecs;
 
61413
  friend class ::WinMemberExplSpec;
 
61414
  friend class ::WinTypeKeywords;
 
61415
  friend class ::WinFriend;
51888
61416
  friend class ::ExtAC;
51889
61417
  friend class ::ExtACBuilderCoupling;
51890
61418
  friend class ::ExtACSyntaxCoupling;
51891
61419
  friend class ::ExtACTree;
51892
61420
  friend class ::ExtACKeywords;
51893
 
  friend class ::WinAsm;
51894
 
  friend class ::WinDeclSpecs;
51895
 
  friend class ::WinMemberExplSpec;
51896
 
  friend class ::WinTypeKeywords;
 
61421
  friend class ::ExtGnu;
51897
61422
  friend class ::PragmaOnceUnitState;
51898
61423
  friend class ::PragmaOnce;
51899
 
  friend class ::CCExprResolve;
51900
 
  friend class ::CExprResolve;
 
61424
  friend class ::CMatchSyntax;
51901
61425
 
51902
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61426
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51903
61427
 
51904
61428
  CTree *sons[3]; // expr, oper, expr
51905
61429
 
51906
61430
public:
 
61431
  /** Constructor. 
 
61432
   *  \param l Left hand side of the expression. 
 
61433
   *  \param o The operator token. 
 
61434
   *  \param r Right hand side of the expression. */
51907
61435
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
51908
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
61436
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
51909
61437
  }
 
61438
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51910
61439
  static const char *NodeId ();
 
61440
  /** Get the name of the node. Can be compared with NodeId(). */
51911
61441
  const char *NodeName () const { return NodeId (); }
 
61442
  /** Get the number of sons. */
51912
61443
  int Sons () const { return 3; }
 
61444
  /** Get the n-th son.
 
61445
   *  \param n The index of the son.
 
61446
   *  \return The n-th son or NULL. */
51913
61447
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
61448
  /** Replace a son.
 
61449
   *  \param old_son The son to replace.
 
61450
   *  \param new_son The new son. */
51914
61451
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
51915
61452
    CTree::ReplaceSon (sons, 3, old_son, new_son);
51916
61453
  }
51917
61454
   private:
51918
61455
  typedef CT_BinaryExpr CCExprResolveExpr;
51919
61456
 
51920
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61457
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
51921
61458
 public :
51922
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
61459
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
51923
61460
  typedef CT_BinaryExpr CExprResolveExpr;
51924
61461
 
51925
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61462
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
51926
61463
 public :
51927
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
51928
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61464
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61465
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51929
61466
};
51930
61467
 
 
61468
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
61469
 *  Tree node representing a member pointer expression, e.g. a->b. */
51931
61470
 
51932
 
#line 51933 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61471
#line 61472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
51933
61472
} // closed Puma
 
61473
class CCExprResolve;
 
61474
class CExprResolve;
51934
61475
class WinIfExists;
51935
61476
class WinImportHandler;
51936
61477
class WinMacros;
51937
 
class CMatchSyntax;
51938
 
class ExtGnu;
 
61478
class WinAsm;
 
61479
class WinDeclSpecs;
 
61480
class WinMemberExplSpec;
 
61481
class WinTypeKeywords;
 
61482
class WinFriend;
51939
61483
class ExtAC;
51940
61484
class ExtACBuilderCoupling;
51941
61485
class ExtACSyntaxCoupling;
51942
61486
class ExtACTree;
51943
61487
class ExtACKeywords;
51944
 
class WinAsm;
51945
 
class WinDeclSpecs;
51946
 
class WinMemberExplSpec;
51947
 
class WinTypeKeywords;
 
61488
class ExtGnu;
51948
61489
class PragmaOnceUnitState;
51949
61490
class PragmaOnce;
51950
 
class CCExprResolve;
51951
 
class CExprResolve;
51952
 
namespace Puma {
51953
 
 
51954
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51955
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
51956
 
#line 51957 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61491
class CMatchSyntax;
 
61492
namespace Puma {
 
61493
 
 
61494
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61495
 
 
61496
#line 61497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61497
} // closed Puma
 
61498
 
 
61499
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61500
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61501
#include "CCExprResolveH.ah"
 
61502
#endif
 
61503
namespace Puma {
 
61504
 
 
61505
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61506
 
 
61507
#line 61508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61508
} // closed Puma
 
61509
 
 
61510
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61511
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61512
#include "CExprResolveH.ah"
 
61513
#endif
 
61514
namespace Puma {
 
61515
 
 
61516
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61517
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
61518
#line 61519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61519
  friend class ::CCExprResolve;
 
61520
  friend class ::CExprResolve;
51957
61521
  friend class ::WinIfExists;
51958
61522
  friend class ::WinImportHandler;
51959
61523
  friend class ::WinMacros;
51960
 
  friend class ::CMatchSyntax;
51961
 
  friend class ::ExtGnu;
 
61524
  friend class ::WinAsm;
 
61525
  friend class ::WinDeclSpecs;
 
61526
  friend class ::WinMemberExplSpec;
 
61527
  friend class ::WinTypeKeywords;
 
61528
  friend class ::WinFriend;
51962
61529
  friend class ::ExtAC;
51963
61530
  friend class ::ExtACBuilderCoupling;
51964
61531
  friend class ::ExtACSyntaxCoupling;
51965
61532
  friend class ::ExtACTree;
51966
61533
  friend class ::ExtACKeywords;
51967
 
  friend class ::WinAsm;
51968
 
  friend class ::WinDeclSpecs;
51969
 
  friend class ::WinMemberExplSpec;
51970
 
  friend class ::WinTypeKeywords;
 
61534
  friend class ::ExtGnu;
51971
61535
  friend class ::PragmaOnceUnitState;
51972
61536
  friend class ::PragmaOnce;
51973
 
  friend class ::CCExprResolve;
51974
 
  friend class ::CExprResolve;
51975
 
 
51976
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
51977
 
 
 
61537
  friend class ::CMatchSyntax;
 
61538
 
 
61539
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61540
 
 
61541
  CTree *sons[3]; // expr, oper, expr
 
61542
  
51978
61543
public:
51979
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
51980
 
    CT_BinaryExpr (e, o, i) {}
 
61544
  /** Constructor.
 
61545
   *  \param e Expression on which to call the member.
 
61546
   *  \param o The arrow operator token.
 
61547
   *  \param i The member name. */
 
61548
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
61549
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
61550
  }
 
61551
  /** Get the identifier for this node type. Can be compared with NodeName(). */
51981
61552
  static const char *NodeId ();
 
61553
  /** Get the name of the node. Can be compared with NodeId(). */
51982
61554
  const char *NodeName () const { return NodeId (); }
51983
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
61555
  /** Get the number of sons. */
 
61556
  int Sons () const { return 3; }
 
61557
  /** Get the n-th son.
 
61558
   *  \param n The index of the son.
 
61559
   *  \return The n-th son or NULL. */
 
61560
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
61561
  /** Replace a son.
 
61562
   *  \param old_son The son to replace.
 
61563
   *  \param new_son The new son. */
 
61564
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
61565
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
61566
  }
51984
61567
   private:
51985
61568
  typedef CT_MembPtrExpr CCExprResolveExpr;
51986
61569
 
51987
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61570
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
51988
61571
 public :
51989
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
61572
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
51990
61573
  typedef CT_MembPtrExpr CExprResolveExpr;
51991
61574
 
51992
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61575
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
51993
61576
 public :
51994
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
51995
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61577
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61578
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
51996
61579
};
51997
61580
 
 
61581
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
61582
 *  Tree node representing a member reference expression, e.g. a.b. */
51998
61583
 
51999
 
#line 52000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61584
#line 61585 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
52000
61585
} // closed Puma
 
61586
class CCExprResolve;
 
61587
class CExprResolve;
52001
61588
class WinIfExists;
52002
61589
class WinImportHandler;
52003
61590
class WinMacros;
52004
 
class CMatchSyntax;
52005
 
class ExtGnu;
 
61591
class WinAsm;
 
61592
class WinDeclSpecs;
 
61593
class WinMemberExplSpec;
 
61594
class WinTypeKeywords;
 
61595
class WinFriend;
52006
61596
class ExtAC;
52007
61597
class ExtACBuilderCoupling;
52008
61598
class ExtACSyntaxCoupling;
52009
61599
class ExtACTree;
52010
61600
class ExtACKeywords;
52011
 
class WinAsm;
52012
 
class WinDeclSpecs;
52013
 
class WinMemberExplSpec;
52014
 
class WinTypeKeywords;
 
61601
class ExtGnu;
52015
61602
class PragmaOnceUnitState;
52016
61603
class PragmaOnce;
52017
 
class CCExprResolve;
52018
 
class CExprResolve;
52019
 
namespace Puma {
52020
 
 
52021
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61604
class CMatchSyntax;
 
61605
namespace Puma {
 
61606
 
 
61607
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61608
 
 
61609
#line 61610 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61610
} // closed Puma
 
61611
 
 
61612
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61613
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61614
#include "CCExprResolveH.ah"
 
61615
#endif
 
61616
namespace Puma {
 
61617
 
 
61618
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61619
 
 
61620
#line 61621 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61621
} // closed Puma
 
61622
 
 
61623
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61624
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61625
#include "CExprResolveH.ah"
 
61626
#endif
 
61627
namespace Puma {
 
61628
 
 
61629
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52022
61630
class CT_MembRefExpr : public CT_MembPtrExpr {
52023
 
#line 52024 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61631
#line 61632 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61632
  friend class ::CCExprResolve;
 
61633
  friend class ::CExprResolve;
52024
61634
  friend class ::WinIfExists;
52025
61635
  friend class ::WinImportHandler;
52026
61636
  friend class ::WinMacros;
52027
 
  friend class ::CMatchSyntax;
52028
 
  friend class ::ExtGnu;
 
61637
  friend class ::WinAsm;
 
61638
  friend class ::WinDeclSpecs;
 
61639
  friend class ::WinMemberExplSpec;
 
61640
  friend class ::WinTypeKeywords;
 
61641
  friend class ::WinFriend;
52029
61642
  friend class ::ExtAC;
52030
61643
  friend class ::ExtACBuilderCoupling;
52031
61644
  friend class ::ExtACSyntaxCoupling;
52032
61645
  friend class ::ExtACTree;
52033
61646
  friend class ::ExtACKeywords;
52034
 
  friend class ::WinAsm;
52035
 
  friend class ::WinDeclSpecs;
52036
 
  friend class ::WinMemberExplSpec;
52037
 
  friend class ::WinTypeKeywords;
 
61647
  friend class ::ExtGnu;
52038
61648
  friend class ::PragmaOnceUnitState;
52039
61649
  friend class ::PragmaOnce;
52040
 
  friend class ::CCExprResolve;
52041
 
  friend class ::CExprResolve;
 
61650
  friend class ::CMatchSyntax;
52042
61651
 
52043
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61652
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52044
61653
 
52045
61654
public:
 
61655
  /** Constructor.
 
61656
   *  \param e Expression on which to call the member.
 
61657
   *  \param o The dot operator.
 
61658
   *  \param i The member name. */
52046
61659
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
52047
61660
    CT_MembPtrExpr (e, o, i) {}
 
61661
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52048
61662
  static const char *NodeId ();
 
61663
  /** Get the name of the node. Can be compared with NodeId(). */
52049
61664
  const char *NodeName () const { return NodeId (); }
52050
61665
   private:
52051
61666
  typedef CT_MembRefExpr CCExprResolveExpr;
52052
61667
 
52053
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61668
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
52054
61669
 public :
52055
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
61670
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
52056
61671
  typedef CT_MembRefExpr CExprResolveExpr;
52057
61672
 
52058
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61673
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
52059
61674
 public :
52060
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
52061
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61675
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61676
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52062
61677
};
52063
61678
 
 
61679
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
61680
 *  Base class for tree nodes representing unary expressions. */
52064
61681
 
52065
 
#line 52066 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61682
#line 61683 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
52066
61683
} // closed Puma
 
61684
class CCExprResolve;
 
61685
class CExprResolve;
52067
61686
class WinIfExists;
52068
61687
class WinImportHandler;
52069
61688
class WinMacros;
52070
 
class CMatchSyntax;
52071
 
class ExtGnu;
 
61689
class WinAsm;
 
61690
class WinDeclSpecs;
 
61691
class WinMemberExplSpec;
 
61692
class WinTypeKeywords;
 
61693
class WinFriend;
52072
61694
class ExtAC;
52073
61695
class ExtACBuilderCoupling;
52074
61696
class ExtACSyntaxCoupling;
52075
61697
class ExtACTree;
52076
61698
class ExtACKeywords;
52077
 
class WinAsm;
52078
 
class WinDeclSpecs;
52079
 
class WinMemberExplSpec;
52080
 
class WinTypeKeywords;
 
61699
class ExtGnu;
52081
61700
class PragmaOnceUnitState;
52082
61701
class PragmaOnce;
52083
 
class CCExprResolve;
52084
 
class CExprResolve;
52085
 
namespace Puma {
52086
 
 
52087
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52088
 
class CT_UnaryExpr : public CT_Expression {
52089
 
#line 52090 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61702
class CMatchSyntax;
 
61703
namespace Puma {
 
61704
 
 
61705
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61706
 
 
61707
#line 61708 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61708
} // closed Puma
 
61709
 
 
61710
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61711
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61712
#include "CCExprResolveH.ah"
 
61713
#endif
 
61714
namespace Puma {
 
61715
 
 
61716
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61717
 
 
61718
#line 61719 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61719
} // closed Puma
 
61720
 
 
61721
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61722
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61723
#include "CExprResolveH.ah"
 
61724
#endif
 
61725
namespace Puma {
 
61726
 
 
61727
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61728
class CT_UnaryExpr : public CT_Call {
 
61729
#line 61730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61730
  friend class ::CCExprResolve;
 
61731
  friend class ::CExprResolve;
52090
61732
  friend class ::WinIfExists;
52091
61733
  friend class ::WinImportHandler;
52092
61734
  friend class ::WinMacros;
52093
 
  friend class ::CMatchSyntax;
52094
 
  friend class ::ExtGnu;
 
61735
  friend class ::WinAsm;
 
61736
  friend class ::WinDeclSpecs;
 
61737
  friend class ::WinMemberExplSpec;
 
61738
  friend class ::WinTypeKeywords;
 
61739
  friend class ::WinFriend;
52095
61740
  friend class ::ExtAC;
52096
61741
  friend class ::ExtACBuilderCoupling;
52097
61742
  friend class ::ExtACSyntaxCoupling;
52098
61743
  friend class ::ExtACTree;
52099
61744
  friend class ::ExtACKeywords;
52100
 
  friend class ::WinAsm;
52101
 
  friend class ::WinDeclSpecs;
52102
 
  friend class ::WinMemberExplSpec;
52103
 
  friend class ::WinTypeKeywords;
 
61745
  friend class ::ExtGnu;
52104
61746
  friend class ::PragmaOnceUnitState;
52105
61747
  friend class ::PragmaOnce;
52106
 
  friend class ::CCExprResolve;
52107
 
  friend class ::CExprResolve;
 
61748
  friend class ::CMatchSyntax;
52108
61749
 
52109
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61750
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52110
61751
 
52111
61752
  CTree *sons[2]; // oper, expr
52112
61753
 
52113
61754
public:
52114
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
61755
  /** Constructor.
 
61756
   *  \param o The unary operator.
 
61757
   *  \param e The expression on which the operator is invoked. */
 
61758
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
61759
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52115
61760
  static const char *NodeId ();
 
61761
  /** Get the name of the node. Can be compared with NodeId(). */
52116
61762
  const char *NodeName () const { return NodeId (); }
 
61763
  /** Get the number of sons. */
52117
61764
  int Sons () const { return 2; }
 
61765
  /** Get the n-th son.
 
61766
   *  \param n The index of the son.
 
61767
   *  \return The n-th son or NULL. */
52118
61768
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
61769
  /** Replace a son.
 
61770
   *  \param old_son The son to replace.
 
61771
   *  \param new_son The new son. */
52119
61772
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52120
61773
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52121
61774
  }
 
61775
  /** Get the expression node. */
52122
61776
  CTree *Expr () const { return sons[1]; }
52123
61777
   private:
52124
61778
  typedef CT_UnaryExpr CCExprResolveExpr;
52125
61779
 
52126
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61780
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
52127
61781
 public :
52128
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
61782
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
52129
61783
  typedef CT_UnaryExpr CExprResolveExpr;
52130
61784
 
52131
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61785
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
52132
61786
 public :
52133
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
52134
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61787
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61788
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52135
61789
};
52136
61790
 
 
61791
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
61792
 *  Tree node representing a postfix expression, e.g. a++. */
52137
61793
 
52138
 
#line 52139 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61794
#line 61795 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
52139
61795
} // closed Puma
 
61796
class CCExprResolve;
 
61797
class CExprResolve;
52140
61798
class WinIfExists;
52141
61799
class WinImportHandler;
52142
61800
class WinMacros;
52143
 
class CMatchSyntax;
52144
 
class ExtGnu;
 
61801
class WinAsm;
 
61802
class WinDeclSpecs;
 
61803
class WinMemberExplSpec;
 
61804
class WinTypeKeywords;
 
61805
class WinFriend;
52145
61806
class ExtAC;
52146
61807
class ExtACBuilderCoupling;
52147
61808
class ExtACSyntaxCoupling;
52148
61809
class ExtACTree;
52149
61810
class ExtACKeywords;
52150
 
class WinAsm;
52151
 
class WinDeclSpecs;
52152
 
class WinMemberExplSpec;
52153
 
class WinTypeKeywords;
 
61811
class ExtGnu;
52154
61812
class PragmaOnceUnitState;
52155
61813
class PragmaOnce;
52156
 
class CCExprResolve;
52157
 
class CExprResolve;
52158
 
namespace Puma {
52159
 
 
52160
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61814
class CMatchSyntax;
 
61815
namespace Puma {
 
61816
 
 
61817
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61818
 
 
61819
#line 61820 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61820
} // closed Puma
 
61821
 
 
61822
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61823
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61824
#include "CCExprResolveH.ah"
 
61825
#endif
 
61826
namespace Puma {
 
61827
 
 
61828
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61829
 
 
61830
#line 61831 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61831
} // closed Puma
 
61832
 
 
61833
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61834
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61835
#include "CExprResolveH.ah"
 
61836
#endif
 
61837
namespace Puma {
 
61838
 
 
61839
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52161
61840
class CT_PostfixExpr : public CT_UnaryExpr {
52162
 
#line 52163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61841
#line 61842 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61842
  friend class ::CCExprResolve;
 
61843
  friend class ::CExprResolve;
52163
61844
  friend class ::WinIfExists;
52164
61845
  friend class ::WinImportHandler;
52165
61846
  friend class ::WinMacros;
52166
 
  friend class ::CMatchSyntax;
52167
 
  friend class ::ExtGnu;
 
61847
  friend class ::WinAsm;
 
61848
  friend class ::WinDeclSpecs;
 
61849
  friend class ::WinMemberExplSpec;
 
61850
  friend class ::WinTypeKeywords;
 
61851
  friend class ::WinFriend;
52168
61852
  friend class ::ExtAC;
52169
61853
  friend class ::ExtACBuilderCoupling;
52170
61854
  friend class ::ExtACSyntaxCoupling;
52171
61855
  friend class ::ExtACTree;
52172
61856
  friend class ::ExtACKeywords;
52173
 
  friend class ::WinAsm;
52174
 
  friend class ::WinDeclSpecs;
52175
 
  friend class ::WinMemberExplSpec;
52176
 
  friend class ::WinTypeKeywords;
 
61857
  friend class ::ExtGnu;
52177
61858
  friend class ::PragmaOnceUnitState;
52178
61859
  friend class ::PragmaOnce;
52179
 
  friend class ::CCExprResolve;
52180
 
  friend class ::CExprResolve;
 
61860
  friend class ::CMatchSyntax;
52181
61861
 
52182
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61862
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52183
61863
 
52184
61864
public:
 
61865
  /** Constructor.
 
61866
   *  \param e The expression on which to invoke the operator. 
 
61867
   *  \param o The postfix operator. */
52185
61868
  CT_PostfixExpr (CTree *e, CTree *o) :
52186
61869
    CT_UnaryExpr (e, o) {}
 
61870
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52187
61871
  static const char *NodeId ();
 
61872
  /** Get the name of the node. Can be compared with NodeId(). */
52188
61873
  const char *NodeName () const { return NodeId (); }
52189
61874
   private:
52190
61875
  typedef CT_PostfixExpr CCExprResolveExpr;
52191
61876
 
52192
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61877
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
52193
61878
 public :
52194
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
61879
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
52195
61880
  typedef CT_PostfixExpr CExprResolveExpr;
52196
61881
 
52197
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61882
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
52198
61883
 public :
52199
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
52200
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61884
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61885
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52201
61886
};
52202
61887
 
 
61888
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
61889
 *  Tree node representing an address expression, e.g. &a. */
52203
61890
 
52204
 
#line 52205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61891
#line 61892 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
52205
61892
} // closed Puma
 
61893
class CCExprResolve;
 
61894
class CExprResolve;
52206
61895
class WinIfExists;
52207
61896
class WinImportHandler;
52208
61897
class WinMacros;
52209
 
class CMatchSyntax;
52210
 
class ExtGnu;
 
61898
class WinAsm;
 
61899
class WinDeclSpecs;
 
61900
class WinMemberExplSpec;
 
61901
class WinTypeKeywords;
 
61902
class WinFriend;
52211
61903
class ExtAC;
52212
61904
class ExtACBuilderCoupling;
52213
61905
class ExtACSyntaxCoupling;
52214
61906
class ExtACTree;
52215
61907
class ExtACKeywords;
52216
 
class WinAsm;
52217
 
class WinDeclSpecs;
52218
 
class WinMemberExplSpec;
52219
 
class WinTypeKeywords;
 
61908
class ExtGnu;
52220
61909
class PragmaOnceUnitState;
52221
61910
class PragmaOnce;
52222
 
class CCExprResolve;
52223
 
class CExprResolve;
52224
 
namespace Puma {
52225
 
 
52226
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61911
class CMatchSyntax;
 
61912
namespace Puma {
 
61913
 
 
61914
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61915
 
 
61916
#line 61917 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61917
} // closed Puma
 
61918
 
 
61919
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61920
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
61921
#include "CCExprResolveH.ah"
 
61922
#endif
 
61923
namespace Puma {
 
61924
 
 
61925
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61926
 
 
61927
#line 61928 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61928
} // closed Puma
 
61929
 
 
61930
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61931
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
61932
#include "CExprResolveH.ah"
 
61933
#endif
 
61934
namespace Puma {
 
61935
 
 
61936
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52227
61937
class CT_AddrExpr : public CT_UnaryExpr {
52228
 
#line 52229 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61938
#line 61939 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
61939
  friend class ::CCExprResolve;
 
61940
  friend class ::CExprResolve;
52229
61941
  friend class ::WinIfExists;
52230
61942
  friend class ::WinImportHandler;
52231
61943
  friend class ::WinMacros;
52232
 
  friend class ::CMatchSyntax;
52233
 
  friend class ::ExtGnu;
 
61944
  friend class ::WinAsm;
 
61945
  friend class ::WinDeclSpecs;
 
61946
  friend class ::WinMemberExplSpec;
 
61947
  friend class ::WinTypeKeywords;
 
61948
  friend class ::WinFriend;
52234
61949
  friend class ::ExtAC;
52235
61950
  friend class ::ExtACBuilderCoupling;
52236
61951
  friend class ::ExtACSyntaxCoupling;
52237
61952
  friend class ::ExtACTree;
52238
61953
  friend class ::ExtACKeywords;
52239
 
  friend class ::WinAsm;
52240
 
  friend class ::WinDeclSpecs;
52241
 
  friend class ::WinMemberExplSpec;
52242
 
  friend class ::WinTypeKeywords;
 
61954
  friend class ::ExtGnu;
52243
61955
  friend class ::PragmaOnceUnitState;
52244
61956
  friend class ::PragmaOnce;
52245
 
  friend class ::CCExprResolve;
52246
 
  friend class ::CExprResolve;
 
61957
  friend class ::CMatchSyntax;
52247
61958
 
52248
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61959
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52249
61960
 
52250
61961
public:
 
61962
  /** Constructor.
 
61963
   *  \param o The address operator, i.e. '&'.
 
61964
   *  \param e The expression from which to take the address. */
52251
61965
  CT_AddrExpr (CTree *o, CTree *e) :
52252
61966
    CT_UnaryExpr (o, e) {}
 
61967
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52253
61968
  static const char *NodeId ();
 
61969
  /** Get the name of the node. Can be compared with NodeId(). */
52254
61970
  const char *NodeName () const { return NodeId (); }
52255
61971
   private:
52256
61972
  typedef CT_AddrExpr CCExprResolveExpr;
52257
61973
 
52258
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
61974
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
52259
61975
 public :
52260
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
61976
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
52261
61977
  typedef CT_AddrExpr CExprResolveExpr;
52262
61978
 
52263
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
61979
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
52264
61980
 public :
52265
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
52266
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
61981
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
61982
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52267
61983
};
52268
61984
 
 
61985
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
61986
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
52269
61987
 
52270
 
#line 52271 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
61988
#line 61989 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
52271
61989
} // closed Puma
 
61990
class CCExprResolve;
 
61991
class CExprResolve;
52272
61992
class WinIfExists;
52273
61993
class WinImportHandler;
52274
61994
class WinMacros;
52275
 
class CMatchSyntax;
52276
 
class ExtGnu;
 
61995
class WinAsm;
 
61996
class WinDeclSpecs;
 
61997
class WinMemberExplSpec;
 
61998
class WinTypeKeywords;
 
61999
class WinFriend;
52277
62000
class ExtAC;
52278
62001
class ExtACBuilderCoupling;
52279
62002
class ExtACSyntaxCoupling;
52280
62003
class ExtACTree;
52281
62004
class ExtACKeywords;
52282
 
class WinAsm;
52283
 
class WinDeclSpecs;
52284
 
class WinMemberExplSpec;
52285
 
class WinTypeKeywords;
 
62005
class ExtGnu;
52286
62006
class PragmaOnceUnitState;
52287
62007
class PragmaOnce;
52288
 
class CCExprResolve;
52289
 
class CExprResolve;
52290
 
namespace Puma {
52291
 
 
52292
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62008
class CMatchSyntax;
 
62009
namespace Puma {
 
62010
 
 
62011
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62012
 
 
62013
#line 62014 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62014
} // closed Puma
 
62015
 
 
62016
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62017
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62018
#include "CCExprResolveH.ah"
 
62019
#endif
 
62020
namespace Puma {
 
62021
 
 
62022
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62023
 
 
62024
#line 62025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62025
} // closed Puma
 
62026
 
 
62027
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62028
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62029
#include "CExprResolveH.ah"
 
62030
#endif
 
62031
namespace Puma {
 
62032
 
 
62033
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52293
62034
class CT_DerefExpr : public CT_UnaryExpr {
52294
 
#line 52295 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62035
#line 62036 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62036
  friend class ::CCExprResolve;
 
62037
  friend class ::CExprResolve;
52295
62038
  friend class ::WinIfExists;
52296
62039
  friend class ::WinImportHandler;
52297
62040
  friend class ::WinMacros;
52298
 
  friend class ::CMatchSyntax;
52299
 
  friend class ::ExtGnu;
 
62041
  friend class ::WinAsm;
 
62042
  friend class ::WinDeclSpecs;
 
62043
  friend class ::WinMemberExplSpec;
 
62044
  friend class ::WinTypeKeywords;
 
62045
  friend class ::WinFriend;
52300
62046
  friend class ::ExtAC;
52301
62047
  friend class ::ExtACBuilderCoupling;
52302
62048
  friend class ::ExtACSyntaxCoupling;
52303
62049
  friend class ::ExtACTree;
52304
62050
  friend class ::ExtACKeywords;
52305
 
  friend class ::WinAsm;
52306
 
  friend class ::WinDeclSpecs;
52307
 
  friend class ::WinMemberExplSpec;
52308
 
  friend class ::WinTypeKeywords;
 
62051
  friend class ::ExtGnu;
52309
62052
  friend class ::PragmaOnceUnitState;
52310
62053
  friend class ::PragmaOnce;
52311
 
  friend class ::CCExprResolve;
52312
 
  friend class ::CExprResolve;
 
62054
  friend class ::CMatchSyntax;
52313
62055
 
52314
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62056
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52315
62057
 
52316
62058
public:
 
62059
  /** Constructor.
 
62060
   *  \param o The dereferencing operator, i.e. '*'.
 
62061
   *  \param e The expression to dereference. */
52317
62062
  CT_DerefExpr (CTree *o, CTree *e) :
52318
62063
    CT_UnaryExpr (o, e) {}
 
62064
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52319
62065
  static const char *NodeId ();
 
62066
  /** Get the name of the node. Can be compared with NodeId(). */
52320
62067
  const char *NodeName () const { return NodeId (); }
52321
62068
   private:
52322
62069
  typedef CT_DerefExpr CCExprResolveExpr;
52323
62070
 
52324
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
62071
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
52325
62072
 public :
52326
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
62073
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
52327
62074
  typedef CT_DerefExpr CExprResolveExpr;
52328
62075
 
52329
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
62076
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
52330
62077
 public :
52331
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
52332
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62078
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
62079
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52333
62080
};
52334
62081
 
 
62082
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
62083
 *  Tree node representing a delete expression, e.g. delete a. */
52335
62084
 
52336
 
#line 52337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62085
#line 62086 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
52337
62086
} // closed Puma
 
62087
class CCExprResolve;
 
62088
class CExprResolve;
52338
62089
class WinIfExists;
52339
62090
class WinImportHandler;
52340
62091
class WinMacros;
52341
 
class CMatchSyntax;
52342
 
class ExtGnu;
 
62092
class WinAsm;
 
62093
class WinDeclSpecs;
 
62094
class WinMemberExplSpec;
 
62095
class WinTypeKeywords;
 
62096
class WinFriend;
52343
62097
class ExtAC;
52344
62098
class ExtACBuilderCoupling;
52345
62099
class ExtACSyntaxCoupling;
52346
62100
class ExtACTree;
52347
62101
class ExtACKeywords;
52348
 
class WinAsm;
52349
 
class WinDeclSpecs;
52350
 
class WinMemberExplSpec;
52351
 
class WinTypeKeywords;
 
62102
class ExtGnu;
52352
62103
class PragmaOnceUnitState;
52353
62104
class PragmaOnce;
52354
 
class CCExprResolve;
52355
 
class CExprResolve;
52356
 
namespace Puma {
52357
 
 
52358
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62105
class CMatchSyntax;
 
62106
namespace Puma {
 
62107
 
 
62108
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62109
 
 
62110
#line 62111 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62111
} // closed Puma
 
62112
 
 
62113
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62114
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62115
#include "CCExprResolveH.ah"
 
62116
#endif
 
62117
namespace Puma {
 
62118
 
 
62119
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62120
 
 
62121
#line 62122 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62122
} // closed Puma
 
62123
 
 
62124
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62125
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62126
#include "CExprResolveH.ah"
 
62127
#endif
 
62128
namespace Puma {
 
62129
 
 
62130
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52359
62131
class CT_DeleteExpr : public CT_Expression, public CSemObject {
52360
 
#line 52361 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62132
#line 62133 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62133
  friend class ::CCExprResolve;
 
62134
  friend class ::CExprResolve;
52361
62135
  friend class ::WinIfExists;
52362
62136
  friend class ::WinImportHandler;
52363
62137
  friend class ::WinMacros;
52364
 
  friend class ::CMatchSyntax;
52365
 
  friend class ::ExtGnu;
 
62138
  friend class ::WinAsm;
 
62139
  friend class ::WinDeclSpecs;
 
62140
  friend class ::WinMemberExplSpec;
 
62141
  friend class ::WinTypeKeywords;
 
62142
  friend class ::WinFriend;
52366
62143
  friend class ::ExtAC;
52367
62144
  friend class ::ExtACBuilderCoupling;
52368
62145
  friend class ::ExtACSyntaxCoupling;
52369
62146
  friend class ::ExtACTree;
52370
62147
  friend class ::ExtACKeywords;
52371
 
  friend class ::WinAsm;
52372
 
  friend class ::WinDeclSpecs;
52373
 
  friend class ::WinMemberExplSpec;
52374
 
  friend class ::WinTypeKeywords;
 
62148
  friend class ::ExtGnu;
52375
62149
  friend class ::PragmaOnceUnitState;
52376
62150
  friend class ::PragmaOnce;
52377
 
  friend class ::CCExprResolve;
52378
 
  friend class ::CExprResolve;
 
62151
  friend class ::CMatchSyntax;
52379
62152
 
52380
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62153
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52381
62154
 
52382
62155
  CTree *sons[2]; // oper, expr
52383
62156
 
52384
62157
public:
52385
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
62158
  /** Constructor.
 
62159
   *  \param op The delete operator.
 
62160
   *  \param e The expression representing the object to delete. */
 
62161
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
62162
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52386
62163
  static const char *NodeId ();
 
62164
  /** Get the name of the node. Can be compared with NodeId(). */
52387
62165
  const char *NodeName () const { return NodeId (); }
 
62166
  /** Get the number of sons. */
52388
62167
  int Sons () const { return 2; }
 
62168
  /** Get the n-th son.
 
62169
   *  \param n The index of the son.
 
62170
   *  \return The n-th son or NULL. */
52389
62171
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
62172
  /** Replace a son.
 
62173
   *  \param old_son The son to replace.
 
62174
   *  \param new_son The new son. */
52390
62175
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52391
62176
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52392
62177
  }
 
62178
  /** Get the expression. */
52393
62179
  CTree *Expr () const { return sons[1]; }
 
62180
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
52394
62181
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
62182
  /** Get the semantic information object. */
52395
62183
  CSemObject *SemObject () const { return (CSemObject*)this; }
52396
62184
   private:
52397
62185
  typedef CT_DeleteExpr CCExprResolveExpr;
52398
62186
 
52399
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
62187
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
52400
62188
 public :
52401
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
62189
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
52402
62190
  typedef CT_DeleteExpr CExprResolveExpr;
52403
62191
 
52404
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
62192
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
52405
62193
 public :
52406
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
52407
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62194
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
62195
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52408
62196
};
52409
62197
 
 
62198
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
62199
 *  Tree node representing a new expression, e.g. new A(). */
52410
62200
 
52411
 
#line 52412 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62201
#line 62202 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
52412
62202
} // closed Puma
 
62203
class CCExprResolve;
 
62204
class CExprResolve;
52413
62205
class WinIfExists;
52414
62206
class WinImportHandler;
52415
62207
class WinMacros;
52416
 
class CMatchSyntax;
52417
 
class ExtGnu;
 
62208
class WinAsm;
 
62209
class WinDeclSpecs;
 
62210
class WinMemberExplSpec;
 
62211
class WinTypeKeywords;
 
62212
class WinFriend;
52418
62213
class ExtAC;
52419
62214
class ExtACBuilderCoupling;
52420
62215
class ExtACSyntaxCoupling;
52421
62216
class ExtACTree;
52422
62217
class ExtACKeywords;
52423
 
class WinAsm;
52424
 
class WinDeclSpecs;
52425
 
class WinMemberExplSpec;
52426
 
class WinTypeKeywords;
 
62218
class ExtGnu;
52427
62219
class PragmaOnceUnitState;
52428
62220
class PragmaOnce;
52429
 
class CCExprResolve;
52430
 
class CExprResolve;
52431
 
namespace Puma {
52432
 
 
52433
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62221
class CMatchSyntax;
 
62222
namespace Puma {
 
62223
 
 
62224
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62225
 
 
62226
#line 62227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62227
} // closed Puma
 
62228
 
 
62229
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62230
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62231
#include "CCExprResolveH.ah"
 
62232
#endif
 
62233
namespace Puma {
 
62234
 
 
62235
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62236
 
 
62237
#line 62238 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62238
} // closed Puma
 
62239
 
 
62240
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62241
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62242
#include "CExprResolveH.ah"
 
62243
#endif
 
62244
namespace Puma {
 
62245
 
 
62246
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52434
62247
class CT_NewExpr : public CT_Expression, public CSemObject {
52435
 
#line 52436 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62248
#line 62249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62249
  friend class ::CCExprResolve;
 
62250
  friend class ::CExprResolve;
52436
62251
  friend class ::WinIfExists;
52437
62252
  friend class ::WinImportHandler;
52438
62253
  friend class ::WinMacros;
52439
 
  friend class ::CMatchSyntax;
52440
 
  friend class ::ExtGnu;
 
62254
  friend class ::WinAsm;
 
62255
  friend class ::WinDeclSpecs;
 
62256
  friend class ::WinMemberExplSpec;
 
62257
  friend class ::WinTypeKeywords;
 
62258
  friend class ::WinFriend;
52441
62259
  friend class ::ExtAC;
52442
62260
  friend class ::ExtACBuilderCoupling;
52443
62261
  friend class ::ExtACSyntaxCoupling;
52444
62262
  friend class ::ExtACTree;
52445
62263
  friend class ::ExtACKeywords;
52446
 
  friend class ::WinAsm;
52447
 
  friend class ::WinDeclSpecs;
52448
 
  friend class ::WinMemberExplSpec;
52449
 
  friend class ::WinTypeKeywords;
 
62264
  friend class ::ExtGnu;
52450
62265
  friend class ::PragmaOnceUnitState;
52451
62266
  friend class ::PragmaOnce;
52452
 
  friend class ::CCExprResolve;
52453
 
  friend class ::CExprResolve;
 
62267
  friend class ::CMatchSyntax;
52454
62268
 
52455
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62269
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52456
62270
 
52457
62271
  CTree *sons[6]; // oper, placement, open, type, close, init
52458
62272
 
52459
62273
public:
 
62274
  /** Constructor.
 
62275
   *  \param op The new operator.
 
62276
   *  \param p The optional placement expression.
 
62277
   *  \param o The optional left parenthesis around the type identifier.
 
62278
   *  \param t The type identifier specifying the type of the object to create.
 
62279
   *  \param c The optional right parenthesis around the type identifier.
 
62280
   *  \param i The optional initializer. */
52460
62281
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
52461
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
62282
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
62283
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
52462
62284
  }
 
62285
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52463
62286
  static const char *NodeId ();
 
62287
  /** Get the name of the node. Can be compared with NodeId(). */
52464
62288
  const char *NodeName () const { return NodeId (); }
 
62289
  /** Get the number of sons. */
52465
62290
  int Sons () const { return CTree::Sons (sons, 6); }
 
62291
  /** Get the n-th son.
 
62292
   *  \param n The index of the son.
 
62293
   *  \return The n-th son or NULL. */
52466
62294
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
62295
  /** Replace a son.
 
62296
   *  \param old_son The son to replace.
 
62297
   *  \param new_son The new son. */
52467
62298
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52468
62299
    CTree::ReplaceSon (sons, 6, old_son, new_son);
52469
62300
  }
 
62301
  /** Get the operator name. */
52470
62302
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
62303
  /** Get the placement expression. */
52471
62304
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
62305
  /** Get the initializer. */
52472
62306
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
62307
  /** Get the type of the object to create. */
52473
62308
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
62309
  /** Get the semantic information object. */
52474
62310
  CSemObject *SemObject () const { return (CSemObject*)this; }
52475
62311
   private:
52476
62312
  typedef CT_NewExpr CCExprResolveExpr;
52477
62313
 
52478
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
62314
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
52479
62315
 public :
52480
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
62316
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
52481
62317
  typedef CT_NewExpr CExprResolveExpr;
52482
62318
 
52483
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
62319
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
52484
62320
 public :
52485
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
52486
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62321
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
62322
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52487
62323
};
52488
62324
 
 
62325
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
62326
 *  Tree node representing an if-then expression, 
 
62327
 *  e.g. a>0?a:b or a?:b. */
52489
62328
 
52490
 
#line 52491 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62329
#line 62330 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
52491
62330
} // closed Puma
 
62331
class CCExprResolve;
 
62332
class CExprResolve;
52492
62333
class WinIfExists;
52493
62334
class WinImportHandler;
52494
62335
class WinMacros;
52495
 
class CMatchSyntax;
52496
 
class ExtGnu;
 
62336
class WinAsm;
 
62337
class WinDeclSpecs;
 
62338
class WinMemberExplSpec;
 
62339
class WinTypeKeywords;
 
62340
class WinFriend;
52497
62341
class ExtAC;
52498
62342
class ExtACBuilderCoupling;
52499
62343
class ExtACSyntaxCoupling;
52500
62344
class ExtACTree;
52501
62345
class ExtACKeywords;
52502
 
class WinAsm;
52503
 
class WinDeclSpecs;
52504
 
class WinMemberExplSpec;
52505
 
class WinTypeKeywords;
 
62346
class ExtGnu;
52506
62347
class PragmaOnceUnitState;
52507
62348
class PragmaOnce;
52508
 
class CCExprResolve;
52509
 
class CExprResolve;
52510
 
namespace Puma {
52511
 
 
52512
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62349
class CMatchSyntax;
 
62350
namespace Puma {
 
62351
 
 
62352
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62353
 
 
62354
#line 62355 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62355
} // closed Puma
 
62356
 
 
62357
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62358
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62359
#include "CCExprResolveH.ah"
 
62360
#endif
 
62361
namespace Puma {
 
62362
 
 
62363
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62364
 
 
62365
#line 62366 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62366
} // closed Puma
 
62367
 
 
62368
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62369
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62370
#include "CExprResolveH.ah"
 
62371
#endif
 
62372
namespace Puma {
 
62373
 
 
62374
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52513
62375
class CT_IfThenExpr : public CT_Expression {
52514
 
#line 52515 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62376
#line 62377 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62377
  friend class ::CCExprResolve;
 
62378
  friend class ::CExprResolve;
52515
62379
  friend class ::WinIfExists;
52516
62380
  friend class ::WinImportHandler;
52517
62381
  friend class ::WinMacros;
52518
 
  friend class ::CMatchSyntax;
52519
 
  friend class ::ExtGnu;
 
62382
  friend class ::WinAsm;
 
62383
  friend class ::WinDeclSpecs;
 
62384
  friend class ::WinMemberExplSpec;
 
62385
  friend class ::WinTypeKeywords;
 
62386
  friend class ::WinFriend;
52520
62387
  friend class ::ExtAC;
52521
62388
  friend class ::ExtACBuilderCoupling;
52522
62389
  friend class ::ExtACSyntaxCoupling;
52523
62390
  friend class ::ExtACTree;
52524
62391
  friend class ::ExtACKeywords;
52525
 
  friend class ::WinAsm;
52526
 
  friend class ::WinDeclSpecs;
52527
 
  friend class ::WinMemberExplSpec;
52528
 
  friend class ::WinTypeKeywords;
 
62392
  friend class ::ExtGnu;
52529
62393
  friend class ::PragmaOnceUnitState;
52530
62394
  friend class ::PragmaOnce;
52531
 
  friend class ::CCExprResolve;
52532
 
  friend class ::CExprResolve;
 
62395
  friend class ::CMatchSyntax;
52533
62396
 
52534
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62397
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52535
62398
 
52536
62399
  CTree *sons[5]; // cond, oper, left, colon, right
52537
62400
 
52538
62401
public:
 
62402
  /** Constructor.
 
62403
   *  \param c1 The condition expression.
 
62404
   *  \param o The question mark operator. 
 
62405
   *  \param l The expression to the left of the colon.
 
62406
   *  \param c2 The colon operator.
 
62407
   *  \param r The expression to the right of the colon. */ 
52539
62408
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
52540
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
62409
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
62410
    AddSon (sons[3], c2); AddSon (sons[4], r);
52541
62411
  }
 
62412
  /** Constructor.
 
62413
   *  \param c1 The condition expression.
 
62414
   *  \param o The question mark operator. 
 
62415
   *  \param c2 The colon operator.
 
62416
   *  \param r The expression to the right of the colon. */ 
52542
62417
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
52543
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
62418
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
62419
    AddSon (sons[3], c2); AddSon (sons[4], r);
52544
62420
  }
 
62421
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52545
62422
  static const char *NodeId ();
 
62423
  /** Get the name of the node. Can be compared with NodeId(). */
52546
62424
  const char *NodeName () const { return NodeId (); }
 
62425
  /** Get the number of sons. */
52547
62426
  int Sons () const { return CTree::Sons (sons, 5); }
 
62427
  /** Get the n-th son.
 
62428
   *  \param n The index of the son.
 
62429
   *  \return The n-th son or NULL. */
52548
62430
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
62431
  /** Get the condition expression. */
52549
62432
  CTree *Condition () const { return sons[0]; }
 
62433
  /** Get the left expression (condition=true). */
52550
62434
  CTree *LeftOperand () const { return sons[2]; }
 
62435
  /** Get the right expression (condition=false). */
52551
62436
  CTree *RightOperand () const { return sons[4]; }
 
62437
  /** Replace a son.
 
62438
   *  \param old_son The son to replace.
 
62439
   *  \param new_son The new son. */
52552
62440
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52553
62441
    CTree::ReplaceSon (sons, 5, old_son, new_son);
52554
62442
  }
52555
62443
   private:
52556
62444
  typedef CT_IfThenExpr CCExprResolveExpr;
52557
62445
 
52558
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
62446
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
52559
62447
 public :
52560
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
62448
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
52561
62449
  typedef CT_IfThenExpr CExprResolveExpr;
52562
62450
 
52563
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
62451
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
52564
62452
 public :
52565
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
52566
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62453
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
62454
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52567
62455
};
52568
62456
 
 
62457
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
62458
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
52569
62459
 
52570
 
#line 52571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62460
#line 62461 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
52571
62461
} // closed Puma
 
62462
class CCExprResolve;
 
62463
class CExprResolve;
52572
62464
class WinIfExists;
52573
62465
class WinImportHandler;
52574
62466
class WinMacros;
52575
 
class CMatchSyntax;
52576
 
class ExtGnu;
 
62467
class WinAsm;
 
62468
class WinDeclSpecs;
 
62469
class WinMemberExplSpec;
 
62470
class WinTypeKeywords;
 
62471
class WinFriend;
52577
62472
class ExtAC;
52578
62473
class ExtACBuilderCoupling;
52579
62474
class ExtACSyntaxCoupling;
52580
62475
class ExtACTree;
52581
62476
class ExtACKeywords;
52582
 
class WinAsm;
52583
 
class WinDeclSpecs;
52584
 
class WinMemberExplSpec;
52585
 
class WinTypeKeywords;
 
62477
class ExtGnu;
52586
62478
class PragmaOnceUnitState;
52587
62479
class PragmaOnce;
52588
 
class CCExprResolve;
52589
 
class CExprResolve;
52590
 
namespace Puma {
52591
 
 
52592
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62480
class CMatchSyntax;
 
62481
namespace Puma {
 
62482
 
 
62483
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62484
 
 
62485
#line 62486 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62486
} // closed Puma
 
62487
 
 
62488
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62489
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62490
#include "CCExprResolveH.ah"
 
62491
#endif
 
62492
namespace Puma {
 
62493
 
 
62494
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62495
 
 
62496
#line 62497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62497
} // closed Puma
 
62498
 
 
62499
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62500
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62501
#include "CExprResolveH.ah"
 
62502
#endif
 
62503
namespace Puma {
 
62504
 
 
62505
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52593
62506
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
52594
 
#line 52595 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62507
#line 62508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62508
  friend class ::CCExprResolve;
 
62509
  friend class ::CExprResolve;
52595
62510
  friend class ::WinIfExists;
52596
62511
  friend class ::WinImportHandler;
52597
62512
  friend class ::WinMacros;
52598
 
  friend class ::CMatchSyntax;
52599
 
  friend class ::ExtGnu;
 
62513
  friend class ::WinAsm;
 
62514
  friend class ::WinDeclSpecs;
 
62515
  friend class ::WinMemberExplSpec;
 
62516
  friend class ::WinTypeKeywords;
 
62517
  friend class ::WinFriend;
52600
62518
  friend class ::ExtAC;
52601
62519
  friend class ::ExtACBuilderCoupling;
52602
62520
  friend class ::ExtACSyntaxCoupling;
52603
62521
  friend class ::ExtACTree;
52604
62522
  friend class ::ExtACKeywords;
52605
 
  friend class ::WinAsm;
52606
 
  friend class ::WinDeclSpecs;
52607
 
  friend class ::WinMemberExplSpec;
52608
 
  friend class ::WinTypeKeywords;
 
62523
  friend class ::ExtGnu;
52609
62524
  friend class ::PragmaOnceUnitState;
52610
62525
  friend class ::PragmaOnce;
52611
 
  friend class ::CCExprResolve;
52612
 
  friend class ::CExprResolve;
 
62526
  friend class ::CMatchSyntax;
52613
62527
 
52614
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62528
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52615
62529
 
52616
62530
  CTree *sons[4]; // open, type, close, init
52617
62531
 
52618
62532
public:
 
62533
  /** Constructor.
 
62534
   *  \param r Left parenthesis of the type name.
 
62535
   *  \param t The type name.
 
62536
   *  \param cr Right parenthesis of the type name.
 
62537
   *  \param i The initializer list. */
52619
62538
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
52620
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
62539
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
62540
    AddSon (sons[2], cr); AddSon (sons[3], i);
52621
62541
  }
 
62542
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52622
62543
  static const char *NodeId ();
 
62544
  /** Get the name of the node. Can be compared with NodeId(). */
52623
62545
  const char *NodeName () const { return NodeId (); }
 
62546
  /** Get the number of sons. */
52624
62547
  int Sons () const { return 4; }
 
62548
  /** Get the n-th son.
 
62549
   *  \param n The index of the son.
 
62550
   *  \return The n-th son or NULL. */
52625
62551
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
62552
  /** Replace a son.
 
62553
   *  \param old_son The son to replace.
 
62554
   *  \param new_son The new son. */
52626
62555
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52627
62556
    CTree::ReplaceSon (sons, 4, old_son, new_son);
52628
62557
  }
 
62558
  /** Get the type name. */
52629
62559
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
62560
  /** Get the initializer list. */
52630
62561
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
62562
  /** Get the semantic information object. */
52631
62563
  CSemObject *SemObject () const { return (CSemObject*)this; }
52632
62564
   private:
52633
62565
  typedef CT_CmpdLiteral CCExprResolveExpr;
52634
62566
 
52635
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
62567
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
52636
62568
 public :
52637
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
62569
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
52638
62570
  typedef CT_CmpdLiteral CExprResolveExpr;
52639
62571
 
52640
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
62572
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
52641
62573
 public :
52642
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
52643
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62574
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
62575
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52644
62576
};
52645
62577
 
 
62578
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
62579
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
52646
62580
 
52647
 
#line 52648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62581
#line 62582 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
52648
62582
} // closed Puma
 
62583
class CCExprResolve;
 
62584
class CExprResolve;
52649
62585
class WinIfExists;
52650
62586
class WinImportHandler;
52651
62587
class WinMacros;
52652
 
class CMatchSyntax;
52653
 
class ExtGnu;
 
62588
class WinAsm;
 
62589
class WinDeclSpecs;
 
62590
class WinMemberExplSpec;
 
62591
class WinTypeKeywords;
 
62592
class WinFriend;
52654
62593
class ExtAC;
52655
62594
class ExtACBuilderCoupling;
52656
62595
class ExtACSyntaxCoupling;
52657
62596
class ExtACTree;
52658
62597
class ExtACKeywords;
52659
 
class WinAsm;
52660
 
class WinDeclSpecs;
52661
 
class WinMemberExplSpec;
52662
 
class WinTypeKeywords;
 
62598
class ExtGnu;
52663
62599
class PragmaOnceUnitState;
52664
62600
class PragmaOnce;
52665
 
class CCExprResolve;
52666
 
class CExprResolve;
52667
 
namespace Puma {
52668
 
 
52669
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62601
class CMatchSyntax;
 
62602
namespace Puma {
 
62603
 
 
62604
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62605
 
 
62606
#line 62607 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62607
} // closed Puma
 
62608
 
 
62609
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62610
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62611
#include "CCExprResolveH.ah"
 
62612
#endif
 
62613
namespace Puma {
 
62614
 
 
62615
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62616
 
 
62617
#line 62618 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62618
} // closed Puma
 
62619
 
 
62620
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62621
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62622
#include "CExprResolveH.ah"
 
62623
#endif
 
62624
namespace Puma {
 
62625
 
 
62626
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52670
62627
class CT_ConstructExpr : public CT_Expression, public CSemObject {
52671
 
#line 52672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62628
#line 62629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62629
  friend class ::CCExprResolve;
 
62630
  friend class ::CExprResolve;
52672
62631
  friend class ::WinIfExists;
52673
62632
  friend class ::WinImportHandler;
52674
62633
  friend class ::WinMacros;
52675
 
  friend class ::CMatchSyntax;
52676
 
  friend class ::ExtGnu;
 
62634
  friend class ::WinAsm;
 
62635
  friend class ::WinDeclSpecs;
 
62636
  friend class ::WinMemberExplSpec;
 
62637
  friend class ::WinTypeKeywords;
 
62638
  friend class ::WinFriend;
52677
62639
  friend class ::ExtAC;
52678
62640
  friend class ::ExtACBuilderCoupling;
52679
62641
  friend class ::ExtACSyntaxCoupling;
52680
62642
  friend class ::ExtACTree;
52681
62643
  friend class ::ExtACKeywords;
52682
 
  friend class ::WinAsm;
52683
 
  friend class ::WinDeclSpecs;
52684
 
  friend class ::WinMemberExplSpec;
52685
 
  friend class ::WinTypeKeywords;
 
62644
  friend class ::ExtGnu;
52686
62645
  friend class ::PragmaOnceUnitState;
52687
62646
  friend class ::PragmaOnce;
52688
 
  friend class ::CCExprResolve;
52689
 
  friend class ::CExprResolve;
 
62647
  friend class ::CMatchSyntax;
52690
62648
 
52691
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62649
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52692
62650
 
52693
62651
  CTree *sons[2]; // type, init
52694
62652
 
52695
62653
public:
52696
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
62654
  /** Constructor.
 
62655
   *  \param t The type name.
 
62656
   *  \param i The initializer list. */
 
62657
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
62658
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52697
62659
  static const char *NodeId ();
 
62660
  /** Get the name of the node. Can be compared with NodeId(). */
52698
62661
  const char *NodeName () const { return NodeId (); }
 
62662
  /** Get the number of sons. */
52699
62663
  int Sons () const { return 2; }
 
62664
  /** Get the n-th son.
 
62665
   *  \param n The index of the son.
 
62666
   *  \return The n-th son or NULL. */
52700
62667
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
62668
  /** Replace a son.
 
62669
   *  \param old_son The son to replace.
 
62670
   *  \param new_son The new son. */
52701
62671
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52702
62672
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52703
62673
  }
 
62674
  /** Get the type name. */
52704
62675
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
62676
  /** Get the initializer. */
52705
62677
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
62678
  /** Get the semantic information object. */
52706
62679
  CSemObject *SemObject () const { return (CSemObject*)this; }
52707
62680
   private:
52708
62681
  typedef CT_ConstructExpr CCExprResolveExpr;
52709
62682
 
52710
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
62683
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
52711
62684
 public :
52712
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
62685
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
52713
62686
  typedef CT_ConstructExpr CExprResolveExpr;
52714
62687
 
52715
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
62688
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
52716
62689
 public :
52717
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
52718
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62690
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
62691
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52719
62692
};
52720
62693
 
 
62694
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
62695
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
52721
62696
 
52722
 
#line 52723 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62697
#line 62698 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
52723
62698
} // closed Puma
 
62699
class CCExprResolve;
 
62700
class CExprResolve;
52724
62701
class WinIfExists;
52725
62702
class WinImportHandler;
52726
62703
class WinMacros;
52727
 
class CMatchSyntax;
52728
 
class ExtGnu;
 
62704
class WinAsm;
 
62705
class WinDeclSpecs;
 
62706
class WinMemberExplSpec;
 
62707
class WinTypeKeywords;
 
62708
class WinFriend;
52729
62709
class ExtAC;
52730
62710
class ExtACBuilderCoupling;
52731
62711
class ExtACSyntaxCoupling;
52732
62712
class ExtACTree;
52733
62713
class ExtACKeywords;
52734
 
class WinAsm;
52735
 
class WinDeclSpecs;
52736
 
class WinMemberExplSpec;
52737
 
class WinTypeKeywords;
 
62714
class ExtGnu;
52738
62715
class PragmaOnceUnitState;
52739
62716
class PragmaOnce;
52740
 
class CCExprResolve;
52741
 
class CExprResolve;
52742
 
namespace Puma {
52743
 
 
52744
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62717
class CMatchSyntax;
 
62718
namespace Puma {
 
62719
 
 
62720
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62721
 
 
62722
#line 62723 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62723
} // closed Puma
 
62724
 
 
62725
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62726
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62727
#include "CCExprResolveH.ah"
 
62728
#endif
 
62729
namespace Puma {
 
62730
 
 
62731
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62732
 
 
62733
#line 62734 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62734
} // closed Puma
 
62735
 
 
62736
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62737
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62738
#include "CExprResolveH.ah"
 
62739
#endif
 
62740
namespace Puma {
 
62741
 
 
62742
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52745
62743
class CT_ThrowExpr : public CT_Expression {
52746
 
#line 52747 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62744
#line 62745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62745
  friend class ::CCExprResolve;
 
62746
  friend class ::CExprResolve;
52747
62747
  friend class ::WinIfExists;
52748
62748
  friend class ::WinImportHandler;
52749
62749
  friend class ::WinMacros;
52750
 
  friend class ::CMatchSyntax;
52751
 
  friend class ::ExtGnu;
 
62750
  friend class ::WinAsm;
 
62751
  friend class ::WinDeclSpecs;
 
62752
  friend class ::WinMemberExplSpec;
 
62753
  friend class ::WinTypeKeywords;
 
62754
  friend class ::WinFriend;
52752
62755
  friend class ::ExtAC;
52753
62756
  friend class ::ExtACBuilderCoupling;
52754
62757
  friend class ::ExtACSyntaxCoupling;
52755
62758
  friend class ::ExtACTree;
52756
62759
  friend class ::ExtACKeywords;
52757
 
  friend class ::WinAsm;
52758
 
  friend class ::WinDeclSpecs;
52759
 
  friend class ::WinMemberExplSpec;
52760
 
  friend class ::WinTypeKeywords;
 
62760
  friend class ::ExtGnu;
52761
62761
  friend class ::PragmaOnceUnitState;
52762
62762
  friend class ::PragmaOnce;
52763
 
  friend class ::CCExprResolve;
52764
 
  friend class ::CExprResolve;
 
62763
  friend class ::CMatchSyntax;
52765
62764
 
52766
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62765
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52767
62766
 
52768
62767
  CTree *sons[2]; // throw, expr
52769
62768
 
52770
62769
public:
52771
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
62770
  /** Constructor.
 
62771
   *  \param t The 'throw' keyword.
 
62772
   *  \param e The expression. */
 
62773
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
62774
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52772
62775
  static const char *NodeId ();
 
62776
  /** Get the name of the node. Can be compared with NodeId(). */
52773
62777
  const char *NodeName () const { return NodeId (); }
 
62778
  /** Get the number of sons. */
52774
62779
  int Sons () const { return CTree::Sons (sons, 2); }
 
62780
  /** Get the n-th son.
 
62781
   *  \param n The index of the son.
 
62782
   *  \return The n-th son or NULL. */
52775
62783
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
62784
  /** Replace a son.
 
62785
   *  \param old_son The son to replace.
 
62786
   *  \param new_son The new son. */
52776
62787
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52777
62788
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52778
62789
  }
 
62790
  /** Get the expression. */
52779
62791
  CTree *Expr () const { return sons[1]; }
52780
62792
   private:
52781
62793
  typedef CT_ThrowExpr CCExprResolveExpr;
52782
62794
 
52783
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
62795
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
52784
62796
 public :
52785
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
62797
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
52786
62798
  typedef CT_ThrowExpr CExprResolveExpr;
52787
62799
 
52788
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
62800
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
52789
62801
 public :
52790
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
52791
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62802
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
62803
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52792
62804
};
52793
62805
 
 
62806
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
62807
 *  Tree node representing an index expression. */
52794
62808
 
52795
 
#line 52796 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62809
#line 62810 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
52796
62810
} // closed Puma
 
62811
class CCExprResolve;
 
62812
class CExprResolve;
52797
62813
class WinIfExists;
52798
62814
class WinImportHandler;
52799
62815
class WinMacros;
52800
 
class CMatchSyntax;
52801
 
class ExtGnu;
 
62816
class WinAsm;
 
62817
class WinDeclSpecs;
 
62818
class WinMemberExplSpec;
 
62819
class WinTypeKeywords;
 
62820
class WinFriend;
52802
62821
class ExtAC;
52803
62822
class ExtACBuilderCoupling;
52804
62823
class ExtACSyntaxCoupling;
52805
62824
class ExtACTree;
52806
62825
class ExtACKeywords;
52807
 
class WinAsm;
52808
 
class WinDeclSpecs;
52809
 
class WinMemberExplSpec;
52810
 
class WinTypeKeywords;
 
62826
class ExtGnu;
52811
62827
class PragmaOnceUnitState;
52812
62828
class PragmaOnce;
52813
 
class CCExprResolve;
52814
 
class CExprResolve;
52815
 
namespace Puma {
52816
 
 
52817
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52818
 
class CT_IndexExpr : public CT_Expression {
52819
 
#line 52820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62829
class CMatchSyntax;
 
62830
namespace Puma {
 
62831
 
 
62832
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62833
 
 
62834
#line 62835 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62835
} // closed Puma
 
62836
 
 
62837
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62838
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62839
#include "CCExprResolveH.ah"
 
62840
#endif
 
62841
namespace Puma {
 
62842
 
 
62843
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62844
 
 
62845
#line 62846 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62846
} // closed Puma
 
62847
 
 
62848
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62849
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62850
#include "CExprResolveH.ah"
 
62851
#endif
 
62852
namespace Puma {
 
62853
 
 
62854
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62855
class CT_IndexExpr : public CT_Call {
 
62856
#line 62857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62857
  friend class ::CCExprResolve;
 
62858
  friend class ::CExprResolve;
52820
62859
  friend class ::WinIfExists;
52821
62860
  friend class ::WinImportHandler;
52822
62861
  friend class ::WinMacros;
52823
 
  friend class ::CMatchSyntax;
52824
 
  friend class ::ExtGnu;
 
62862
  friend class ::WinAsm;
 
62863
  friend class ::WinDeclSpecs;
 
62864
  friend class ::WinMemberExplSpec;
 
62865
  friend class ::WinTypeKeywords;
 
62866
  friend class ::WinFriend;
52825
62867
  friend class ::ExtAC;
52826
62868
  friend class ::ExtACBuilderCoupling;
52827
62869
  friend class ::ExtACSyntaxCoupling;
52828
62870
  friend class ::ExtACTree;
52829
62871
  friend class ::ExtACKeywords;
52830
 
  friend class ::WinAsm;
52831
 
  friend class ::WinDeclSpecs;
52832
 
  friend class ::WinMemberExplSpec;
52833
 
  friend class ::WinTypeKeywords;
 
62872
  friend class ::ExtGnu;
52834
62873
  friend class ::PragmaOnceUnitState;
52835
62874
  friend class ::PragmaOnce;
52836
 
  friend class ::CCExprResolve;
52837
 
  friend class ::CExprResolve;
 
62875
  friend class ::CMatchSyntax;
52838
62876
 
52839
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62877
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52840
62878
 
52841
62879
  CTree *sons[4]; // expr, open, index, close
52842
62880
 
52843
62881
public:
 
62882
  /** Constructor.
 
62883
   *  \param e The expression on which to invoke the index operator.
 
62884
   *  \param o Left parenthesis of the index expression.
 
62885
   *  \param i The index expression. 
 
62886
   *  \param c Right parenthesis of the index expression. */
52844
62887
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
52845
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
62888
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
62889
    AddSon (sons[2], i); AddSon (sons[3], c);
52846
62890
  }
 
62891
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52847
62892
  static const char *NodeId ();
 
62893
  /** Get the name of the node. Can be compared with NodeId(). */
52848
62894
  const char *NodeName () const { return NodeId (); }
 
62895
  /** Get the number of sons. */
52849
62896
  int Sons () const { return 4; }
 
62897
  /** Get the n-th son.
 
62898
   *  \param n The index of the son.
 
62899
   *  \return The n-th son or NULL. */
52850
62900
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
62901
  /** Replace a son.
 
62902
   *  \param old_son The son to replace.
 
62903
   *  \param new_son The new son. */
52851
62904
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52852
62905
    CTree::ReplaceSon (sons, 4, old_son, new_son);
52853
62906
  }
52854
62907
   private:
52855
62908
  typedef CT_IndexExpr CCExprResolveExpr;
52856
62909
 
52857
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
62910
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
52858
62911
 public :
52859
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
62912
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
52860
62913
  typedef CT_IndexExpr CExprResolveExpr;
52861
62914
 
52862
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
62915
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
52863
62916
 public :
52864
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
52865
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62917
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
62918
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52866
62919
};
52867
62920
 
 
62921
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
62922
 *  Tree node representing a function call expression, e.g. f(i). */
52868
62923
 
52869
 
#line 52870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62924
#line 62925 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
52870
62925
} // closed Puma
 
62926
class CCExprResolve;
 
62927
class CExprResolve;
52871
62928
class WinIfExists;
52872
62929
class WinImportHandler;
52873
62930
class WinMacros;
52874
 
class CMatchSyntax;
52875
 
class ExtGnu;
 
62931
class WinAsm;
 
62932
class WinDeclSpecs;
 
62933
class WinMemberExplSpec;
 
62934
class WinTypeKeywords;
 
62935
class WinFriend;
52876
62936
class ExtAC;
52877
62937
class ExtACBuilderCoupling;
52878
62938
class ExtACSyntaxCoupling;
52879
62939
class ExtACTree;
52880
62940
class ExtACKeywords;
52881
 
class WinAsm;
52882
 
class WinDeclSpecs;
52883
 
class WinMemberExplSpec;
52884
 
class WinTypeKeywords;
 
62941
class ExtGnu;
52885
62942
class PragmaOnceUnitState;
52886
62943
class PragmaOnce;
52887
 
class CCExprResolve;
52888
 
class CExprResolve;
52889
 
namespace Puma {
52890
 
 
52891
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
52892
 
class CT_CallExpr : public CT_Expression, public CSemObject {
52893
 
#line 52894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
62944
class CMatchSyntax;
 
62945
namespace Puma {
 
62946
 
 
62947
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62948
 
 
62949
#line 62950 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62950
} // closed Puma
 
62951
 
 
62952
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62953
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
62954
#include "CCExprResolveH.ah"
 
62955
#endif
 
62956
namespace Puma {
 
62957
 
 
62958
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62959
 
 
62960
#line 62961 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62961
} // closed Puma
 
62962
 
 
62963
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62964
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
62965
#include "CExprResolveH.ah"
 
62966
#endif
 
62967
namespace Puma {
 
62968
 
 
62969
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62970
class CT_CallExpr : public CT_Call {
 
62971
#line 62972 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
62972
  friend class ::CCExprResolve;
 
62973
  friend class ::CExprResolve;
52894
62974
  friend class ::WinIfExists;
52895
62975
  friend class ::WinImportHandler;
52896
62976
  friend class ::WinMacros;
52897
 
  friend class ::CMatchSyntax;
52898
 
  friend class ::ExtGnu;
 
62977
  friend class ::WinAsm;
 
62978
  friend class ::WinDeclSpecs;
 
62979
  friend class ::WinMemberExplSpec;
 
62980
  friend class ::WinTypeKeywords;
 
62981
  friend class ::WinFriend;
52899
62982
  friend class ::ExtAC;
52900
62983
  friend class ::ExtACBuilderCoupling;
52901
62984
  friend class ::ExtACSyntaxCoupling;
52902
62985
  friend class ::ExtACTree;
52903
62986
  friend class ::ExtACKeywords;
52904
 
  friend class ::WinAsm;
52905
 
  friend class ::WinDeclSpecs;
52906
 
  friend class ::WinMemberExplSpec;
52907
 
  friend class ::WinTypeKeywords;
 
62987
  friend class ::ExtGnu;
52908
62988
  friend class ::PragmaOnceUnitState;
52909
62989
  friend class ::PragmaOnce;
52910
 
  friend class ::CCExprResolve;
52911
 
  friend class ::CExprResolve;
 
62990
  friend class ::CMatchSyntax;
52912
62991
 
52913
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
62992
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52914
62993
 
52915
62994
  CTree *sons[2]; // expr, args
52916
62995
 
52917
62996
public:
52918
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
52919
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
62997
  /** Constructor.
 
62998
   *  \param e The expression on which the call is invoked. */
 
62999
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
63000
  /** Constructor.
 
63001
   *  \param e The expression on which the call is invoked.
 
63002
   *  \param l The argument list of the call. */
 
63003
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
63004
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52920
63005
  static const char *NodeId ();
 
63006
  /** Get the name of the node. Can be compared with NodeId(). */
52921
63007
  const char *NodeName () const { return NodeId (); }
 
63008
  /** Get the number of sons. */
52922
63009
  int Sons () const { return CTree::Sons (sons, 2); }
 
63010
  /** Get the n-th son.
 
63011
   *  \param n The index of the son.
 
63012
   *  \return The n-th son or NULL. */
52923
63013
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
63014
  /** Replace a son.
 
63015
   *  \param old_son The son to replace.
 
63016
   *  \param new_son The new son. */
52924
63017
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
52925
63018
    CTree::ReplaceSon (sons, 2, old_son, new_son);
52926
63019
  }
52927
63020
  CTree *Expr () const { return sons[0]; }
52928
63021
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
52929
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
52930
63022
   private:
52931
63023
  typedef CT_CallExpr CCExprResolveExpr;
52932
63024
 
52933
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
63025
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
52934
63026
 public :
52935
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
63027
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
52936
63028
  typedef CT_CallExpr CExprResolveExpr;
52937
63029
 
52938
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
63030
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
52939
63031
 public :
52940
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
52941
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63032
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
63033
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52942
63034
};
52943
63035
 
 
63036
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
63037
 *  Tree node representing a cast expression, e.g. (int)a. */
52944
63038
 
52945
 
#line 52946 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63039
#line 63040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
52946
63040
} // closed Puma
 
63041
class CCExprResolve;
 
63042
class CExprResolve;
52947
63043
class WinIfExists;
52948
63044
class WinImportHandler;
52949
63045
class WinMacros;
52950
 
class CMatchSyntax;
52951
 
class ExtGnu;
 
63046
class WinAsm;
 
63047
class WinDeclSpecs;
 
63048
class WinMemberExplSpec;
 
63049
class WinTypeKeywords;
 
63050
class WinFriend;
52952
63051
class ExtAC;
52953
63052
class ExtACBuilderCoupling;
52954
63053
class ExtACSyntaxCoupling;
52955
63054
class ExtACTree;
52956
63055
class ExtACKeywords;
52957
 
class WinAsm;
52958
 
class WinDeclSpecs;
52959
 
class WinMemberExplSpec;
52960
 
class WinTypeKeywords;
 
63056
class ExtGnu;
52961
63057
class PragmaOnceUnitState;
52962
63058
class PragmaOnce;
52963
 
class CCExprResolve;
52964
 
class CExprResolve;
52965
 
namespace Puma {
52966
 
 
52967
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63059
class CMatchSyntax;
 
63060
namespace Puma {
 
63061
 
 
63062
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63063
 
 
63064
#line 63065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63065
} // closed Puma
 
63066
 
 
63067
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63068
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63069
#include "CCExprResolveH.ah"
 
63070
#endif
 
63071
namespace Puma {
 
63072
 
 
63073
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63074
 
 
63075
#line 63076 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63076
} // closed Puma
 
63077
 
 
63078
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63079
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63080
#include "CExprResolveH.ah"
 
63081
#endif
 
63082
namespace Puma {
 
63083
 
 
63084
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52968
63085
class CT_CastExpr : public CT_Expression {
52969
 
#line 52970 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63086
#line 63087 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63087
  friend class ::CCExprResolve;
 
63088
  friend class ::CExprResolve;
52970
63089
  friend class ::WinIfExists;
52971
63090
  friend class ::WinImportHandler;
52972
63091
  friend class ::WinMacros;
52973
 
  friend class ::CMatchSyntax;
52974
 
  friend class ::ExtGnu;
 
63092
  friend class ::WinAsm;
 
63093
  friend class ::WinDeclSpecs;
 
63094
  friend class ::WinMemberExplSpec;
 
63095
  friend class ::WinTypeKeywords;
 
63096
  friend class ::WinFriend;
52975
63097
  friend class ::ExtAC;
52976
63098
  friend class ::ExtACBuilderCoupling;
52977
63099
  friend class ::ExtACSyntaxCoupling;
52978
63100
  friend class ::ExtACTree;
52979
63101
  friend class ::ExtACKeywords;
52980
 
  friend class ::WinAsm;
52981
 
  friend class ::WinDeclSpecs;
52982
 
  friend class ::WinMemberExplSpec;
52983
 
  friend class ::WinTypeKeywords;
 
63102
  friend class ::ExtGnu;
52984
63103
  friend class ::PragmaOnceUnitState;
52985
63104
  friend class ::PragmaOnce;
52986
 
  friend class ::CCExprResolve;
52987
 
  friend class ::CExprResolve;
 
63105
  friend class ::CMatchSyntax;
52988
63106
 
52989
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63107
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
52990
63108
 
52991
63109
  CTree *sons[4]; // open, type, close, expr
52992
63110
 
52993
63111
public:
 
63112
  /** Constructor.
 
63113
   *  \param o Left parenthesis of the type name.
 
63114
   *  \param t The type to cast to.
 
63115
   *  \param c Right parenthesis of the type name. 
 
63116
   *  \param e The expression to cast. */
52994
63117
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
52995
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
63118
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
63119
    AddSon (sons[2], c); AddSon (sons[3], e);
52996
63120
  }
 
63121
  /** Get the identifier for this node type. Can be compared with NodeName(). */
52997
63122
  static const char *NodeId ();
 
63123
  /** Get the name of the node. Can be compared with NodeId(). */
52998
63124
  const char *NodeName () const { return NodeId (); }
 
63125
  /** Get the number of sons. */
52999
63126
  int Sons () const { return 4; }
 
63127
  /** Get the n-th son.
 
63128
   *  \param n The index of the son.
 
63129
   *  \return The n-th son or NULL. */
53000
63130
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
63131
  /** Replace a son.
 
63132
   *  \param old_son The son to replace.
 
63133
   *  \param new_son The new son. */
53001
63134
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53002
63135
    CTree::ReplaceSon (sons, 4, old_son, new_son);
53003
63136
  }
 
63137
  /** Get the casted expression. */
53004
63138
  CTree *Expr () const { return sons[3]; }
 
63139
  /** Get the type to cast to. */
53005
63140
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
53006
63141
   private:
53007
63142
  typedef CT_CastExpr CCExprResolveExpr;
53008
63143
 
53009
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
63144
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
53010
63145
 public :
53011
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
63146
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
53012
63147
  typedef CT_CastExpr CExprResolveExpr;
53013
63148
 
53014
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
63149
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
53015
63150
 public :
53016
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
53017
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63151
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
63152
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53018
63153
};
53019
63154
 
 
63155
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
63156
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
53020
63157
 
53021
 
#line 53022 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63158
#line 63159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53022
63159
} // closed Puma
 
63160
class CCExprResolve;
 
63161
class CExprResolve;
53023
63162
class WinIfExists;
53024
63163
class WinImportHandler;
53025
63164
class WinMacros;
53026
 
class CMatchSyntax;
53027
 
class ExtGnu;
 
63165
class WinAsm;
 
63166
class WinDeclSpecs;
 
63167
class WinMemberExplSpec;
 
63168
class WinTypeKeywords;
 
63169
class WinFriend;
53028
63170
class ExtAC;
53029
63171
class ExtACBuilderCoupling;
53030
63172
class ExtACSyntaxCoupling;
53031
63173
class ExtACTree;
53032
63174
class ExtACKeywords;
53033
 
class WinAsm;
53034
 
class WinDeclSpecs;
53035
 
class WinMemberExplSpec;
53036
 
class WinTypeKeywords;
 
63175
class ExtGnu;
53037
63176
class PragmaOnceUnitState;
53038
63177
class PragmaOnce;
53039
 
class CCExprResolve;
53040
 
class CExprResolve;
53041
 
namespace Puma {
53042
 
 
53043
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63178
class CMatchSyntax;
 
63179
namespace Puma {
 
63180
 
 
63181
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63182
 
 
63183
#line 63184 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63184
} // closed Puma
 
63185
 
 
63186
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63187
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63188
#include "CCExprResolveH.ah"
 
63189
#endif
 
63190
namespace Puma {
 
63191
 
 
63192
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63193
 
 
63194
#line 63195 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63195
} // closed Puma
 
63196
 
 
63197
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63198
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63199
#include "CExprResolveH.ah"
 
63200
#endif
 
63201
namespace Puma {
 
63202
 
 
63203
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53044
63204
class CT_StaticCast : public CT_Expression {
53045
 
#line 53046 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63205
#line 63206 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63206
  friend class ::CCExprResolve;
 
63207
  friend class ::CExprResolve;
53046
63208
  friend class ::WinIfExists;
53047
63209
  friend class ::WinImportHandler;
53048
63210
  friend class ::WinMacros;
53049
 
  friend class ::CMatchSyntax;
53050
 
  friend class ::ExtGnu;
 
63211
  friend class ::WinAsm;
 
63212
  friend class ::WinDeclSpecs;
 
63213
  friend class ::WinMemberExplSpec;
 
63214
  friend class ::WinTypeKeywords;
 
63215
  friend class ::WinFriend;
53051
63216
  friend class ::ExtAC;
53052
63217
  friend class ::ExtACBuilderCoupling;
53053
63218
  friend class ::ExtACSyntaxCoupling;
53054
63219
  friend class ::ExtACTree;
53055
63220
  friend class ::ExtACKeywords;
53056
 
  friend class ::WinAsm;
53057
 
  friend class ::WinDeclSpecs;
53058
 
  friend class ::WinMemberExplSpec;
53059
 
  friend class ::WinTypeKeywords;
 
63221
  friend class ::ExtGnu;
53060
63222
  friend class ::PragmaOnceUnitState;
53061
63223
  friend class ::PragmaOnce;
53062
 
  friend class ::CCExprResolve;
53063
 
  friend class ::CExprResolve;
 
63224
  friend class ::CMatchSyntax;
53064
63225
 
53065
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63226
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53066
63227
 
53067
63228
  CTree *sons[5]; // cast, open, type, close, expr
53068
63229
 
53069
63230
public:
 
63231
  /** Constructor.
 
63232
   *  \param cst The cast operator, i.e. 'static_cast'.
 
63233
   *  \param o Left arrow bracket of the type name.
 
63234
   *  \param t The type to cast to.
 
63235
   *  \param c Right array bracket of the type name.
 
63236
   *  \param e The expression to cast. */
53070
63237
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
53071
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
63238
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
63239
    AddSon (sons[3], c); AddSon (sons[4], e);
53072
63240
  }
 
63241
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53073
63242
  static const char *NodeId ();
 
63243
  /** Get the name of the node. Can be compared with NodeId(). */
53074
63244
  const char *NodeName () const { return NodeId (); }
 
63245
  /** Get the number of sons. */
53075
63246
  int Sons () const { return 5; }
 
63247
  /** Get the n-th son.
 
63248
   *  \param n The index of the son.
 
63249
   *  \return The n-th son or NULL. */
53076
63250
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
63251
  /** Replace a son.
 
63252
   *  \param old_son The son to replace.
 
63253
   *  \param new_son The new son. */
53077
63254
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53078
63255
    CTree::ReplaceSon (sons, 5, old_son, new_son);
53079
63256
  }
 
63257
  /** Get the casted expression. */
53080
63258
  CTree *Expr () const { return sons[4]; }
 
63259
  /** Get the type to cast to. */
53081
63260
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
53082
63261
   private:
53083
63262
  typedef CT_StaticCast CCExprResolveExpr;
53084
63263
 
53085
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
63264
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
53086
63265
 public :
53087
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
63266
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
53088
63267
  typedef CT_StaticCast CExprResolveExpr;
53089
63268
 
53090
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
63269
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
53091
63270
 public :
53092
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
53093
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63271
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
63272
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53094
63273
};
53095
63274
 
 
63275
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
63276
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
53096
63277
 
53097
 
#line 53098 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63278
#line 63279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53098
63279
} // closed Puma
 
63280
class CCExprResolve;
 
63281
class CExprResolve;
53099
63282
class WinIfExists;
53100
63283
class WinImportHandler;
53101
63284
class WinMacros;
53102
 
class CMatchSyntax;
53103
 
class ExtGnu;
 
63285
class WinAsm;
 
63286
class WinDeclSpecs;
 
63287
class WinMemberExplSpec;
 
63288
class WinTypeKeywords;
 
63289
class WinFriend;
53104
63290
class ExtAC;
53105
63291
class ExtACBuilderCoupling;
53106
63292
class ExtACSyntaxCoupling;
53107
63293
class ExtACTree;
53108
63294
class ExtACKeywords;
53109
 
class WinAsm;
53110
 
class WinDeclSpecs;
53111
 
class WinMemberExplSpec;
53112
 
class WinTypeKeywords;
 
63295
class ExtGnu;
53113
63296
class PragmaOnceUnitState;
53114
63297
class PragmaOnce;
53115
 
class CCExprResolve;
53116
 
class CExprResolve;
53117
 
namespace Puma {
53118
 
 
53119
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63298
class CMatchSyntax;
 
63299
namespace Puma {
 
63300
 
 
63301
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63302
 
 
63303
#line 63304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63304
} // closed Puma
 
63305
 
 
63306
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63307
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63308
#include "CCExprResolveH.ah"
 
63309
#endif
 
63310
namespace Puma {
 
63311
 
 
63312
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63313
 
 
63314
#line 63315 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63315
} // closed Puma
 
63316
 
 
63317
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63318
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63319
#include "CExprResolveH.ah"
 
63320
#endif
 
63321
namespace Puma {
 
63322
 
 
63323
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53120
63324
class CT_ConstCast : public CT_StaticCast {
53121
 
#line 53122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63325
#line 63326 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63326
  friend class ::CCExprResolve;
 
63327
  friend class ::CExprResolve;
53122
63328
  friend class ::WinIfExists;
53123
63329
  friend class ::WinImportHandler;
53124
63330
  friend class ::WinMacros;
53125
 
  friend class ::CMatchSyntax;
53126
 
  friend class ::ExtGnu;
 
63331
  friend class ::WinAsm;
 
63332
  friend class ::WinDeclSpecs;
 
63333
  friend class ::WinMemberExplSpec;
 
63334
  friend class ::WinTypeKeywords;
 
63335
  friend class ::WinFriend;
53127
63336
  friend class ::ExtAC;
53128
63337
  friend class ::ExtACBuilderCoupling;
53129
63338
  friend class ::ExtACSyntaxCoupling;
53130
63339
  friend class ::ExtACTree;
53131
63340
  friend class ::ExtACKeywords;
53132
 
  friend class ::WinAsm;
53133
 
  friend class ::WinDeclSpecs;
53134
 
  friend class ::WinMemberExplSpec;
53135
 
  friend class ::WinTypeKeywords;
 
63341
  friend class ::ExtGnu;
53136
63342
  friend class ::PragmaOnceUnitState;
53137
63343
  friend class ::PragmaOnce;
53138
 
  friend class ::CCExprResolve;
53139
 
  friend class ::CExprResolve;
 
63344
  friend class ::CMatchSyntax;
53140
63345
 
53141
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63346
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53142
63347
 
53143
63348
public:
 
63349
  /** Constructor.
 
63350
   *  \param cst The cast operator, i.e. 'const_cast'.
 
63351
   *  \param o Left arrow bracket of the type name.
 
63352
   *  \param t The type to cast to.
 
63353
   *  \param c Right array bracket of the type name.
 
63354
   *  \param e The expression to cast. */
53144
63355
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
53145
63356
    CT_StaticCast (cst, o, t, c, e) {}
 
63357
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53146
63358
  static const char *NodeId ();
 
63359
  /** Get the name of the node. Can be compared with NodeId(). */
53147
63360
  const char *NodeName () const { return NodeId (); }
53148
63361
   private:
53149
63362
  typedef CT_ConstCast CCExprResolveExpr;
53150
63363
 
53151
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
63364
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
53152
63365
 public :
53153
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
63366
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
53154
63367
  typedef CT_ConstCast CExprResolveExpr;
53155
63368
 
53156
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
63369
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
53157
63370
 public :
53158
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
53159
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63371
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
63372
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53160
63373
};
53161
63374
 
 
63375
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
63376
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
53162
63377
 
53163
 
#line 53164 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63378
#line 63379 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53164
63379
} // closed Puma
 
63380
class CCExprResolve;
 
63381
class CExprResolve;
53165
63382
class WinIfExists;
53166
63383
class WinImportHandler;
53167
63384
class WinMacros;
53168
 
class CMatchSyntax;
53169
 
class ExtGnu;
 
63385
class WinAsm;
 
63386
class WinDeclSpecs;
 
63387
class WinMemberExplSpec;
 
63388
class WinTypeKeywords;
 
63389
class WinFriend;
53170
63390
class ExtAC;
53171
63391
class ExtACBuilderCoupling;
53172
63392
class ExtACSyntaxCoupling;
53173
63393
class ExtACTree;
53174
63394
class ExtACKeywords;
53175
 
class WinAsm;
53176
 
class WinDeclSpecs;
53177
 
class WinMemberExplSpec;
53178
 
class WinTypeKeywords;
 
63395
class ExtGnu;
53179
63396
class PragmaOnceUnitState;
53180
63397
class PragmaOnce;
53181
 
class CCExprResolve;
53182
 
class CExprResolve;
53183
 
namespace Puma {
53184
 
 
53185
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63398
class CMatchSyntax;
 
63399
namespace Puma {
 
63400
 
 
63401
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63402
 
 
63403
#line 63404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63404
} // closed Puma
 
63405
 
 
63406
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63407
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63408
#include "CCExprResolveH.ah"
 
63409
#endif
 
63410
namespace Puma {
 
63411
 
 
63412
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63413
 
 
63414
#line 63415 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63415
} // closed Puma
 
63416
 
 
63417
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63418
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63419
#include "CExprResolveH.ah"
 
63420
#endif
 
63421
namespace Puma {
 
63422
 
 
63423
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53186
63424
class CT_ReintCast : public CT_StaticCast {
53187
 
#line 53188 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63425
#line 63426 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63426
  friend class ::CCExprResolve;
 
63427
  friend class ::CExprResolve;
53188
63428
  friend class ::WinIfExists;
53189
63429
  friend class ::WinImportHandler;
53190
63430
  friend class ::WinMacros;
53191
 
  friend class ::CMatchSyntax;
53192
 
  friend class ::ExtGnu;
 
63431
  friend class ::WinAsm;
 
63432
  friend class ::WinDeclSpecs;
 
63433
  friend class ::WinMemberExplSpec;
 
63434
  friend class ::WinTypeKeywords;
 
63435
  friend class ::WinFriend;
53193
63436
  friend class ::ExtAC;
53194
63437
  friend class ::ExtACBuilderCoupling;
53195
63438
  friend class ::ExtACSyntaxCoupling;
53196
63439
  friend class ::ExtACTree;
53197
63440
  friend class ::ExtACKeywords;
53198
 
  friend class ::WinAsm;
53199
 
  friend class ::WinDeclSpecs;
53200
 
  friend class ::WinMemberExplSpec;
53201
 
  friend class ::WinTypeKeywords;
 
63441
  friend class ::ExtGnu;
53202
63442
  friend class ::PragmaOnceUnitState;
53203
63443
  friend class ::PragmaOnce;
53204
 
  friend class ::CCExprResolve;
53205
 
  friend class ::CExprResolve;
 
63444
  friend class ::CMatchSyntax;
53206
63445
 
53207
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63446
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53208
63447
 
53209
63448
public:
 
63449
  /** Constructor.
 
63450
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
63451
   *  \param o Left arrow bracket of the type name.
 
63452
   *  \param t The type to cast to.
 
63453
   *  \param c Right array bracket of the type name.
 
63454
   *  \param e The expression to cast. */
53210
63455
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
53211
63456
    CT_StaticCast (cst, o, t, c, e) {}
 
63457
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53212
63458
  static const char *NodeId ();
 
63459
  /** Get the name of the node. Can be compared with NodeId(). */
53213
63460
  const char *NodeName () const { return NodeId (); }
53214
63461
   private:
53215
63462
  typedef CT_ReintCast CCExprResolveExpr;
53216
63463
 
53217
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
63464
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
53218
63465
 public :
53219
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
63466
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
53220
63467
  typedef CT_ReintCast CExprResolveExpr;
53221
63468
 
53222
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
63469
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
53223
63470
 public :
53224
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
53225
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63471
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
63472
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53226
63473
};
53227
63474
 
 
63475
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
63476
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
53228
63477
 
53229
 
#line 53230 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63478
#line 63479 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53230
63479
} // closed Puma
 
63480
class CCExprResolve;
 
63481
class CExprResolve;
53231
63482
class WinIfExists;
53232
63483
class WinImportHandler;
53233
63484
class WinMacros;
53234
 
class CMatchSyntax;
53235
 
class ExtGnu;
 
63485
class WinAsm;
 
63486
class WinDeclSpecs;
 
63487
class WinMemberExplSpec;
 
63488
class WinTypeKeywords;
 
63489
class WinFriend;
53236
63490
class ExtAC;
53237
63491
class ExtACBuilderCoupling;
53238
63492
class ExtACSyntaxCoupling;
53239
63493
class ExtACTree;
53240
63494
class ExtACKeywords;
53241
 
class WinAsm;
53242
 
class WinDeclSpecs;
53243
 
class WinMemberExplSpec;
53244
 
class WinTypeKeywords;
 
63495
class ExtGnu;
53245
63496
class PragmaOnceUnitState;
53246
63497
class PragmaOnce;
53247
 
class CCExprResolve;
53248
 
class CExprResolve;
53249
 
namespace Puma {
53250
 
 
53251
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63498
class CMatchSyntax;
 
63499
namespace Puma {
 
63500
 
 
63501
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63502
 
 
63503
#line 63504 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63504
} // closed Puma
 
63505
 
 
63506
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63507
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63508
#include "CCExprResolveH.ah"
 
63509
#endif
 
63510
namespace Puma {
 
63511
 
 
63512
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63513
 
 
63514
#line 63515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63515
} // closed Puma
 
63516
 
 
63517
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63518
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63519
#include "CExprResolveH.ah"
 
63520
#endif
 
63521
namespace Puma {
 
63522
 
 
63523
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53252
63524
class CT_DynamicCast : public CT_StaticCast {
53253
 
#line 53254 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63525
#line 63526 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63526
  friend class ::CCExprResolve;
 
63527
  friend class ::CExprResolve;
53254
63528
  friend class ::WinIfExists;
53255
63529
  friend class ::WinImportHandler;
53256
63530
  friend class ::WinMacros;
53257
 
  friend class ::CMatchSyntax;
53258
 
  friend class ::ExtGnu;
 
63531
  friend class ::WinAsm;
 
63532
  friend class ::WinDeclSpecs;
 
63533
  friend class ::WinMemberExplSpec;
 
63534
  friend class ::WinTypeKeywords;
 
63535
  friend class ::WinFriend;
53259
63536
  friend class ::ExtAC;
53260
63537
  friend class ::ExtACBuilderCoupling;
53261
63538
  friend class ::ExtACSyntaxCoupling;
53262
63539
  friend class ::ExtACTree;
53263
63540
  friend class ::ExtACKeywords;
53264
 
  friend class ::WinAsm;
53265
 
  friend class ::WinDeclSpecs;
53266
 
  friend class ::WinMemberExplSpec;
53267
 
  friend class ::WinTypeKeywords;
 
63541
  friend class ::ExtGnu;
53268
63542
  friend class ::PragmaOnceUnitState;
53269
63543
  friend class ::PragmaOnce;
53270
 
  friend class ::CCExprResolve;
53271
 
  friend class ::CExprResolve;
 
63544
  friend class ::CMatchSyntax;
53272
63545
 
53273
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63546
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53274
63547
 
53275
63548
public:
 
63549
  /** Constructor.
 
63550
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
63551
   *  \param o Left arrow bracket of the type name.
 
63552
   *  \param t The type to cast to.
 
63553
   *  \param c Right array bracket of the type name.
 
63554
   *  \param e The expression to cast. */
53276
63555
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
53277
63556
    CT_StaticCast (cst, o, t, c, e) {}
 
63557
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53278
63558
  static const char *NodeId ();
 
63559
  /** Get the name of the node. Can be compared with NodeId(). */
53279
63560
  const char *NodeName () const { return NodeId (); }
53280
63561
   private:
53281
63562
  typedef CT_DynamicCast CCExprResolveExpr;
53282
63563
 
53283
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
63564
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
53284
63565
 public :
53285
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
63566
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
53286
63567
  typedef CT_DynamicCast CExprResolveExpr;
53287
63568
 
53288
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
63569
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
53289
63570
 public :
53290
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
53291
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63571
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
63572
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53292
63573
};
53293
63574
 
 
63575
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
63576
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
63577
 *  where 1.2 is implicitely casted from float to int. */
53294
63578
 
53295
 
#line 53296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63579
#line 63580 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53296
63580
} // closed Puma
 
63581
class CCExprResolve;
 
63582
class CExprResolve;
53297
63583
class WinIfExists;
53298
63584
class WinImportHandler;
53299
63585
class WinMacros;
53300
 
class CMatchSyntax;
53301
 
class ExtGnu;
 
63586
class WinAsm;
 
63587
class WinDeclSpecs;
 
63588
class WinMemberExplSpec;
 
63589
class WinTypeKeywords;
 
63590
class WinFriend;
53302
63591
class ExtAC;
53303
63592
class ExtACBuilderCoupling;
53304
63593
class ExtACSyntaxCoupling;
53305
63594
class ExtACTree;
53306
63595
class ExtACKeywords;
53307
 
class WinAsm;
53308
 
class WinDeclSpecs;
53309
 
class WinMemberExplSpec;
53310
 
class WinTypeKeywords;
 
63596
class ExtGnu;
53311
63597
class PragmaOnceUnitState;
53312
63598
class PragmaOnce;
53313
 
class CCExprResolve;
53314
 
class CExprResolve;
53315
 
namespace Puma {
53316
 
 
53317
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63599
class CMatchSyntax;
 
63600
namespace Puma {
 
63601
 
 
63602
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63603
 
 
63604
#line 63605 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63605
} // closed Puma
 
63606
 
 
63607
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63608
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63609
#include "CCExprResolveH.ah"
 
63610
#endif
 
63611
namespace Puma {
 
63612
 
 
63613
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63614
 
 
63615
#line 63616 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63616
} // closed Puma
 
63617
 
 
63618
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63619
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63620
#include "CExprResolveH.ah"
 
63621
#endif
 
63622
namespace Puma {
 
63623
 
 
63624
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53318
63625
class CT_ImplicitCast : public CT_Expression {
53319
 
#line 53320 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63626
#line 63627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63627
  friend class ::CCExprResolve;
 
63628
  friend class ::CExprResolve;
53320
63629
  friend class ::WinIfExists;
53321
63630
  friend class ::WinImportHandler;
53322
63631
  friend class ::WinMacros;
53323
 
  friend class ::CMatchSyntax;
53324
 
  friend class ::ExtGnu;
 
63632
  friend class ::WinAsm;
 
63633
  friend class ::WinDeclSpecs;
 
63634
  friend class ::WinMemberExplSpec;
 
63635
  friend class ::WinTypeKeywords;
 
63636
  friend class ::WinFriend;
53325
63637
  friend class ::ExtAC;
53326
63638
  friend class ::ExtACBuilderCoupling;
53327
63639
  friend class ::ExtACSyntaxCoupling;
53328
63640
  friend class ::ExtACTree;
53329
63641
  friend class ::ExtACKeywords;
53330
 
  friend class ::WinAsm;
53331
 
  friend class ::WinDeclSpecs;
53332
 
  friend class ::WinMemberExplSpec;
53333
 
  friend class ::WinTypeKeywords;
 
63642
  friend class ::ExtGnu;
53334
63643
  friend class ::PragmaOnceUnitState;
53335
63644
  friend class ::PragmaOnce;
53336
 
  friend class ::CCExprResolve;
53337
 
  friend class ::CExprResolve;
 
63645
  friend class ::CMatchSyntax;
53338
63646
 
53339
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63647
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53340
63648
 
53341
63649
  CTree *_expr; // casted expression
53342
63650
 
53343
63651
public:
53344
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
63652
  /** Constructor.
 
63653
   *  \param e The expression that is implicitely casted. */
 
63654
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
63655
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53345
63656
  static const char *NodeId ();
 
63657
  /** Get the name of the node. Can be compared with NodeId(). */
53346
63658
  const char *NodeName () const { return NodeId (); }
 
63659
  /** Get the number of sons. */
53347
63660
  int Sons () const { return 1; }
 
63661
  /** Get the n-th son.
 
63662
   *  \param n The index of the son.
 
63663
   *  \return The n-th son or NULL. */
53348
63664
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
63665
  /** Get the casted expression. */
53349
63666
  CTree *Expr () const { return _expr; }
 
63667
  /** Replace a son.
 
63668
   *  \param old_son The son to replace.
 
63669
   *  \param new_son The new son. */
53350
63670
  void ReplaceSon (CTree *old_son, CTree *new_son) 
53351
 
   { if (old_son == _expr) _expr = new_son; }
 
63671
   { CTree::ReplaceSon (_expr, old_son, new_son); }
53352
63672
   private:
53353
63673
  typedef CT_ImplicitCast CCExprResolveExpr;
53354
63674
 
53355
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
63675
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
53356
63676
 public :
53357
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
63677
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
53358
63678
  typedef CT_ImplicitCast CExprResolveExpr;
53359
63679
 
53360
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
63680
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
53361
63681
 public :
53362
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
53363
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63682
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
63683
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53364
63684
};
53365
63685
 
 
63686
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
63687
 *  Tree node representing a typeid expression, e.g. typeid(X). */
53366
63688
 
53367
 
#line 53368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63689
#line 63690 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53368
63690
} // closed Puma
 
63691
class CCExprResolve;
 
63692
class CExprResolve;
53369
63693
class WinIfExists;
53370
63694
class WinImportHandler;
53371
63695
class WinMacros;
53372
 
class CMatchSyntax;
53373
 
class ExtGnu;
 
63696
class WinAsm;
 
63697
class WinDeclSpecs;
 
63698
class WinMemberExplSpec;
 
63699
class WinTypeKeywords;
 
63700
class WinFriend;
53374
63701
class ExtAC;
53375
63702
class ExtACBuilderCoupling;
53376
63703
class ExtACSyntaxCoupling;
53377
63704
class ExtACTree;
53378
63705
class ExtACKeywords;
53379
 
class WinAsm;
53380
 
class WinDeclSpecs;
53381
 
class WinMemberExplSpec;
53382
 
class WinTypeKeywords;
 
63706
class ExtGnu;
53383
63707
class PragmaOnceUnitState;
53384
63708
class PragmaOnce;
53385
 
class CCExprResolve;
53386
 
class CExprResolve;
53387
 
namespace Puma {
53388
 
 
53389
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63709
class CMatchSyntax;
 
63710
namespace Puma {
 
63711
 
 
63712
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63713
 
 
63714
#line 63715 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63715
} // closed Puma
 
63716
 
 
63717
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63718
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63719
#include "CCExprResolveH.ah"
 
63720
#endif
 
63721
namespace Puma {
 
63722
 
 
63723
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63724
 
 
63725
#line 63726 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63726
} // closed Puma
 
63727
 
 
63728
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63729
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63730
#include "CExprResolveH.ah"
 
63731
#endif
 
63732
namespace Puma {
 
63733
 
 
63734
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53390
63735
class CT_TypeidExpr : public CT_Expression {
53391
 
#line 53392 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63736
#line 63737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63737
  friend class ::CCExprResolve;
 
63738
  friend class ::CExprResolve;
53392
63739
  friend class ::WinIfExists;
53393
63740
  friend class ::WinImportHandler;
53394
63741
  friend class ::WinMacros;
53395
 
  friend class ::CMatchSyntax;
53396
 
  friend class ::ExtGnu;
 
63742
  friend class ::WinAsm;
 
63743
  friend class ::WinDeclSpecs;
 
63744
  friend class ::WinMemberExplSpec;
 
63745
  friend class ::WinTypeKeywords;
 
63746
  friend class ::WinFriend;
53397
63747
  friend class ::ExtAC;
53398
63748
  friend class ::ExtACBuilderCoupling;
53399
63749
  friend class ::ExtACSyntaxCoupling;
53400
63750
  friend class ::ExtACTree;
53401
63751
  friend class ::ExtACKeywords;
53402
 
  friend class ::WinAsm;
53403
 
  friend class ::WinDeclSpecs;
53404
 
  friend class ::WinMemberExplSpec;
53405
 
  friend class ::WinTypeKeywords;
 
63752
  friend class ::ExtGnu;
53406
63753
  friend class ::PragmaOnceUnitState;
53407
63754
  friend class ::PragmaOnce;
53408
 
  friend class ::CCExprResolve;
53409
 
  friend class ::CExprResolve;
 
63755
  friend class ::CMatchSyntax;
53410
63756
 
53411
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63757
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53412
63758
 
53413
63759
  CTree *sons[4]; // typeid, open, type_id/expr, close
53414
63760
 
53415
63761
public:
 
63762
  /** Constructor.
 
63763
   *  \param tid The 'typeid' operator.
 
63764
   *  \param o The left parenthesis of the type name or expression.
 
63765
   *  \param e The expression or type name for which to get the type identifier.
 
63766
   *  \param c The right parenthesis of the type name or expression. */
53416
63767
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
53417
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
63768
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
63769
    AddSon (sons[2], e); AddSon (sons[3], c);
53418
63770
  }
 
63771
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53419
63772
  static const char *NodeId ();
 
63773
  /** Get the name of the node. Can be compared with NodeId(). */
53420
63774
  const char *NodeName () const { return NodeId (); }
 
63775
  /** Get the number of sons. */
53421
63776
  int Sons () const { return 4; }
 
63777
  /** Get the n-th son.
 
63778
   *  \param n The index of the son.
 
63779
   *  \return The n-th son or NULL. */
53422
63780
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
63781
  /** Replace a son.
 
63782
   *  \param old_son The son to replace.
 
63783
   *  \param new_son The new son. */
53423
63784
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53424
63785
    CTree::ReplaceSon (sons, 4, old_son, new_son);
53425
63786
  }
 
63787
  /** Get the typeid argument, i.e. the expression or type name for
 
63788
   *  which to get the type identifier. */
53426
63789
  CTree *Arg () const { return sons[2]; }
53427
63790
   private:
53428
63791
  typedef CT_TypeidExpr CCExprResolveExpr;
53429
63792
 
53430
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
63793
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
53431
63794
 public :
53432
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
63795
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
53433
63796
  typedef CT_TypeidExpr CExprResolveExpr;
53434
63797
 
53435
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
63798
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
53436
63799
 public :
53437
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
53438
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63800
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
63801
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53439
63802
};
53440
63803
 
 
63804
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
63805
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
53441
63806
 
53442
 
#line 53443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63807
#line 63808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53443
63808
} // closed Puma
 
63809
class CCExprResolve;
 
63810
class CExprResolve;
53444
63811
class WinIfExists;
53445
63812
class WinImportHandler;
53446
63813
class WinMacros;
53447
 
class CMatchSyntax;
53448
 
class ExtGnu;
 
63814
class WinAsm;
 
63815
class WinDeclSpecs;
 
63816
class WinMemberExplSpec;
 
63817
class WinTypeKeywords;
 
63818
class WinFriend;
53449
63819
class ExtAC;
53450
63820
class ExtACBuilderCoupling;
53451
63821
class ExtACSyntaxCoupling;
53452
63822
class ExtACTree;
53453
63823
class ExtACKeywords;
53454
 
class WinAsm;
53455
 
class WinDeclSpecs;
53456
 
class WinMemberExplSpec;
53457
 
class WinTypeKeywords;
 
63824
class ExtGnu;
53458
63825
class PragmaOnceUnitState;
53459
63826
class PragmaOnce;
53460
 
class CCExprResolve;
53461
 
class CExprResolve;
53462
 
namespace Puma {
53463
 
 
53464
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63827
class CMatchSyntax;
 
63828
namespace Puma {
 
63829
 
 
63830
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63831
 
 
63832
#line 63833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63833
} // closed Puma
 
63834
 
 
63835
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63836
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63837
#include "CCExprResolveH.ah"
 
63838
#endif
 
63839
namespace Puma {
 
63840
 
 
63841
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63842
 
 
63843
#line 63844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63844
} // closed Puma
 
63845
 
 
63846
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63847
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63848
#include "CExprResolveH.ah"
 
63849
#endif
 
63850
namespace Puma {
 
63851
 
 
63852
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53465
63853
class CT_SizeofExpr : public CT_Expression {
53466
 
#line 53467 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63854
#line 63855 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63855
  friend class ::CCExprResolve;
 
63856
  friend class ::CExprResolve;
53467
63857
  friend class ::WinIfExists;
53468
63858
  friend class ::WinImportHandler;
53469
63859
  friend class ::WinMacros;
53470
 
  friend class ::CMatchSyntax;
53471
 
  friend class ::ExtGnu;
 
63860
  friend class ::WinAsm;
 
63861
  friend class ::WinDeclSpecs;
 
63862
  friend class ::WinMemberExplSpec;
 
63863
  friend class ::WinTypeKeywords;
 
63864
  friend class ::WinFriend;
53472
63865
  friend class ::ExtAC;
53473
63866
  friend class ::ExtACBuilderCoupling;
53474
63867
  friend class ::ExtACSyntaxCoupling;
53475
63868
  friend class ::ExtACTree;
53476
63869
  friend class ::ExtACKeywords;
53477
 
  friend class ::WinAsm;
53478
 
  friend class ::WinDeclSpecs;
53479
 
  friend class ::WinMemberExplSpec;
53480
 
  friend class ::WinTypeKeywords;
 
63870
  friend class ::ExtGnu;
53481
63871
  friend class ::PragmaOnceUnitState;
53482
63872
  friend class ::PragmaOnce;
53483
 
  friend class ::CCExprResolve;
53484
 
  friend class ::CExprResolve;
 
63873
  friend class ::CMatchSyntax;
53485
63874
 
53486
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63875
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53487
63876
 
53488
63877
  CTree *sons[5]; // key, open, type, close, expr
53489
63878
 
53490
63879
public:
 
63880
  /** Constructor.
 
63881
   *  \param k The 'sizeof' keyword.
 
63882
   *  \param o Left parenthesis around the type name.
 
63883
   *  \param t The type from which to get the size.
 
63884
   *  \param c Right parenthesis around the type name. */
53491
63885
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
53492
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
63886
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
63887
    AddSon (sons[3], c); AddSon (sons[4], 0);
53493
63888
  }
 
63889
  /** Constructor.
 
63890
   *  \param k The 'sizeof' keyword.
 
63891
   *  \param e The expression from which to get the size. */
53494
63892
  CT_SizeofExpr (CTree *k, CTree *e) {
53495
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
63893
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
63894
    AddSon (sons[3], 0); AddSon (sons[4], e);
53496
63895
  }
 
63896
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53497
63897
  static const char *NodeId ();
 
63898
  /** Get the name of the node. Can be compared with NodeId(). */
53498
63899
  const char *NodeName () const { return NodeId (); }
 
63900
  /** Get the number of sons. */
53499
63901
  int Sons () const { return CTree::Sons (sons, 5); }
 
63902
  /** Get the n-th son.
 
63903
   *  \param n The index of the son.
 
63904
   *  \return The n-th son or NULL. */
53500
63905
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
63906
  /** Replace a son.
 
63907
   *  \param old_son The son to replace.
 
63908
   *  \param new_son The new son. */
53501
63909
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53502
63910
    CTree::ReplaceSon (sons, 5, old_son, new_son);
53503
63911
  }
 
63912
  /** Get the expression. */
53504
63913
  CTree *Expr () const { return sons[4]; }
 
63914
  /** Get the type name. */
53505
63915
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
53506
63916
   private:
53507
63917
  typedef CT_SizeofExpr CCExprResolveExpr;
53508
63918
 
53509
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
63919
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
53510
63920
 public :
53511
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
63921
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
53512
63922
  typedef CT_SizeofExpr CExprResolveExpr;
53513
63923
 
53514
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
63924
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
53515
63925
 public :
53516
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
53517
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63926
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
63927
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53518
63928
};
53519
63929
 
 
63930
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
63931
 *  Tree node representing an index designator, i.e. [1]. */
53520
63932
 
53521
 
#line 53522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63933
#line 63934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53522
63934
} // closed Puma
 
63935
class CCExprResolve;
 
63936
class CExprResolve;
53523
63937
class WinIfExists;
53524
63938
class WinImportHandler;
53525
63939
class WinMacros;
53526
 
class CMatchSyntax;
53527
 
class ExtGnu;
 
63940
class WinAsm;
 
63941
class WinDeclSpecs;
 
63942
class WinMemberExplSpec;
 
63943
class WinTypeKeywords;
 
63944
class WinFriend;
53528
63945
class ExtAC;
53529
63946
class ExtACBuilderCoupling;
53530
63947
class ExtACSyntaxCoupling;
53531
63948
class ExtACTree;
53532
63949
class ExtACKeywords;
53533
 
class WinAsm;
53534
 
class WinDeclSpecs;
53535
 
class WinMemberExplSpec;
53536
 
class WinTypeKeywords;
 
63950
class ExtGnu;
53537
63951
class PragmaOnceUnitState;
53538
63952
class PragmaOnce;
53539
 
class CCExprResolve;
53540
 
class CExprResolve;
53541
 
namespace Puma {
53542
 
 
53543
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63953
class CMatchSyntax;
 
63954
namespace Puma {
 
63955
 
 
63956
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63957
 
 
63958
#line 63959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63959
} // closed Puma
 
63960
 
 
63961
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63962
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
63963
#include "CCExprResolveH.ah"
 
63964
#endif
 
63965
namespace Puma {
 
63966
 
 
63967
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
63968
 
 
63969
#line 63970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63970
} // closed Puma
 
63971
 
 
63972
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63973
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
63974
#include "CExprResolveH.ah"
 
63975
#endif
 
63976
namespace Puma {
 
63977
 
 
63978
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53544
63979
class CT_IndexDesignator : public CT_Expression {
53545
 
#line 53546 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
63980
#line 63981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
63981
  friend class ::CCExprResolve;
 
63982
  friend class ::CExprResolve;
53546
63983
  friend class ::WinIfExists;
53547
63984
  friend class ::WinImportHandler;
53548
63985
  friend class ::WinMacros;
53549
 
  friend class ::CMatchSyntax;
53550
 
  friend class ::ExtGnu;
 
63986
  friend class ::WinAsm;
 
63987
  friend class ::WinDeclSpecs;
 
63988
  friend class ::WinMemberExplSpec;
 
63989
  friend class ::WinTypeKeywords;
 
63990
  friend class ::WinFriend;
53551
63991
  friend class ::ExtAC;
53552
63992
  friend class ::ExtACBuilderCoupling;
53553
63993
  friend class ::ExtACSyntaxCoupling;
53554
63994
  friend class ::ExtACTree;
53555
63995
  friend class ::ExtACKeywords;
53556
 
  friend class ::WinAsm;
53557
 
  friend class ::WinDeclSpecs;
53558
 
  friend class ::WinMemberExplSpec;
53559
 
  friend class ::WinTypeKeywords;
 
63996
  friend class ::ExtGnu;
53560
63997
  friend class ::PragmaOnceUnitState;
53561
63998
  friend class ::PragmaOnce;
53562
 
  friend class ::CCExprResolve;
53563
 
  friend class ::CExprResolve;
 
63999
  friend class ::CMatchSyntax;
53564
64000
 
53565
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64001
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53566
64002
 
53567
64003
  CTree *sons[3]; // open, index, close
53568
64004
 
53569
64005
public:
 
64006
  /** Constructor.
 
64007
   *  \param o Left bracket of the index designator.
 
64008
   *  \param i The index expression.
 
64009
   *  \param c Right bracket of the index designator. */
53570
64010
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
53571
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
64011
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
53572
64012
  }
 
64013
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53573
64014
  static const char *NodeId ();
 
64015
  /** Get the name of the node. Can be compared with NodeId(). */
53574
64016
  const char *NodeName () const { return NodeId (); }
 
64017
  /** Get the number of sons. */
53575
64018
  int Sons () const { return 3; }
 
64019
  /** Get the n-th son.
 
64020
   *  \param n The index of the son.
 
64021
   *  \return The n-th son or NULL. */
53576
64022
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
64023
  /** Replace a son.
 
64024
   *  \param old_son The son to replace.
 
64025
   *  \param new_son The new son. */
53577
64026
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53578
64027
    CTree::ReplaceSon (sons, 3, old_son, new_son);
53579
64028
  }
53580
64029
   private:
53581
64030
  typedef CT_IndexDesignator CCExprResolveExpr;
53582
64031
 
53583
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
64032
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
53584
64033
 public :
53585
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
64034
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
53586
64035
  typedef CT_IndexDesignator CExprResolveExpr;
53587
64036
 
53588
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
64037
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
53589
64038
 public :
53590
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
53591
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64039
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
64040
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53592
64041
};
53593
64042
 
 
64043
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
64044
 *  Tree node representing a member designator, e.g. .a. */
53594
64045
 
53595
 
#line 53596 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64046
#line 64047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53596
64047
} // closed Puma
 
64048
class CCExprResolve;
 
64049
class CExprResolve;
53597
64050
class WinIfExists;
53598
64051
class WinImportHandler;
53599
64052
class WinMacros;
53600
 
class CMatchSyntax;
53601
 
class ExtGnu;
 
64053
class WinAsm;
 
64054
class WinDeclSpecs;
 
64055
class WinMemberExplSpec;
 
64056
class WinTypeKeywords;
 
64057
class WinFriend;
53602
64058
class ExtAC;
53603
64059
class ExtACBuilderCoupling;
53604
64060
class ExtACSyntaxCoupling;
53605
64061
class ExtACTree;
53606
64062
class ExtACKeywords;
53607
 
class WinAsm;
53608
 
class WinDeclSpecs;
53609
 
class WinMemberExplSpec;
53610
 
class WinTypeKeywords;
 
64063
class ExtGnu;
53611
64064
class PragmaOnceUnitState;
53612
64065
class PragmaOnce;
53613
 
class CCExprResolve;
53614
 
class CExprResolve;
53615
 
namespace Puma {
53616
 
 
53617
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64066
class CMatchSyntax;
 
64067
namespace Puma {
 
64068
 
 
64069
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64070
 
 
64071
#line 64072 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
64072
} // closed Puma
 
64073
 
 
64074
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
64075
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
64076
#include "CCExprResolveH.ah"
 
64077
#endif
 
64078
namespace Puma {
 
64079
 
 
64080
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64081
 
 
64082
#line 64083 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
64083
} // closed Puma
 
64084
 
 
64085
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
64086
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
64087
#include "CExprResolveH.ah"
 
64088
#endif
 
64089
namespace Puma {
 
64090
 
 
64091
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53618
64092
class CT_MembDesignator : public CT_Expression {
53619
 
#line 53620 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64093
#line 64094 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
64094
  friend class ::CCExprResolve;
 
64095
  friend class ::CExprResolve;
53620
64096
  friend class ::WinIfExists;
53621
64097
  friend class ::WinImportHandler;
53622
64098
  friend class ::WinMacros;
53623
 
  friend class ::CMatchSyntax;
53624
 
  friend class ::ExtGnu;
 
64099
  friend class ::WinAsm;
 
64100
  friend class ::WinDeclSpecs;
 
64101
  friend class ::WinMemberExplSpec;
 
64102
  friend class ::WinTypeKeywords;
 
64103
  friend class ::WinFriend;
53625
64104
  friend class ::ExtAC;
53626
64105
  friend class ::ExtACBuilderCoupling;
53627
64106
  friend class ::ExtACSyntaxCoupling;
53628
64107
  friend class ::ExtACTree;
53629
64108
  friend class ::ExtACKeywords;
53630
 
  friend class ::WinAsm;
53631
 
  friend class ::WinDeclSpecs;
53632
 
  friend class ::WinMemberExplSpec;
53633
 
  friend class ::WinTypeKeywords;
 
64109
  friend class ::ExtGnu;
53634
64110
  friend class ::PragmaOnceUnitState;
53635
64111
  friend class ::PragmaOnce;
53636
 
  friend class ::CCExprResolve;
53637
 
  friend class ::CExprResolve;
 
64112
  friend class ::CMatchSyntax;
53638
64113
 
53639
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64114
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53640
64115
 
53641
64116
  CTree *sons[2]; // dot, member
53642
64117
 
53643
64118
public:
53644
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
64119
  /** Constructor.
 
64120
   *  \param d The dot before the member name.
 
64121
   *  \param m The member name. */
 
64122
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
64123
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53645
64124
  static const char *NodeId ();
 
64125
  /** Get the name of the node. Can be compared with NodeId(). */
53646
64126
  const char *NodeName () const { return NodeId (); }
 
64127
  /** Get the number of sons. */
53647
64128
  int Sons () const { return 2; }
 
64129
  /** Get the n-th son.
 
64130
   *  \param n The index of the son.
 
64131
   *  \return The n-th son or NULL. */
53648
64132
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
64133
  /** Replace a son.
 
64134
   *  \param old_son The son to replace.
 
64135
   *  \param new_son The new son. */
53649
64136
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53650
64137
    CTree::ReplaceSon (sons, 2, old_son, new_son);
53651
64138
  }
53652
64139
   private:
53653
64140
  typedef CT_MembDesignator CCExprResolveExpr;
53654
64141
 
53655
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
64142
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
53656
64143
 public :
53657
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
64144
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
53658
64145
  typedef CT_MembDesignator CExprResolveExpr;
53659
64146
 
53660
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
64147
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
53661
64148
 public :
53662
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
53663
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64149
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
64150
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53664
64151
};
53665
64152
 
 
64153
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
64154
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
53666
64155
 
53667
 
#line 53668 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64156
#line 64157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53668
64157
} // closed Puma
 
64158
class CCExprResolve;
 
64159
class CExprResolve;
53669
64160
class WinIfExists;
53670
64161
class WinImportHandler;
53671
64162
class WinMacros;
53672
 
class CMatchSyntax;
53673
 
class ExtGnu;
 
64163
class WinAsm;
 
64164
class WinDeclSpecs;
 
64165
class WinMemberExplSpec;
 
64166
class WinTypeKeywords;
 
64167
class WinFriend;
53674
64168
class ExtAC;
53675
64169
class ExtACBuilderCoupling;
53676
64170
class ExtACSyntaxCoupling;
53677
64171
class ExtACTree;
53678
64172
class ExtACKeywords;
53679
 
class WinAsm;
53680
 
class WinDeclSpecs;
53681
 
class WinMemberExplSpec;
53682
 
class WinTypeKeywords;
 
64173
class ExtGnu;
53683
64174
class PragmaOnceUnitState;
53684
64175
class PragmaOnce;
53685
 
class CCExprResolve;
53686
 
class CExprResolve;
 
64176
class CMatchSyntax;
53687
64177
namespace Puma {
53688
64178
 
53689
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64179
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53690
64180
class CT_DesignatorSeq : public CT_List, public CSemValue {
53691
 
#line 53692 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64181
#line 64182 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
64182
  friend class ::CCExprResolve;
 
64183
  friend class ::CExprResolve;
53692
64184
  friend class ::WinIfExists;
53693
64185
  friend class ::WinImportHandler;
53694
64186
  friend class ::WinMacros;
53695
 
  friend class ::CMatchSyntax;
53696
 
  friend class ::ExtGnu;
 
64187
  friend class ::WinAsm;
 
64188
  friend class ::WinDeclSpecs;
 
64189
  friend class ::WinMemberExplSpec;
 
64190
  friend class ::WinTypeKeywords;
 
64191
  friend class ::WinFriend;
53697
64192
  friend class ::ExtAC;
53698
64193
  friend class ::ExtACBuilderCoupling;
53699
64194
  friend class ::ExtACSyntaxCoupling;
53700
64195
  friend class ::ExtACTree;
53701
64196
  friend class ::ExtACKeywords;
53702
 
  friend class ::WinAsm;
53703
 
  friend class ::WinDeclSpecs;
53704
 
  friend class ::WinMemberExplSpec;
53705
 
  friend class ::WinTypeKeywords;
 
64197
  friend class ::ExtGnu;
53706
64198
  friend class ::PragmaOnceUnitState;
53707
64199
  friend class ::PragmaOnce;
53708
 
  friend class ::CCExprResolve;
53709
 
  friend class ::CExprResolve;
 
64200
  friend class ::CMatchSyntax;
53710
64201
 
53711
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64202
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53712
64203
 
53713
64204
public:
 
64205
  /** Constructor.
 
64206
   *  \param size Initial number of designators. */
53714
64207
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
64208
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53715
64209
  static const char *NodeId ();
 
64210
  /** Get the name of the node. Can be compared with NodeId(). */
53716
64211
  const char *NodeName () const { return NodeId (); }
53717
64212
 
 
64213
  /** Get the type of the entity to initialize. */
53718
64214
  CTypeInfo *Type () const { return type; }
 
64215
  /** Get the value of the entity to initialize. */
53719
64216
  CExprValue *Value () const { return value; }
 
64217
  /** Get the semantic value object. */
53720
64218
  CSemValue *SemValue () const { return (CSemValue*)this; }
53721
64219
};
53722
64220
 
53726
64224
/*                                                                           */
53727
64225
/*****************************************************************************/
53728
64226
 
 
64227
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
64228
 *  Base class for all tree nodes representing declaration specifiers. */
53729
64229
 
53730
 
#line 53731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64230
#line 64231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53731
64231
} // closed Puma
 
64232
class CCExprResolve;
 
64233
class CExprResolve;
53732
64234
class WinIfExists;
53733
64235
class WinImportHandler;
53734
64236
class WinMacros;
53735
 
class CMatchSyntax;
53736
 
class ExtGnu;
 
64237
class WinAsm;
 
64238
class WinDeclSpecs;
 
64239
class WinMemberExplSpec;
 
64240
class WinTypeKeywords;
 
64241
class WinFriend;
53737
64242
class ExtAC;
53738
64243
class ExtACBuilderCoupling;
53739
64244
class ExtACSyntaxCoupling;
53740
64245
class ExtACTree;
53741
64246
class ExtACKeywords;
53742
 
class WinAsm;
53743
 
class WinDeclSpecs;
53744
 
class WinMemberExplSpec;
53745
 
class WinTypeKeywords;
 
64247
class ExtGnu;
53746
64248
class PragmaOnceUnitState;
53747
64249
class PragmaOnce;
53748
 
class CCExprResolve;
53749
 
class CExprResolve;
 
64250
class CMatchSyntax;
53750
64251
namespace Puma {
53751
64252
 
53752
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64253
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53753
64254
class CT_DeclSpec : public CTree {
53754
 
#line 53755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64255
#line 64256 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
64256
  friend class ::CCExprResolve;
 
64257
  friend class ::CExprResolve;
53755
64258
  friend class ::WinIfExists;
53756
64259
  friend class ::WinImportHandler;
53757
64260
  friend class ::WinMacros;
53758
 
  friend class ::CMatchSyntax;
53759
 
  friend class ::ExtGnu;
 
64261
  friend class ::WinAsm;
 
64262
  friend class ::WinDeclSpecs;
 
64263
  friend class ::WinMemberExplSpec;
 
64264
  friend class ::WinTypeKeywords;
 
64265
  friend class ::WinFriend;
53760
64266
  friend class ::ExtAC;
53761
64267
  friend class ::ExtACBuilderCoupling;
53762
64268
  friend class ::ExtACSyntaxCoupling;
53763
64269
  friend class ::ExtACTree;
53764
64270
  friend class ::ExtACKeywords;
53765
 
  friend class ::WinAsm;
53766
 
  friend class ::WinDeclSpecs;
53767
 
  friend class ::WinMemberExplSpec;
53768
 
  friend class ::WinTypeKeywords;
 
64271
  friend class ::ExtGnu;
53769
64272
  friend class ::PragmaOnceUnitState;
53770
64273
  friend class ::PragmaOnce;
53771
 
  friend class ::CCExprResolve;
53772
 
  friend class ::CExprResolve;
 
64274
  friend class ::CMatchSyntax;
53773
64275
 
53774
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64276
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53775
64277
 
53776
64278
protected:
 
64279
  /** Constructor. */
53777
64280
  CT_DeclSpec () {}
53778
64281
};
53779
64282
 
 
64283
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
64284
 *  Tree node representing a primitive declaration specifier. */
53780
64285
 
53781
 
#line 53782 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64286
#line 64287 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53782
64287
} // closed Puma
 
64288
class CCExprResolve;
 
64289
class CExprResolve;
53783
64290
class WinIfExists;
53784
64291
class WinImportHandler;
53785
64292
class WinMacros;
53786
 
class CMatchSyntax;
53787
 
class ExtGnu;
 
64293
class WinAsm;
 
64294
class WinDeclSpecs;
 
64295
class WinMemberExplSpec;
 
64296
class WinTypeKeywords;
 
64297
class WinFriend;
53788
64298
class ExtAC;
53789
64299
class ExtACBuilderCoupling;
53790
64300
class ExtACSyntaxCoupling;
53791
64301
class ExtACTree;
53792
64302
class ExtACKeywords;
53793
 
class WinAsm;
53794
 
class WinDeclSpecs;
53795
 
class WinMemberExplSpec;
53796
 
class WinTypeKeywords;
 
64303
class ExtGnu;
53797
64304
class PragmaOnceUnitState;
53798
64305
class PragmaOnce;
53799
 
class CCExprResolve;
53800
 
class CExprResolve;
 
64306
class CMatchSyntax;
53801
64307
namespace Puma {
53802
64308
 
53803
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64309
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53804
64310
class CT_PrimDeclSpec : public CT_DeclSpec {
53805
 
#line 53806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64311
#line 64312 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
64312
  friend class ::CCExprResolve;
 
64313
  friend class ::CExprResolve;
53806
64314
  friend class ::WinIfExists;
53807
64315
  friend class ::WinImportHandler;
53808
64316
  friend class ::WinMacros;
53809
 
  friend class ::CMatchSyntax;
53810
 
  friend class ::ExtGnu;
 
64317
  friend class ::WinAsm;
 
64318
  friend class ::WinDeclSpecs;
 
64319
  friend class ::WinMemberExplSpec;
 
64320
  friend class ::WinTypeKeywords;
 
64321
  friend class ::WinFriend;
53811
64322
  friend class ::ExtAC;
53812
64323
  friend class ::ExtACBuilderCoupling;
53813
64324
  friend class ::ExtACSyntaxCoupling;
53814
64325
  friend class ::ExtACTree;
53815
64326
  friend class ::ExtACKeywords;
53816
 
  friend class ::WinAsm;
53817
 
  friend class ::WinDeclSpecs;
53818
 
  friend class ::WinMemberExplSpec;
53819
 
  friend class ::WinTypeKeywords;
 
64327
  friend class ::ExtGnu;
53820
64328
  friend class ::PragmaOnceUnitState;
53821
64329
  friend class ::PragmaOnce;
53822
 
  friend class ::CCExprResolve;
53823
 
  friend class ::CExprResolve;
 
64330
  friend class ::CMatchSyntax;
53824
64331
 
53825
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64332
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53826
64333
 
53827
64334
public:
53828
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
53829
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
53830
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
53831
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
53832
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
53833
 
              // AspectC++ specific type specifier
53834
 
              PDS_UNKNOWN_T,
53835
 
              // Win specific declaration specifiers
53836
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
53837
 
              PDS_UNKNOWN, PDS_NUM };
 
64335
  /** Declaration specifier types. */
 
64336
  enum Type { 
 
64337
    PDS_FRIEND,    /** friend */
 
64338
    PDS_TYPEDEF,   /** typedef */
 
64339
    PDS_AUTO,      /** auto */
 
64340
    PDS_REGISTER,  /** register */
 
64341
    PDS_STATIC,    /** static */
 
64342
    PDS_EXTERN,    /** extern */
 
64343
    PDS_MUTABLE,   /** mutable */
 
64344
    PDS_INLINE,    /** inline */
 
64345
    PDS_VIRTUAL,   /** virtual */
 
64346
    PDS_EXPLICIT,  /** explicit */
 
64347
    PDS_CONST,     /** const */
 
64348
    PDS_VOLATILE,  /** volatile */
 
64349
    PDS_RESTRICT,  /** restrict */
 
64350
    PDS_CHAR,      /** char */
 
64351
    PDS_WCHAR_T,   /** wchar_t */
 
64352
    PDS_BOOL,      /** bool */
 
64353
    PDS_SHORT,     /** short */
 
64354
    PDS_INT,       /** int */
 
64355
    PDS_LONG,      /** long */
 
64356
    PDS_SIGNED,    /** signed */
 
64357
    PDS_UNSIGNED,  /** unsigned */
 
64358
    PDS_FLOAT,     /** float */
 
64359
    PDS_DOUBLE,    /** double */
 
64360
    PDS_VOID,      /** void */
 
64361
    // AspectC++ specific type specifier
 
64362
    PDS_UNKNOWN_T, /** unknown_t */
 
64363
    // Win specific declaration specifiers
 
64364
    PDS_CDECL,     /** __cdecl */
 
64365
    PDS_STDCALL,   /** __stdcall */
 
64366
    PDS_FASTCALL,  /** __fastcall */
 
64367
    PDS_INT64,     /** __int64 */
 
64368
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
64369
    PDS_NUM        /** Number of declaration specifier types. */
 
64370
  };
53838
64371
 
53839
64372
private:
53840
64373
  Type _type;
53841
 
  CT_Token *_token;
 
64374
  CTree *_token; // has to be a CT_Token
53842
64375
 
53843
64376
  void determine_type ();
53844
64377
 
53845
64378
public:
53846
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
64379
  /** Constructor.
 
64380
   *  \param t The token containing the declaration specifier. */
 
64381
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
64382
  /** Constructor.
 
64383
   *  \param t The declaration specifier type. */
53847
64384
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
64385
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53848
64386
  static const char *NodeId ();
 
64387
  /** Get the name of the node. Can be compared with NodeId(). */
53849
64388
  const char *NodeName () const { return NodeId (); }
 
64389
  /** Get the number of sons. */
53850
64390
  int Sons () const { return _token ? 1 : 0; }
 
64391
  /** Get the n-th son.
 
64392
   *  \param n The index of the son.
 
64393
   *  \return The n-th son or NULL. */
53851
64394
  CTree *Son (int n) const 
53852
64395
   { return (n == 0) ? _token : (CTree*)0; }
 
64396
  /** Get the textual representation of the declaration specifier.
 
64397
   *  \return The string representation or " ". */
53853
64398
  const char *SpecText () const 
53854
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
64399
   { return _token ? _token->token ()->text () : " "; }
 
64400
  /** Get the declaration specifier type. */
53855
64401
  Type SpecType () const { return _type; }
 
64402
  /** Number of declaration specifier types. */
53856
64403
  static const int NumTypes = PDS_NUM;
 
64404
  /** Replace a son.
 
64405
   *  \param old_son The son to replace.
 
64406
   *  \param new_son The new son. */
 
64407
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
64408
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
64409
    determine_type ();
 
64410
  }
53857
64411
};
53858
64412
 
 
64413
/** \class CT_NamedType CTree.h Puma/CTree.h
 
64414
 *  Tree node representing a named type, e.g. (int*)a. 
 
64415
 *  where int* is a type with a generated name. */
53859
64416
 
53860
 
#line 53861 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64417
#line 64418 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53861
64418
} // closed Puma
 
64419
class CCExprResolve;
 
64420
class CExprResolve;
53862
64421
class WinIfExists;
53863
64422
class WinImportHandler;
53864
64423
class WinMacros;
53865
 
class CMatchSyntax;
53866
 
class ExtGnu;
 
64424
class WinAsm;
 
64425
class WinDeclSpecs;
 
64426
class WinMemberExplSpec;
 
64427
class WinTypeKeywords;
 
64428
class WinFriend;
53867
64429
class ExtAC;
53868
64430
class ExtACBuilderCoupling;
53869
64431
class ExtACSyntaxCoupling;
53870
64432
class ExtACTree;
53871
64433
class ExtACKeywords;
53872
 
class WinAsm;
53873
 
class WinDeclSpecs;
53874
 
class WinMemberExplSpec;
53875
 
class WinTypeKeywords;
 
64434
class ExtGnu;
53876
64435
class PragmaOnceUnitState;
53877
64436
class PragmaOnce;
53878
 
class CCExprResolve;
53879
 
class CExprResolve;
 
64437
class CMatchSyntax;
53880
64438
namespace Puma {
53881
64439
 
53882
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64440
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53883
64441
class CT_NamedType : public CT_DeclSpec, public CSemObject {
53884
 
#line 53885 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64442
#line 64443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
64443
  friend class ::CCExprResolve;
 
64444
  friend class ::CExprResolve;
53885
64445
  friend class ::WinIfExists;
53886
64446
  friend class ::WinImportHandler;
53887
64447
  friend class ::WinMacros;
53888
 
  friend class ::CMatchSyntax;
53889
 
  friend class ::ExtGnu;
 
64448
  friend class ::WinAsm;
 
64449
  friend class ::WinDeclSpecs;
 
64450
  friend class ::WinMemberExplSpec;
 
64451
  friend class ::WinTypeKeywords;
 
64452
  friend class ::WinFriend;
53890
64453
  friend class ::ExtAC;
53891
64454
  friend class ::ExtACBuilderCoupling;
53892
64455
  friend class ::ExtACSyntaxCoupling;
53893
64456
  friend class ::ExtACTree;
53894
64457
  friend class ::ExtACKeywords;
53895
 
  friend class ::WinAsm;
53896
 
  friend class ::WinDeclSpecs;
53897
 
  friend class ::WinMemberExplSpec;
53898
 
  friend class ::WinTypeKeywords;
 
64458
  friend class ::ExtGnu;
53899
64459
  friend class ::PragmaOnceUnitState;
53900
64460
  friend class ::PragmaOnce;
53901
 
  friend class ::CCExprResolve;
53902
 
  friend class ::CExprResolve;
 
64461
  friend class ::CMatchSyntax;
53903
64462
 
53904
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64463
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53905
64464
 
53906
64465
  CTree *sons[2]; // declspecs, declarator
53907
64466
 
53908
64467
public:
53909
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
64468
  /** Constructor.
 
64469
   *  \param dss The declaration specifier sequence of the type.
 
64470
   *  \param d The type declarator. */
 
64471
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
64472
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53910
64473
  static const char *NodeId ();
 
64474
  /** Get the name of the node. Can be compared with NodeId(). */
53911
64475
  const char *NodeName () const { return NodeId (); }
 
64476
  /** Get the number of sons. */
53912
64477
  int Sons () const { return CTree::Sons (sons, 2); }
 
64478
  /** Get the n-th son.
 
64479
   *  \param n The index of the son.
 
64480
   *  \return The n-th son or NULL. */
53913
64481
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
64482
  /** Get the declarator. */
53914
64483
  CTree *Declarator () const { return sons[1]; }
 
64484
  /** Replace a son.
 
64485
   *  \param old_son The son to replace.
 
64486
   *  \param new_son The new son. */
53915
64487
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53916
64488
    CTree::ReplaceSon (sons, 2, old_son, new_son);
53917
64489
  }
 
64490
  /** Get the semantic information object. */
53918
64491
  CSemObject *SemObject () const { return (CSemObject*)this; }
53919
64492
};
53920
64493
      
 
64494
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
64495
 *  Tree node representing a class specifier, e.g. class X. */
53921
64496
 
53922
 
#line 53923 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64497
#line 64498 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53923
64498
} // closed Puma
 
64499
class CCExprResolve;
 
64500
class CExprResolve;
53924
64501
class WinIfExists;
53925
64502
class WinImportHandler;
53926
64503
class WinMacros;
53927
 
class CMatchSyntax;
53928
 
class ExtGnu;
 
64504
class WinAsm;
 
64505
class WinDeclSpecs;
 
64506
class WinMemberExplSpec;
 
64507
class WinTypeKeywords;
 
64508
class WinFriend;
53929
64509
class ExtAC;
53930
64510
class ExtACBuilderCoupling;
53931
64511
class ExtACSyntaxCoupling;
53932
64512
class ExtACTree;
53933
64513
class ExtACKeywords;
53934
 
class WinAsm;
53935
 
class WinDeclSpecs;
53936
 
class WinMemberExplSpec;
53937
 
class WinTypeKeywords;
 
64514
class ExtGnu;
53938
64515
class PragmaOnceUnitState;
53939
64516
class PragmaOnce;
53940
 
class CCExprResolve;
53941
 
class CExprResolve;
 
64517
class CMatchSyntax;
53942
64518
namespace Puma {
53943
64519
 
53944
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64520
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53945
64521
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
53946
 
#line 53947 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64522
#line 64523 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
64523
  friend class ::CCExprResolve;
 
64524
  friend class ::CExprResolve;
53947
64525
  friend class ::WinIfExists;
53948
64526
  friend class ::WinImportHandler;
53949
64527
  friend class ::WinMacros;
53950
 
  friend class ::CMatchSyntax;
53951
 
  friend class ::ExtGnu;
 
64528
  friend class ::WinAsm;
 
64529
  friend class ::WinDeclSpecs;
 
64530
  friend class ::WinMemberExplSpec;
 
64531
  friend class ::WinTypeKeywords;
 
64532
  friend class ::WinFriend;
53952
64533
  friend class ::ExtAC;
53953
64534
  friend class ::ExtACBuilderCoupling;
53954
64535
  friend class ::ExtACSyntaxCoupling;
53955
64536
  friend class ::ExtACTree;
53956
64537
  friend class ::ExtACKeywords;
53957
 
  friend class ::WinAsm;
53958
 
  friend class ::WinDeclSpecs;
53959
 
  friend class ::WinMemberExplSpec;
53960
 
  friend class ::WinTypeKeywords;
 
64538
  friend class ::ExtGnu;
53961
64539
  friend class ::PragmaOnceUnitState;
53962
64540
  friend class ::PragmaOnce;
53963
 
  friend class ::CCExprResolve;
53964
 
  friend class ::CExprResolve;
 
64541
  friend class ::CMatchSyntax;
53965
64542
 
53966
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64543
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
53967
64544
 
53968
64545
  CTree *sons[2]; // key, name
53969
64546
  
53970
64547
public:
53971
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
64548
  /** Constructor.
 
64549
   *  \param k The 'class' or 'struct' keyword.
 
64550
   *  \param n The class name. */
 
64551
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
64552
  /** Get the identifier for this node type. Can be compared with NodeName(). */
53972
64553
  static const char *NodeId ();
 
64554
  /** Get the name of the node. Can be compared with NodeId(). */
53973
64555
  const char *NodeName () const { return NodeId (); }
 
64556
  /** Get the number of sons. */
53974
64557
  int Sons () const { return 2; }
 
64558
  /** Get the n-th son.
 
64559
   *  \param n The index of the son.
 
64560
   *  \return The n-th son or NULL. */
53975
64561
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
64562
  /** Get the class name. */
53976
64563
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
64564
  /** Get the semantic information object. */
53977
64565
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
64566
  /** Replace a son.
 
64567
   *  \param old_son The son to replace.
 
64568
   *  \param new_son The new son. */
53978
64569
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
53979
64570
    CTree::ReplaceSon (sons, 2, old_son, new_son);
53980
64571
  }
53981
64572
};
53982
64573
 
 
64574
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
64575
 *  Tree node representing a union specifier, e.g. union X. */
53983
64576
 
53984
 
#line 53985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64577
#line 64578 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
53985
64578
} // closed Puma
 
64579
class CCExprResolve;
 
64580
class CExprResolve;
53986
64581
class WinIfExists;
53987
64582
class WinImportHandler;
53988
64583
class WinMacros;
53989
 
class CMatchSyntax;
53990
 
class ExtGnu;
 
64584
class WinAsm;
 
64585
class WinDeclSpecs;
 
64586
class WinMemberExplSpec;
 
64587
class WinTypeKeywords;
 
64588
class WinFriend;
53991
64589
class ExtAC;
53992
64590
class ExtACBuilderCoupling;
53993
64591
class ExtACSyntaxCoupling;
53994
64592
class ExtACTree;
53995
64593
class ExtACKeywords;
53996
 
class WinAsm;
53997
 
class WinDeclSpecs;
53998
 
class WinMemberExplSpec;
53999
 
class WinTypeKeywords;
 
64594
class ExtGnu;
54000
64595
class PragmaOnceUnitState;
54001
64596
class PragmaOnce;
54002
 
class CCExprResolve;
54003
 
class CExprResolve;
 
64597
class CMatchSyntax;
54004
64598
namespace Puma {
54005
64599
 
54006
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64600
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54007
64601
class CT_UnionSpec : public CT_ClassSpec {
54008
 
#line 54009 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64602
#line 64603 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
64603
  friend class ::CCExprResolve;
 
64604
  friend class ::CExprResolve;
54009
64605
  friend class ::WinIfExists;
54010
64606
  friend class ::WinImportHandler;
54011
64607
  friend class ::WinMacros;
54012
 
  friend class ::CMatchSyntax;
54013
 
  friend class ::ExtGnu;
 
64608
  friend class ::WinAsm;
 
64609
  friend class ::WinDeclSpecs;
 
64610
  friend class ::WinMemberExplSpec;
 
64611
  friend class ::WinTypeKeywords;
 
64612
  friend class ::WinFriend;
54014
64613
  friend class ::ExtAC;
54015
64614
  friend class ::ExtACBuilderCoupling;
54016
64615
  friend class ::ExtACSyntaxCoupling;
54017
64616
  friend class ::ExtACTree;
54018
64617
  friend class ::ExtACKeywords;
54019
 
  friend class ::WinAsm;
54020
 
  friend class ::WinDeclSpecs;
54021
 
  friend class ::WinMemberExplSpec;
54022
 
  friend class ::WinTypeKeywords;
 
64618
  friend class ::ExtGnu;
54023
64619
  friend class ::PragmaOnceUnitState;
54024
64620
  friend class ::PragmaOnce;
54025
 
  friend class ::CCExprResolve;
54026
 
  friend class ::CExprResolve;
 
64621
  friend class ::CMatchSyntax;
54027
64622
 
54028
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64623
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54029
64624
 
54030
64625
public:
 
64626
  /** Constructor.
 
64627
   *  \param k The 'union' keyword.
 
64628
   *  \param n The name of the union. */
54031
64629
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
64630
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54032
64631
  static const char *NodeId ();
 
64632
  /** Get the name of the node. Can be compared with NodeId(). */
54033
64633
  const char *NodeName () const { return NodeId (); }
54034
64634
};
54035
64635
 
 
64636
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
64637
 *  Tree node representing an enumeration specifier, e.g. enum X. */
54036
64638
 
54037
 
#line 54038 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64639
#line 64640 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54038
64640
} // closed Puma
 
64641
class CCExprResolve;
 
64642
class CExprResolve;
54039
64643
class WinIfExists;
54040
64644
class WinImportHandler;
54041
64645
class WinMacros;
54042
 
class CMatchSyntax;
54043
 
class ExtGnu;
 
64646
class WinAsm;
 
64647
class WinDeclSpecs;
 
64648
class WinMemberExplSpec;
 
64649
class WinTypeKeywords;
 
64650
class WinFriend;
54044
64651
class ExtAC;
54045
64652
class ExtACBuilderCoupling;
54046
64653
class ExtACSyntaxCoupling;
54047
64654
class ExtACTree;
54048
64655
class ExtACKeywords;
54049
 
class WinAsm;
54050
 
class WinDeclSpecs;
54051
 
class WinMemberExplSpec;
54052
 
class WinTypeKeywords;
 
64656
class ExtGnu;
54053
64657
class PragmaOnceUnitState;
54054
64658
class PragmaOnce;
54055
 
class CCExprResolve;
54056
 
class CExprResolve;
 
64659
class CMatchSyntax;
54057
64660
namespace Puma {
54058
64661
 
54059
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64662
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54060
64663
class CT_EnumSpec : public CT_ClassSpec {
54061
 
#line 54062 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64664
#line 64665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
64665
  friend class ::CCExprResolve;
 
64666
  friend class ::CExprResolve;
54062
64667
  friend class ::WinIfExists;
54063
64668
  friend class ::WinImportHandler;
54064
64669
  friend class ::WinMacros;
54065
 
  friend class ::CMatchSyntax;
54066
 
  friend class ::ExtGnu;
 
64670
  friend class ::WinAsm;
 
64671
  friend class ::WinDeclSpecs;
 
64672
  friend class ::WinMemberExplSpec;
 
64673
  friend class ::WinTypeKeywords;
 
64674
  friend class ::WinFriend;
54067
64675
  friend class ::ExtAC;
54068
64676
  friend class ::ExtACBuilderCoupling;
54069
64677
  friend class ::ExtACSyntaxCoupling;
54070
64678
  friend class ::ExtACTree;
54071
64679
  friend class ::ExtACKeywords;
54072
 
  friend class ::WinAsm;
54073
 
  friend class ::WinDeclSpecs;
54074
 
  friend class ::WinMemberExplSpec;
54075
 
  friend class ::WinTypeKeywords;
 
64680
  friend class ::ExtGnu;
54076
64681
  friend class ::PragmaOnceUnitState;
54077
64682
  friend class ::PragmaOnce;
54078
 
  friend class ::CCExprResolve;
54079
 
  friend class ::CExprResolve;
 
64683
  friend class ::CMatchSyntax;
54080
64684
 
54081
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64685
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54082
64686
 
54083
64687
public:
 
64688
  /** Constructor.
 
64689
   *  \param k The 'enum' keyword. 
 
64690
   *  \param n The name of the enumeration. */
54084
64691
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
64692
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54085
64693
  static const char *NodeId ();
 
64694
  /** Get the name of the node. Can be compared with NodeId(). */
54086
64695
  const char *NodeName () const { return NodeId (); }
54087
64696
};
54088
64697
 
 
64698
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
64699
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
54089
64700
 
54090
 
#line 54091 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64701
#line 64702 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54091
64702
} // closed Puma
 
64703
class CCExprResolve;
 
64704
class CExprResolve;
54092
64705
class WinIfExists;
54093
64706
class WinImportHandler;
54094
64707
class WinMacros;
54095
 
class CMatchSyntax;
54096
 
class ExtGnu;
 
64708
class WinAsm;
 
64709
class WinDeclSpecs;
 
64710
class WinMemberExplSpec;
 
64711
class WinTypeKeywords;
 
64712
class WinFriend;
54097
64713
class ExtAC;
54098
64714
class ExtACBuilderCoupling;
54099
64715
class ExtACSyntaxCoupling;
54100
64716
class ExtACTree;
54101
64717
class ExtACKeywords;
54102
 
class WinAsm;
54103
 
class WinDeclSpecs;
54104
 
class WinMemberExplSpec;
54105
 
class WinTypeKeywords;
 
64718
class ExtGnu;
54106
64719
class PragmaOnceUnitState;
54107
64720
class PragmaOnce;
54108
 
class CCExprResolve;
54109
 
class CExprResolve;
 
64721
class CMatchSyntax;
54110
64722
namespace Puma {
54111
64723
 
54112
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64724
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54113
64725
class CT_ExceptionSpec : public CT_DeclSpec {
54114
 
#line 54115 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64726
#line 64727 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
64727
  friend class ::CCExprResolve;
 
64728
  friend class ::CExprResolve;
54115
64729
  friend class ::WinIfExists;
54116
64730
  friend class ::WinImportHandler;
54117
64731
  friend class ::WinMacros;
54118
 
  friend class ::CMatchSyntax;
54119
 
  friend class ::ExtGnu;
 
64732
  friend class ::WinAsm;
 
64733
  friend class ::WinDeclSpecs;
 
64734
  friend class ::WinMemberExplSpec;
 
64735
  friend class ::WinTypeKeywords;
 
64736
  friend class ::WinFriend;
54120
64737
  friend class ::ExtAC;
54121
64738
  friend class ::ExtACBuilderCoupling;
54122
64739
  friend class ::ExtACSyntaxCoupling;
54123
64740
  friend class ::ExtACTree;
54124
64741
  friend class ::ExtACKeywords;
54125
 
  friend class ::WinAsm;
54126
 
  friend class ::WinDeclSpecs;
54127
 
  friend class ::WinMemberExplSpec;
54128
 
  friend class ::WinTypeKeywords;
 
64742
  friend class ::ExtGnu;
54129
64743
  friend class ::PragmaOnceUnitState;
54130
64744
  friend class ::PragmaOnce;
54131
 
  friend class ::CCExprResolve;
54132
 
  friend class ::CExprResolve;
 
64745
  friend class ::CMatchSyntax;
54133
64746
 
54134
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64747
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54135
64748
 
54136
64749
  CTree *sons[2]; // throw, type_id_list
54137
64750
  
54138
64751
public:
54139
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
64752
  /** Constructor.
 
64753
   *  \param k The 'throw' keyword.
 
64754
   *  \param l The type list for the exception type to throw. */
 
64755
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
64756
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54140
64757
  static const char *NodeId ();
 
64758
  /** Get the name of the node. Can be compared with NodeId(). */
54141
64759
  const char *NodeName () const { return NodeId (); }
 
64760
  /** Get the number of sons. */
54142
64761
  int Sons () const { return 2; }
 
64762
  /** Get the n-th son.
 
64763
   *  \param n The index of the son.
 
64764
   *  \return The n-th son or NULL. */
54143
64765
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
64766
  /** Get the exception type list. */
54144
64767
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
64768
  /** Replace a son.
 
64769
   *  \param old_son The son to replace.
 
64770
   *  \param new_son The new son. */
54145
64771
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
54146
64772
    CTree::ReplaceSon (sons, 2, old_son, new_son);
54147
64773
  }
54153
64779
/*                                                                           */
54154
64780
/*****************************************************************************/
54155
64781
 
 
64782
/** \class CT_Decl CTree.h Puma/CTree.h
 
64783
 *  Base class for all tree nodes representing declarations. */
54156
64784
 
54157
 
#line 54158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64785
#line 64786 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54158
64786
} // closed Puma
 
64787
class CCExprResolve;
 
64788
class CExprResolve;
54159
64789
class WinIfExists;
54160
64790
class WinImportHandler;
54161
64791
class WinMacros;
54162
 
class CMatchSyntax;
54163
 
class ExtGnu;
 
64792
class WinAsm;
 
64793
class WinDeclSpecs;
 
64794
class WinMemberExplSpec;
 
64795
class WinTypeKeywords;
 
64796
class WinFriend;
54164
64797
class ExtAC;
54165
64798
class ExtACBuilderCoupling;
54166
64799
class ExtACSyntaxCoupling;
54167
64800
class ExtACTree;
54168
64801
class ExtACKeywords;
54169
 
class WinAsm;
54170
 
class WinDeclSpecs;
54171
 
class WinMemberExplSpec;
54172
 
class WinTypeKeywords;
 
64802
class ExtGnu;
54173
64803
class PragmaOnceUnitState;
54174
64804
class PragmaOnce;
54175
 
class CCExprResolve;
54176
 
class CExprResolve;
 
64805
class CMatchSyntax;
54177
64806
namespace Puma {
54178
64807
 
54179
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64808
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54180
64809
class CT_Decl : public CTree {
54181
 
#line 54182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64810
#line 64811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
64811
  friend class ::CCExprResolve;
 
64812
  friend class ::CExprResolve;
54182
64813
  friend class ::WinIfExists;
54183
64814
  friend class ::WinImportHandler;
54184
64815
  friend class ::WinMacros;
54185
 
  friend class ::CMatchSyntax;
54186
 
  friend class ::ExtGnu;
 
64816
  friend class ::WinAsm;
 
64817
  friend class ::WinDeclSpecs;
 
64818
  friend class ::WinMemberExplSpec;
 
64819
  friend class ::WinTypeKeywords;
 
64820
  friend class ::WinFriend;
54187
64821
  friend class ::ExtAC;
54188
64822
  friend class ::ExtACBuilderCoupling;
54189
64823
  friend class ::ExtACSyntaxCoupling;
54190
64824
  friend class ::ExtACTree;
54191
64825
  friend class ::ExtACKeywords;
54192
 
  friend class ::WinAsm;
54193
 
  friend class ::WinDeclSpecs;
54194
 
  friend class ::WinMemberExplSpec;
54195
 
  friend class ::WinTypeKeywords;
 
64826
  friend class ::ExtGnu;
54196
64827
  friend class ::PragmaOnceUnitState;
54197
64828
  friend class ::PragmaOnce;
54198
 
  friend class ::CCExprResolve;
54199
 
  friend class ::CExprResolve;
 
64829
  friend class ::CMatchSyntax;
54200
64830
 
54201
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64831
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54202
64832
 
54203
64833
  CT_LinkageSpec *_linkage;
 
64834
  
54204
64835
protected:
 
64836
  /** Constructor. */
54205
64837
  CT_Decl () : _linkage (0) {}
 
64838
  
54206
64839
public:
 
64840
  /** Set the linkage of the declared entity.
 
64841
   *  \param l The linkage specifiers. */
54207
64842
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
64843
  /** Get the linkage specifiers. */
54208
64844
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
64845
  /** Get this. */
 
64846
  virtual CT_Decl *IsDeclaration () { return this; }
54209
64847
};
54210
64848
 
 
64849
/** \class CT_Program CTree.h Puma/CTree.h
 
64850
 *  Root node of C/C++ syntax tree. */
54211
64851
 
54212
 
#line 54213 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64852
#line 64853 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54213
64853
} // closed Puma
 
64854
class CCExprResolve;
 
64855
class CExprResolve;
54214
64856
class WinIfExists;
54215
64857
class WinImportHandler;
54216
64858
class WinMacros;
54217
 
class CMatchSyntax;
54218
 
class ExtGnu;
 
64859
class WinAsm;
 
64860
class WinDeclSpecs;
 
64861
class WinMemberExplSpec;
 
64862
class WinTypeKeywords;
 
64863
class WinFriend;
54219
64864
class ExtAC;
54220
64865
class ExtACBuilderCoupling;
54221
64866
class ExtACSyntaxCoupling;
54222
64867
class ExtACTree;
54223
64868
class ExtACKeywords;
54224
 
class WinAsm;
54225
 
class WinDeclSpecs;
54226
 
class WinMemberExplSpec;
54227
 
class WinTypeKeywords;
 
64869
class ExtGnu;
54228
64870
class PragmaOnceUnitState;
54229
64871
class PragmaOnce;
54230
 
class CCExprResolve;
54231
 
class CExprResolve;
 
64872
class CMatchSyntax;
54232
64873
namespace Puma {
54233
64874
 
54234
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64875
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54235
64876
class CT_Program : public CT_DeclList, public CSemScope {
54236
 
#line 54237 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64877
#line 64878 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
64878
  friend class ::CCExprResolve;
 
64879
  friend class ::CExprResolve;
54237
64880
  friend class ::WinIfExists;
54238
64881
  friend class ::WinImportHandler;
54239
64882
  friend class ::WinMacros;
54240
 
  friend class ::CMatchSyntax;
54241
 
  friend class ::ExtGnu;
 
64883
  friend class ::WinAsm;
 
64884
  friend class ::WinDeclSpecs;
 
64885
  friend class ::WinMemberExplSpec;
 
64886
  friend class ::WinTypeKeywords;
 
64887
  friend class ::WinFriend;
54242
64888
  friend class ::ExtAC;
54243
64889
  friend class ::ExtACBuilderCoupling;
54244
64890
  friend class ::ExtACSyntaxCoupling;
54245
64891
  friend class ::ExtACTree;
54246
64892
  friend class ::ExtACKeywords;
54247
 
  friend class ::WinAsm;
54248
 
  friend class ::WinDeclSpecs;
54249
 
  friend class ::WinMemberExplSpec;
54250
 
  friend class ::WinTypeKeywords;
 
64893
  friend class ::ExtGnu;
54251
64894
  friend class ::PragmaOnceUnitState;
54252
64895
  friend class ::PragmaOnce;
54253
 
  friend class ::CCExprResolve;
54254
 
  friend class ::CExprResolve;
 
64896
  friend class ::CMatchSyntax;
54255
64897
 
54256
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64898
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54257
64899
 
54258
64900
public:
 
64901
  /** Constructor.
 
64902
   *  \param size The initial number of declarations in the program.
 
64903
   *  \param incr The initial increment count. */
54259
64904
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
64905
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54260
64906
  static const char *NodeId ();
 
64907
  /** Get the name of the node. Can be compared with NodeId(). */
54261
64908
  const char *NodeName () const { return NodeId (); }
 
64909
  /** Get the semantic scope object. */
 
64910
  CSemScope *SemScope () const { return (CSemScope*)this; }
54262
64911
};
54263
64912
   
 
64913
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
64914
 *  Tree node representing an object declaration, e.g. int *i. */
54264
64915
 
54265
 
#line 54266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64916
#line 64917 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54266
64917
} // closed Puma
 
64918
class CCExprResolve;
 
64919
class CExprResolve;
54267
64920
class WinIfExists;
54268
64921
class WinImportHandler;
54269
64922
class WinMacros;
54270
 
class CMatchSyntax;
54271
 
class ExtGnu;
 
64923
class WinAsm;
 
64924
class WinDeclSpecs;
 
64925
class WinMemberExplSpec;
 
64926
class WinTypeKeywords;
 
64927
class WinFriend;
54272
64928
class ExtAC;
54273
64929
class ExtACBuilderCoupling;
54274
64930
class ExtACSyntaxCoupling;
54275
64931
class ExtACTree;
54276
64932
class ExtACKeywords;
54277
 
class WinAsm;
54278
 
class WinDeclSpecs;
54279
 
class WinMemberExplSpec;
54280
 
class WinTypeKeywords;
 
64933
class ExtGnu;
54281
64934
class PragmaOnceUnitState;
54282
64935
class PragmaOnce;
54283
 
class CCExprResolve;
54284
 
class CExprResolve;
 
64936
class CMatchSyntax;
54285
64937
namespace Puma {
54286
64938
 
54287
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64939
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54288
64940
class CT_ObjDecl : public CT_Decl {
54289
 
#line 54290 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64941
#line 64942 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
64942
  friend class ::CCExprResolve;
 
64943
  friend class ::CExprResolve;
54290
64944
  friend class ::WinIfExists;
54291
64945
  friend class ::WinImportHandler;
54292
64946
  friend class ::WinMacros;
54293
 
  friend class ::CMatchSyntax;
54294
 
  friend class ::ExtGnu;
 
64947
  friend class ::WinAsm;
 
64948
  friend class ::WinDeclSpecs;
 
64949
  friend class ::WinMemberExplSpec;
 
64950
  friend class ::WinTypeKeywords;
 
64951
  friend class ::WinFriend;
54295
64952
  friend class ::ExtAC;
54296
64953
  friend class ::ExtACBuilderCoupling;
54297
64954
  friend class ::ExtACSyntaxCoupling;
54298
64955
  friend class ::ExtACTree;
54299
64956
  friend class ::ExtACKeywords;
54300
 
  friend class ::WinAsm;
54301
 
  friend class ::WinDeclSpecs;
54302
 
  friend class ::WinMemberExplSpec;
54303
 
  friend class ::WinTypeKeywords;
 
64957
  friend class ::ExtGnu;
54304
64958
  friend class ::PragmaOnceUnitState;
54305
64959
  friend class ::PragmaOnce;
54306
 
  friend class ::CCExprResolve;
54307
 
  friend class ::CExprResolve;
 
64960
  friend class ::CMatchSyntax;
54308
64961
 
54309
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
64962
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54310
64963
 
54311
64964
  CTree *sons[3]; // declspecs, declarators, colon
54312
64965
 
54313
64966
public:
 
64967
  /** Constructor.
 
64968
   *  \param dsl The declaration specifier sequence.
 
64969
   *  \param dl The declarator list.
 
64970
   *  \param c Optional colon. */
54314
64971
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
54315
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
64972
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
54316
64973
  }
 
64974
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54317
64975
  static const char *NodeId ();
 
64976
  /** Get the name of the node. Can be compared with NodeId(). */
54318
64977
  const char *NodeName () const { return NodeId (); }
 
64978
  /** Get the number of sons. */
54319
64979
  int Sons () const { return 3; }
 
64980
  /** Get the n-th son.
 
64981
   *  \param n The index of the son.
 
64982
   *  \return The n-th son or NULL. */
54320
64983
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
64984
  /** Get the declaration specifier sequence. */
54321
64985
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
64986
  /** Get the declarator list. */
54322
64987
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
64988
  /** Replace a son.
 
64989
   *  \param old_son The son to replace.
 
64990
   *  \param new_son The new son. */
54323
64991
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
54324
64992
    CTree::ReplaceSon (sons, 3, old_son, new_son);
54325
64993
  }
54326
64994
};
54327
64995
 
 
64996
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
64997
 *  Tree node representing a template declaration. */
54328
64998
 
54329
 
#line 54330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
64999
#line 65000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54330
65000
} // closed Puma
 
65001
class CCExprResolve;
 
65002
class CExprResolve;
54331
65003
class WinIfExists;
54332
65004
class WinImportHandler;
54333
65005
class WinMacros;
54334
 
class CMatchSyntax;
54335
 
class ExtGnu;
 
65006
class WinAsm;
 
65007
class WinDeclSpecs;
 
65008
class WinMemberExplSpec;
 
65009
class WinTypeKeywords;
 
65010
class WinFriend;
54336
65011
class ExtAC;
54337
65012
class ExtACBuilderCoupling;
54338
65013
class ExtACSyntaxCoupling;
54339
65014
class ExtACTree;
54340
65015
class ExtACKeywords;
54341
 
class WinAsm;
54342
 
class WinDeclSpecs;
54343
 
class WinMemberExplSpec;
54344
 
class WinTypeKeywords;
 
65016
class ExtGnu;
54345
65017
class PragmaOnceUnitState;
54346
65018
class PragmaOnce;
54347
 
class CCExprResolve;
54348
 
class CExprResolve;
 
65019
class CMatchSyntax;
54349
65020
namespace Puma {
54350
65021
 
54351
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65022
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54352
65023
class CT_TemplateDecl : public CT_Decl, public CSemScope {
54353
 
#line 54354 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65024
#line 65025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
65025
  friend class ::CCExprResolve;
 
65026
  friend class ::CExprResolve;
54354
65027
  friend class ::WinIfExists;
54355
65028
  friend class ::WinImportHandler;
54356
65029
  friend class ::WinMacros;
54357
 
  friend class ::CMatchSyntax;
54358
 
  friend class ::ExtGnu;
 
65030
  friend class ::WinAsm;
 
65031
  friend class ::WinDeclSpecs;
 
65032
  friend class ::WinMemberExplSpec;
 
65033
  friend class ::WinTypeKeywords;
 
65034
  friend class ::WinFriend;
54359
65035
  friend class ::ExtAC;
54360
65036
  friend class ::ExtACBuilderCoupling;
54361
65037
  friend class ::ExtACSyntaxCoupling;
54362
65038
  friend class ::ExtACTree;
54363
65039
  friend class ::ExtACKeywords;
54364
 
  friend class ::WinAsm;
54365
 
  friend class ::WinDeclSpecs;
54366
 
  friend class ::WinMemberExplSpec;
54367
 
  friend class ::WinTypeKeywords;
 
65040
  friend class ::ExtGnu;
54368
65041
  friend class ::PragmaOnceUnitState;
54369
65042
  friend class ::PragmaOnce;
54370
 
  friend class ::CCExprResolve;
54371
 
  friend class ::CExprResolve;
 
65043
  friend class ::CMatchSyntax;
54372
65044
 
54373
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65045
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54374
65046
 
54375
65047
  CTree *sons[3]; // export, param_list, decl
54376
65048
 
54377
65049
public:
 
65050
  /** Constructor.
 
65051
   *  \param e Optional 'export' keyword. 
 
65052
   *  \param p The template parameter list.
 
65053
   *  \param d The class or function declaration. */
54378
65054
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
54379
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
65055
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
54380
65056
  }
 
65057
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54381
65058
  static const char *NodeId ();
 
65059
  /** Get the name of the node. Can be compared with NodeId(). */
54382
65060
  const char *NodeName () const { return NodeId (); }
 
65061
  /** Get the number of sons. */
54383
65062
  int Sons () const { return CTree::Sons (sons, 3); }
 
65063
  /** Get the n-th son.
 
65064
   *  \param n The index of the son.
 
65065
   *  \return The n-th son or NULL. */
54384
65066
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
65067
  /** Replace a son.
 
65068
   *  \param old_son The son to replace.
 
65069
   *  \param new_son The new son. */
54385
65070
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
54386
65071
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
54387
65072
  }
 
65073
  /** Get the 'export' keyword. */
54388
65074
  CTree *Export () const { return sons[0]; }
 
65075
  /** Get the template parameter list. */
54389
65076
  CT_TemplateParamList *Parameters () const { 
54390
65077
    return (CT_TemplateParamList*)sons[1]; 
54391
65078
  }
 
65079
  /** Get the class or function declaration. */
54392
65080
  CTree *Declaration () const { return sons[2]; }
 
65081
  /** Get the semantic scope object. */
 
65082
  CSemScope *SemScope () const { return (CSemScope*)this; }
54393
65083
};
54394
65084
 
 
65085
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
65086
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
54395
65087
 
54396
 
#line 54397 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65088
#line 65089 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54397
65089
} // closed Puma
 
65090
class CCExprResolve;
 
65091
class CExprResolve;
54398
65092
class WinIfExists;
54399
65093
class WinImportHandler;
54400
65094
class WinMacros;
54401
 
class CMatchSyntax;
54402
 
class ExtGnu;
 
65095
class WinAsm;
 
65096
class WinDeclSpecs;
 
65097
class WinMemberExplSpec;
 
65098
class WinTypeKeywords;
 
65099
class WinFriend;
54403
65100
class ExtAC;
54404
65101
class ExtACBuilderCoupling;
54405
65102
class ExtACSyntaxCoupling;
54406
65103
class ExtACTree;
54407
65104
class ExtACKeywords;
54408
 
class WinAsm;
54409
 
class WinDeclSpecs;
54410
 
class WinMemberExplSpec;
54411
 
class WinTypeKeywords;
 
65105
class ExtGnu;
54412
65106
class PragmaOnceUnitState;
54413
65107
class PragmaOnce;
54414
 
class CCExprResolve;
54415
 
class CExprResolve;
 
65108
class CMatchSyntax;
54416
65109
namespace Puma {
54417
65110
 
54418
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65111
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54419
65112
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
54420
 
#line 54421 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65113
#line 65114 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
65114
  friend class ::CCExprResolve;
 
65115
  friend class ::CExprResolve;
54421
65116
  friend class ::WinIfExists;
54422
65117
  friend class ::WinImportHandler;
54423
65118
  friend class ::WinMacros;
54424
 
  friend class ::CMatchSyntax;
54425
 
  friend class ::ExtGnu;
 
65119
  friend class ::WinAsm;
 
65120
  friend class ::WinDeclSpecs;
 
65121
  friend class ::WinMemberExplSpec;
 
65122
  friend class ::WinTypeKeywords;
 
65123
  friend class ::WinFriend;
54426
65124
  friend class ::ExtAC;
54427
65125
  friend class ::ExtACBuilderCoupling;
54428
65126
  friend class ::ExtACSyntaxCoupling;
54429
65127
  friend class ::ExtACTree;
54430
65128
  friend class ::ExtACKeywords;
54431
 
  friend class ::WinAsm;
54432
 
  friend class ::WinDeclSpecs;
54433
 
  friend class ::WinMemberExplSpec;
54434
 
  friend class ::WinTypeKeywords;
 
65129
  friend class ::ExtGnu;
54435
65130
  friend class ::PragmaOnceUnitState;
54436
65131
  friend class ::PragmaOnce;
54437
 
  friend class ::CCExprResolve;
54438
 
  friend class ::CExprResolve;
 
65132
  friend class ::CMatchSyntax;
54439
65133
 
54440
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65134
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54441
65135
 
54442
65136
protected:
 
65137
  /** Constructor. */
54443
65138
  CT_TemplateParamDecl () {}
54444
65139
  
54445
65140
public:
 
65141
  /** Get the template default argument. */
54446
65142
  virtual CT_ExprList *DefaultArgument () const = 0;
 
65143
  /** Get the semantic information object. */
54447
65144
  CSemObject *SemObject () const { return (CSemObject*)this; }
54448
65145
};
54449
65146
 
54450
65147
 
54451
 
#line 54452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65148
#line 65149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54452
65149
} // closed Puma
 
65150
class CCExprResolve;
 
65151
class CExprResolve;
54453
65152
class WinIfExists;
54454
65153
class WinImportHandler;
54455
65154
class WinMacros;
54456
 
class CMatchSyntax;
54457
 
class ExtGnu;
 
65155
class WinAsm;
 
65156
class WinDeclSpecs;
 
65157
class WinMemberExplSpec;
 
65158
class WinTypeKeywords;
 
65159
class WinFriend;
54458
65160
class ExtAC;
54459
65161
class ExtACBuilderCoupling;
54460
65162
class ExtACSyntaxCoupling;
54461
65163
class ExtACTree;
54462
65164
class ExtACKeywords;
54463
 
class WinAsm;
54464
 
class WinDeclSpecs;
54465
 
class WinMemberExplSpec;
54466
 
class WinTypeKeywords;
 
65165
class ExtGnu;
54467
65166
class PragmaOnceUnitState;
54468
65167
class PragmaOnce;
54469
 
class CCExprResolve;
54470
 
class CExprResolve;
 
65168
class CMatchSyntax;
54471
65169
namespace Puma {
54472
65170
 
54473
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65171
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54474
65172
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
54475
 
#line 54476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65173
#line 65174 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
65174
  friend class ::CCExprResolve;
 
65175
  friend class ::CExprResolve;
54476
65176
  friend class ::WinIfExists;
54477
65177
  friend class ::WinImportHandler;
54478
65178
  friend class ::WinMacros;
54479
 
  friend class ::CMatchSyntax;
54480
 
  friend class ::ExtGnu;
 
65179
  friend class ::WinAsm;
 
65180
  friend class ::WinDeclSpecs;
 
65181
  friend class ::WinMemberExplSpec;
 
65182
  friend class ::WinTypeKeywords;
 
65183
  friend class ::WinFriend;
54481
65184
  friend class ::ExtAC;
54482
65185
  friend class ::ExtACBuilderCoupling;
54483
65186
  friend class ::ExtACSyntaxCoupling;
54484
65187
  friend class ::ExtACTree;
54485
65188
  friend class ::ExtACKeywords;
54486
 
  friend class ::WinAsm;
54487
 
  friend class ::WinDeclSpecs;
54488
 
  friend class ::WinMemberExplSpec;
54489
 
  friend class ::WinTypeKeywords;
 
65189
  friend class ::ExtGnu;
54490
65190
  friend class ::PragmaOnceUnitState;
54491
65191
  friend class ::PragmaOnce;
54492
 
  friend class ::CCExprResolve;
54493
 
  friend class ::CExprResolve;
 
65192
  friend class ::CMatchSyntax;
54494
65193
 
54495
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65194
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54496
65195
 
54497
65196
  CTree *sons[3]; // declspecs, declarator, init
54498
65197
 
54499
65198
public:
54500
65199
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
54501
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
65200
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
54502
65201
  }
 
65202
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54503
65203
  static const char *NodeId ();
 
65204
  /** Get the name of the node. Can be compared with NodeId(). */
54504
65205
  const char *NodeName () const { return NodeId (); }
 
65206
  /** Get the number of sons. */
54505
65207
  int Sons () const { return CTree::Sons (sons, 3); }
 
65208
  /** Get the n-th son.
 
65209
   *  \param n The index of the son.
 
65210
   *  \return The n-th son or NULL. */
54506
65211
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
54507
65212
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
54508
65213
  CTree *Declarator () const { return sons[1]; }
54509
65214
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
54510
65215
  CSemObject *SemObject () const { return (CSemObject*)this; }
54511
 
  void Initializer (CTree *i) { sons[2] = i; }
 
65216
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
65217
  /** Replace a son.
 
65218
   *  \param old_son The son to replace.
 
65219
   *  \param new_son The new son. */
54512
65220
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
54513
65221
    CTree::ReplaceSon (sons, 3, old_son, new_son);
54514
65222
  }
54515
65223
};
54516
65224
 
54517
65225
 
54518
 
#line 54519 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65226
#line 65227 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54519
65227
} // closed Puma
 
65228
class CCExprResolve;
 
65229
class CExprResolve;
54520
65230
class WinIfExists;
54521
65231
class WinImportHandler;
54522
65232
class WinMacros;
54523
 
class CMatchSyntax;
54524
 
class ExtGnu;
 
65233
class WinAsm;
 
65234
class WinDeclSpecs;
 
65235
class WinMemberExplSpec;
 
65236
class WinTypeKeywords;
 
65237
class WinFriend;
54525
65238
class ExtAC;
54526
65239
class ExtACBuilderCoupling;
54527
65240
class ExtACSyntaxCoupling;
54528
65241
class ExtACTree;
54529
65242
class ExtACKeywords;
54530
 
class WinAsm;
54531
 
class WinDeclSpecs;
54532
 
class WinMemberExplSpec;
54533
 
class WinTypeKeywords;
 
65243
class ExtGnu;
54534
65244
class PragmaOnceUnitState;
54535
65245
class PragmaOnce;
54536
 
class CCExprResolve;
54537
 
class CExprResolve;
 
65246
class CMatchSyntax;
54538
65247
namespace Puma {
54539
65248
 
54540
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65249
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54541
65250
class CT_TypeParamDecl : public CT_TemplateParamDecl {
54542
 
#line 54543 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65251
#line 65252 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
65252
  friend class ::CCExprResolve;
 
65253
  friend class ::CExprResolve;
54543
65254
  friend class ::WinIfExists;
54544
65255
  friend class ::WinImportHandler;
54545
65256
  friend class ::WinMacros;
54546
 
  friend class ::CMatchSyntax;
54547
 
  friend class ::ExtGnu;
 
65257
  friend class ::WinAsm;
 
65258
  friend class ::WinDeclSpecs;
 
65259
  friend class ::WinMemberExplSpec;
 
65260
  friend class ::WinTypeKeywords;
 
65261
  friend class ::WinFriend;
54548
65262
  friend class ::ExtAC;
54549
65263
  friend class ::ExtACBuilderCoupling;
54550
65264
  friend class ::ExtACSyntaxCoupling;
54551
65265
  friend class ::ExtACTree;
54552
65266
  friend class ::ExtACKeywords;
54553
 
  friend class ::WinAsm;
54554
 
  friend class ::WinDeclSpecs;
54555
 
  friend class ::WinMemberExplSpec;
54556
 
  friend class ::WinTypeKeywords;
 
65267
  friend class ::ExtGnu;
54557
65268
  friend class ::PragmaOnceUnitState;
54558
65269
  friend class ::PragmaOnce;
54559
 
  friend class ::CCExprResolve;
54560
 
  friend class ::CExprResolve;
 
65270
  friend class ::CMatchSyntax;
54561
65271
 
54562
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65272
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54563
65273
 
54564
65274
  CTree *sons[4]; // params, key, id, init
54565
65275
 
54566
65276
public:
54567
65277
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
54568
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
65278
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
65279
    AddSon (sons[2], id); AddSon (sons[3], i);
54569
65280
  }
 
65281
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54570
65282
  static const char *NodeId ();
 
65283
  /** Get the name of the node. Can be compared with NodeId(). */
54571
65284
  const char *NodeName () const { return NodeId (); }
 
65285
  /** Get the number of sons. */
54572
65286
  int Sons () const { return CTree::Sons (sons, 4); }
 
65287
  /** Get the n-th son.
 
65288
   *  \param n The index of the son.
 
65289
   *  \return The n-th son or NULL. */
54573
65290
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
54574
65291
  CT_TemplateParamList *Parameters () const { 
54575
65292
    return (CT_TemplateParamList*)sons[0]; 
54576
65293
  }
54577
65294
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
54578
65295
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
54579
 
  void Initializer (CTree *i) { sons[3] = i; }
 
65296
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
65297
  /** Replace a son.
 
65298
   *  \param old_son The son to replace.
 
65299
   *  \param new_son The new son. */
54580
65300
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
54581
65301
    CTree::ReplaceSon (sons, 4, old_son, new_son);
54582
65302
  }
54583
65303
};
54584
65304
 
54585
65305
 
54586
 
#line 54587 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65306
#line 65307 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54587
65307
} // closed Puma
 
65308
class CCExprResolve;
 
65309
class CExprResolve;
54588
65310
class WinIfExists;
54589
65311
class WinImportHandler;
54590
65312
class WinMacros;
54591
 
class CMatchSyntax;
54592
 
class ExtGnu;
 
65313
class WinAsm;
 
65314
class WinDeclSpecs;
 
65315
class WinMemberExplSpec;
 
65316
class WinTypeKeywords;
 
65317
class WinFriend;
54593
65318
class ExtAC;
54594
65319
class ExtACBuilderCoupling;
54595
65320
class ExtACSyntaxCoupling;
54596
65321
class ExtACTree;
54597
65322
class ExtACKeywords;
54598
 
class WinAsm;
54599
 
class WinDeclSpecs;
54600
 
class WinMemberExplSpec;
54601
 
class WinTypeKeywords;
 
65323
class ExtGnu;
54602
65324
class PragmaOnceUnitState;
54603
65325
class PragmaOnce;
54604
 
class CCExprResolve;
54605
 
class CExprResolve;
 
65326
class CMatchSyntax;
54606
65327
namespace Puma {
54607
65328
 
54608
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65329
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54609
65330
class CT_EnumDef : public CT_Decl, public CSemObject {
54610
 
#line 54611 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65331
#line 65332 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
65332
  friend class ::CCExprResolve;
 
65333
  friend class ::CExprResolve;
54611
65334
  friend class ::WinIfExists;
54612
65335
  friend class ::WinImportHandler;
54613
65336
  friend class ::WinMacros;
54614
 
  friend class ::CMatchSyntax;
54615
 
  friend class ::ExtGnu;
 
65337
  friend class ::WinAsm;
 
65338
  friend class ::WinDeclSpecs;
 
65339
  friend class ::WinMemberExplSpec;
 
65340
  friend class ::WinTypeKeywords;
 
65341
  friend class ::WinFriend;
54616
65342
  friend class ::ExtAC;
54617
65343
  friend class ::ExtACBuilderCoupling;
54618
65344
  friend class ::ExtACSyntaxCoupling;
54619
65345
  friend class ::ExtACTree;
54620
65346
  friend class ::ExtACKeywords;
54621
 
  friend class ::WinAsm;
54622
 
  friend class ::WinDeclSpecs;
54623
 
  friend class ::WinMemberExplSpec;
54624
 
  friend class ::WinTypeKeywords;
 
65347
  friend class ::ExtGnu;
54625
65348
  friend class ::PragmaOnceUnitState;
54626
65349
  friend class ::PragmaOnce;
54627
 
  friend class ::CCExprResolve;
54628
 
  friend class ::CExprResolve;
 
65350
  friend class ::CMatchSyntax;
54629
65351
 
54630
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65352
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54631
65353
 
54632
65354
  CTree *sons[3]; // key, name, enumerators
54633
65355
 
54634
65356
public:
54635
65357
  CT_EnumDef (CTree *k, CTree *n) {
54636
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
65358
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
54637
65359
  }
 
65360
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54638
65361
  static const char *NodeId ();
 
65362
  /** Get the name of the node. Can be compared with NodeId(). */
54639
65363
  const char *NodeName () const { return NodeId (); }
 
65364
  /** Get the number of sons. */
54640
65365
  int Sons () const { return CTree::Sons (sons, 3); }
 
65366
  /** Get the n-th son.
 
65367
   *  \param n The index of the son.
 
65368
   *  \return The n-th son or NULL. */
54641
65369
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
54642
65370
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
54643
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
65371
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
54644
65372
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
65373
  /** Replace a son.
 
65374
   *  \param old_son The son to replace.
 
65375
   *  \param new_son The new son. */
54645
65376
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
54646
65377
    CTree::ReplaceSon (sons, 3, old_son, new_son);
54647
65378
  }
54649
65380
};
54650
65381
 
54651
65382
 
54652
 
#line 54653 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65383
#line 65384 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54653
65384
} // closed Puma
 
65385
class CCExprResolve;
 
65386
class CExprResolve;
54654
65387
class WinIfExists;
54655
65388
class WinImportHandler;
54656
65389
class WinMacros;
54657
 
class CMatchSyntax;
54658
 
class ExtGnu;
 
65390
class WinAsm;
 
65391
class WinDeclSpecs;
 
65392
class WinMemberExplSpec;
 
65393
class WinTypeKeywords;
 
65394
class WinFriend;
54659
65395
class ExtAC;
54660
65396
class ExtACBuilderCoupling;
54661
65397
class ExtACSyntaxCoupling;
54662
65398
class ExtACTree;
54663
65399
class ExtACKeywords;
54664
 
class WinAsm;
54665
 
class WinDeclSpecs;
54666
 
class WinMemberExplSpec;
54667
 
class WinTypeKeywords;
 
65400
class ExtGnu;
54668
65401
class PragmaOnceUnitState;
54669
65402
class PragmaOnce;
54670
 
class CCExprResolve;
54671
 
class CExprResolve;
 
65403
class CMatchSyntax;
54672
65404
namespace Puma {
54673
65405
 
54674
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65406
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54675
65407
class CT_Enumerator : public CT_Decl, public CSemObject {
54676
 
#line 54677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65408
#line 65409 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
65409
  friend class ::CCExprResolve;
 
65410
  friend class ::CExprResolve;
54677
65411
  friend class ::WinIfExists;
54678
65412
  friend class ::WinImportHandler;
54679
65413
  friend class ::WinMacros;
54680
 
  friend class ::CMatchSyntax;
54681
 
  friend class ::ExtGnu;
 
65414
  friend class ::WinAsm;
 
65415
  friend class ::WinDeclSpecs;
 
65416
  friend class ::WinMemberExplSpec;
 
65417
  friend class ::WinTypeKeywords;
 
65418
  friend class ::WinFriend;
54682
65419
  friend class ::ExtAC;
54683
65420
  friend class ::ExtACBuilderCoupling;
54684
65421
  friend class ::ExtACSyntaxCoupling;
54685
65422
  friend class ::ExtACTree;
54686
65423
  friend class ::ExtACKeywords;
54687
 
  friend class ::WinAsm;
54688
 
  friend class ::WinDeclSpecs;
54689
 
  friend class ::WinMemberExplSpec;
54690
 
  friend class ::WinTypeKeywords;
 
65424
  friend class ::ExtGnu;
54691
65425
  friend class ::PragmaOnceUnitState;
54692
65426
  friend class ::PragmaOnce;
54693
 
  friend class ::CCExprResolve;
54694
 
  friend class ::CExprResolve;
 
65427
  friend class ::CMatchSyntax;
54695
65428
 
54696
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65429
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54697
65430
 
54698
65431
  CTree *sons[2]; // name, init
54699
65432
 
54700
65433
public:
54701
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
65434
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
65435
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54702
65436
  static const char *NodeId ();
 
65437
  /** Get the name of the node. Can be compared with NodeId(). */
54703
65438
  const char *NodeName () const { return NodeId (); }
 
65439
  /** Get the number of sons. */
54704
65440
  int Sons () const { return CTree::Sons (sons, 2); }
 
65441
  /** Get the n-th son.
 
65442
   *  \param n The index of the son.
 
65443
   *  \return The n-th son or NULL. */
54705
65444
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
54706
65445
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
54707
 
  void Initializer (CTree *i) { sons[1] = i; }
 
65446
  void Initializer (CTree *i) { AddSon (sons[1], i); }
54708
65447
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
65448
  /** Replace a son.
 
65449
   *  \param old_son The son to replace.
 
65450
   *  \param new_son The new son. */
54709
65451
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
54710
65452
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
54711
65453
  }
54713
65455
};
54714
65456
 
54715
65457
 
54716
 
#line 54717 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65458
#line 65459 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54717
65459
} // closed Puma
 
65460
class CCExprResolve;
 
65461
class CExprResolve;
54718
65462
class WinIfExists;
54719
65463
class WinImportHandler;
54720
65464
class WinMacros;
54721
 
class CMatchSyntax;
54722
 
class ExtGnu;
 
65465
class WinAsm;
 
65466
class WinDeclSpecs;
 
65467
class WinMemberExplSpec;
 
65468
class WinTypeKeywords;
 
65469
class WinFriend;
54723
65470
class ExtAC;
54724
65471
class ExtACBuilderCoupling;
54725
65472
class ExtACSyntaxCoupling;
54726
65473
class ExtACTree;
54727
65474
class ExtACKeywords;
54728
 
class WinAsm;
54729
 
class WinDeclSpecs;
54730
 
class WinMemberExplSpec;
54731
 
class WinTypeKeywords;
 
65475
class ExtGnu;
54732
65476
class PragmaOnceUnitState;
54733
65477
class PragmaOnce;
54734
 
class CCExprResolve;
54735
 
class CExprResolve;
 
65478
class CMatchSyntax;
54736
65479
namespace Puma {
54737
65480
 
54738
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65481
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54739
65482
class CT_FctDef : public CT_Decl, public CSemObject {
54740
 
#line 54741 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65483
#line 65484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
65484
  friend class ::CCExprResolve;
 
65485
  friend class ::CExprResolve;
54741
65486
  friend class ::WinIfExists;
54742
65487
  friend class ::WinImportHandler;
54743
65488
  friend class ::WinMacros;
54744
 
  friend class ::CMatchSyntax;
54745
 
  friend class ::ExtGnu;
 
65489
  friend class ::WinAsm;
 
65490
  friend class ::WinDeclSpecs;
 
65491
  friend class ::WinMemberExplSpec;
 
65492
  friend class ::WinTypeKeywords;
 
65493
  friend class ::WinFriend;
54746
65494
  friend class ::ExtAC;
54747
65495
  friend class ::ExtACBuilderCoupling;
54748
65496
  friend class ::ExtACSyntaxCoupling;
54749
65497
  friend class ::ExtACTree;
54750
65498
  friend class ::ExtACKeywords;
54751
 
  friend class ::WinAsm;
54752
 
  friend class ::WinDeclSpecs;
54753
 
  friend class ::WinMemberExplSpec;
54754
 
  friend class ::WinTypeKeywords;
 
65499
  friend class ::ExtGnu;
54755
65500
  friend class ::PragmaOnceUnitState;
54756
65501
  friend class ::PragmaOnce;
54757
 
  friend class ::CCExprResolve;
54758
 
  friend class ::CExprResolve;
 
65502
  friend class ::CMatchSyntax;
54759
65503
 
54760
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65504
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54761
65505
 
54762
65506
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
54763
65507
 
54764
65508
public:
54765
65509
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
54766
65510
             CTree *b, CTree *hs) {
54767
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
54768
 
    sons[5] = b; sons[6] = hs; 
 
65511
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
65512
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
65513
    AddSon (sons[6], hs); 
54769
65514
  }
 
65515
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54770
65516
  static const char *NodeId ();
 
65517
  /** Get the name of the node. Can be compared with NodeId(). */
54771
65518
  const char *NodeName () const { return NodeId (); }
 
65519
  /** Get the number of sons. */
54772
65520
  int Sons () const { return CTree::Sons (sons, 7); }
 
65521
  /** Get the n-th son.
 
65522
   *  \param n The index of the son.
 
65523
   *  \return The n-th son or NULL. */
54773
65524
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
54774
65525
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
54775
65526
  CTree *Declarator () const { return sons[1]; }
54779
65530
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
54780
65531
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
54781
65532
  CSemObject *SemObject () const { return (CSemObject*)this; }
54782
 
  void CtorInit (CTree *i) { sons[3] = i; }
54783
 
  void Body (CTree *b) { sons[5] = b; }
 
65533
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
65534
  void Body (CTree *b) { AddSon (sons[5], b); }
54784
65535
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
54785
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
65536
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
65537
    AddSon (sons[5], b); AddSon (sons[6], h);
54786
65538
  }
 
65539
  /** Replace a son.
 
65540
   *  \param old_son The son to replace.
 
65541
   *  \param new_son The new son. */
54787
65542
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
54788
65543
    CTree::ReplaceSon (sons, 7, old_son, new_son);
54789
65544
  }
54790
65545
};
54791
65546
 
54792
65547
 
54793
 
#line 54794 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65548
#line 65549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54794
65549
} // closed Puma
 
65550
class CCExprResolve;
 
65551
class CExprResolve;
54795
65552
class WinIfExists;
54796
65553
class WinImportHandler;
54797
65554
class WinMacros;
54798
 
class CMatchSyntax;
54799
 
class ExtGnu;
 
65555
class WinAsm;
 
65556
class WinDeclSpecs;
 
65557
class WinMemberExplSpec;
 
65558
class WinTypeKeywords;
 
65559
class WinFriend;
54800
65560
class ExtAC;
54801
65561
class ExtACBuilderCoupling;
54802
65562
class ExtACSyntaxCoupling;
54803
65563
class ExtACTree;
54804
65564
class ExtACKeywords;
54805
 
class WinAsm;
54806
 
class WinDeclSpecs;
54807
 
class WinMemberExplSpec;
54808
 
class WinTypeKeywords;
 
65565
class ExtGnu;
54809
65566
class PragmaOnceUnitState;
54810
65567
class PragmaOnce;
54811
 
class CCExprResolve;
54812
 
class CExprResolve;
 
65568
class CMatchSyntax;
54813
65569
namespace Puma {
54814
65570
 
54815
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65571
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54816
65572
class CT_AsmDef : public CT_Decl {
54817
 
#line 54818 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65573
#line 65574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
65574
  friend class ::CCExprResolve;
 
65575
  friend class ::CExprResolve;
54818
65576
  friend class ::WinIfExists;
54819
65577
  friend class ::WinImportHandler;
54820
65578
  friend class ::WinMacros;
54821
 
  friend class ::CMatchSyntax;
54822
 
  friend class ::ExtGnu;
 
65579
  friend class ::WinAsm;
 
65580
  friend class ::WinDeclSpecs;
 
65581
  friend class ::WinMemberExplSpec;
 
65582
  friend class ::WinTypeKeywords;
 
65583
  friend class ::WinFriend;
54823
65584
  friend class ::ExtAC;
54824
65585
  friend class ::ExtACBuilderCoupling;
54825
65586
  friend class ::ExtACSyntaxCoupling;
54826
65587
  friend class ::ExtACTree;
54827
65588
  friend class ::ExtACKeywords;
54828
 
  friend class ::WinAsm;
54829
 
  friend class ::WinDeclSpecs;
54830
 
  friend class ::WinMemberExplSpec;
54831
 
  friend class ::WinTypeKeywords;
 
65589
  friend class ::ExtGnu;
54832
65590
  friend class ::PragmaOnceUnitState;
54833
65591
  friend class ::PragmaOnce;
54834
 
  friend class ::CCExprResolve;
54835
 
  friend class ::CExprResolve;
 
65592
  friend class ::CMatchSyntax;
54836
65593
 
54837
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65594
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54838
65595
 
54839
65596
  CTree *sons[5]; // asm, open, str, close, semi_colon
54840
65597
 
54841
65598
public:
54842
65599
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
54843
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
65600
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
65601
    AddSon (sons[3], c); AddSon (sons[4], sc); 
54844
65602
  }
 
65603
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54845
65604
  static const char *NodeId ();
 
65605
  /** Get the name of the node. Can be compared with NodeId(). */
54846
65606
  const char *NodeName () const { return NodeId (); }
 
65607
  /** Get the number of sons. */
54847
65608
  int Sons () const { return 5; }
 
65609
  /** Get the n-th son.
 
65610
   *  \param n The index of the son.
 
65611
   *  \return The n-th son or NULL. */
54848
65612
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
54849
65613
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
65614
  /** Replace a son.
 
65615
   *  \param old_son The son to replace.
 
65616
   *  \param new_son The new son. */
54850
65617
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
54851
65618
    CTree::ReplaceSon (sons, 5, old_son, new_son);
54852
65619
  }
54853
65620
};
54854
65621
 
54855
65622
 
54856
 
#line 54857 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65623
#line 65624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54857
65624
} // closed Puma
 
65625
class CCExprResolve;
 
65626
class CExprResolve;
54858
65627
class WinIfExists;
54859
65628
class WinImportHandler;
54860
65629
class WinMacros;
54861
 
class CMatchSyntax;
54862
 
class ExtGnu;
 
65630
class WinAsm;
 
65631
class WinDeclSpecs;
 
65632
class WinMemberExplSpec;
 
65633
class WinTypeKeywords;
 
65634
class WinFriend;
54863
65635
class ExtAC;
54864
65636
class ExtACBuilderCoupling;
54865
65637
class ExtACSyntaxCoupling;
54866
65638
class ExtACTree;
54867
65639
class ExtACKeywords;
54868
 
class WinAsm;
54869
 
class WinDeclSpecs;
54870
 
class WinMemberExplSpec;
54871
 
class WinTypeKeywords;
 
65640
class ExtGnu;
54872
65641
class PragmaOnceUnitState;
54873
65642
class PragmaOnce;
54874
 
class CCExprResolve;
54875
 
class CExprResolve;
 
65643
class CMatchSyntax;
54876
65644
namespace Puma {
54877
65645
 
54878
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65646
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54879
65647
class CT_Handler : public CT_Decl, public CSemScope {
54880
 
#line 54881 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65648
#line 65649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
65649
  friend class ::CCExprResolve;
 
65650
  friend class ::CExprResolve;
54881
65651
  friend class ::WinIfExists;
54882
65652
  friend class ::WinImportHandler;
54883
65653
  friend class ::WinMacros;
54884
 
  friend class ::CMatchSyntax;
54885
 
  friend class ::ExtGnu;
 
65654
  friend class ::WinAsm;
 
65655
  friend class ::WinDeclSpecs;
 
65656
  friend class ::WinMemberExplSpec;
 
65657
  friend class ::WinTypeKeywords;
 
65658
  friend class ::WinFriend;
54886
65659
  friend class ::ExtAC;
54887
65660
  friend class ::ExtACBuilderCoupling;
54888
65661
  friend class ::ExtACSyntaxCoupling;
54889
65662
  friend class ::ExtACTree;
54890
65663
  friend class ::ExtACKeywords;
54891
 
  friend class ::WinAsm;
54892
 
  friend class ::WinDeclSpecs;
54893
 
  friend class ::WinMemberExplSpec;
54894
 
  friend class ::WinTypeKeywords;
 
65664
  friend class ::ExtGnu;
54895
65665
  friend class ::PragmaOnceUnitState;
54896
65666
  friend class ::PragmaOnce;
54897
 
  friend class ::CCExprResolve;
54898
 
  friend class ::CExprResolve;
 
65667
  friend class ::CMatchSyntax;
54899
65668
 
54900
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65669
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54901
65670
 
54902
65671
  CTree *sons[3]; // catch, exception_decl, stmt
54903
65672
 
54904
65673
public:
54905
65674
  CT_Handler (CTree *c, CTree *e, CTree *s) {
54906
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
65675
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
54907
65676
  }
 
65677
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54908
65678
  static const char *NodeId ();
 
65679
  /** Get the name of the node. Can be compared with NodeId(). */
54909
65680
  const char *NodeName () const { return NodeId (); }
 
65681
  /** Get the number of sons. */
54910
65682
  int Sons () const { return 3; }
 
65683
  /** Get the n-th son.
 
65684
   *  \param n The index of the son.
 
65685
   *  \return The n-th son or NULL. */
54911
65686
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
54912
65687
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
54913
65688
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
65689
  /** Replace a son.
 
65690
   *  \param old_son The son to replace.
 
65691
   *  \param new_son The new son. */
54914
65692
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
54915
65693
    CTree::ReplaceSon (sons, 3, old_son, new_son);
54916
65694
  }
 
65695
  CSemScope *SemScope () const { return (CSemScope*)this; }
54917
65696
};
54918
65697
 
54919
65698
 
54920
 
#line 54921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65699
#line 65700 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54921
65700
} // closed Puma
 
65701
class CCExprResolve;
 
65702
class CExprResolve;
54922
65703
class WinIfExists;
54923
65704
class WinImportHandler;
54924
65705
class WinMacros;
54925
 
class CMatchSyntax;
54926
 
class ExtGnu;
 
65706
class WinAsm;
 
65707
class WinDeclSpecs;
 
65708
class WinMemberExplSpec;
 
65709
class WinTypeKeywords;
 
65710
class WinFriend;
54927
65711
class ExtAC;
54928
65712
class ExtACBuilderCoupling;
54929
65713
class ExtACSyntaxCoupling;
54930
65714
class ExtACTree;
54931
65715
class ExtACKeywords;
54932
 
class WinAsm;
54933
 
class WinDeclSpecs;
54934
 
class WinMemberExplSpec;
54935
 
class WinTypeKeywords;
 
65716
class ExtGnu;
54936
65717
class PragmaOnceUnitState;
54937
65718
class PragmaOnce;
54938
 
class CCExprResolve;
54939
 
class CExprResolve;
 
65719
class CMatchSyntax;
54940
65720
namespace Puma {
54941
65721
 
54942
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65722
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54943
65723
class CT_LinkageSpec : public CT_Decl {
54944
 
#line 54945 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65724
#line 65725 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
65725
  friend class ::CCExprResolve;
 
65726
  friend class ::CExprResolve;
54945
65727
  friend class ::WinIfExists;
54946
65728
  friend class ::WinImportHandler;
54947
65729
  friend class ::WinMacros;
54948
 
  friend class ::CMatchSyntax;
54949
 
  friend class ::ExtGnu;
 
65730
  friend class ::WinAsm;
 
65731
  friend class ::WinDeclSpecs;
 
65732
  friend class ::WinMemberExplSpec;
 
65733
  friend class ::WinTypeKeywords;
 
65734
  friend class ::WinFriend;
54950
65735
  friend class ::ExtAC;
54951
65736
  friend class ::ExtACBuilderCoupling;
54952
65737
  friend class ::ExtACSyntaxCoupling;
54953
65738
  friend class ::ExtACTree;
54954
65739
  friend class ::ExtACKeywords;
54955
 
  friend class ::WinAsm;
54956
 
  friend class ::WinDeclSpecs;
54957
 
  friend class ::WinMemberExplSpec;
54958
 
  friend class ::WinTypeKeywords;
 
65740
  friend class ::ExtGnu;
54959
65741
  friend class ::PragmaOnceUnitState;
54960
65742
  friend class ::PragmaOnce;
54961
 
  friend class ::CCExprResolve;
54962
 
  friend class ::CExprResolve;
 
65743
  friend class ::CMatchSyntax;
54963
65744
 
54964
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65745
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
54965
65746
 
54966
65747
  CTree *sons[5]; // extern, str, open, decls, close
54967
65748
 
54968
65749
public:
54969
65750
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
54970
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
65751
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
65752
    AddSon (sons[3], d); AddSon (sons[4], c);
54971
65753
    if (isList ())
54972
65754
      ((CT_DeclList*)Decls ())->Linkage (this);
54973
65755
    else
54974
65756
      ((CT_Decl*)Decls ())->Linkage (this);
54975
65757
  }
 
65758
  /** Get the identifier for this node type. Can be compared with NodeName(). */
54976
65759
  static const char *NodeId ();
 
65760
  /** Get the name of the node. Can be compared with NodeId(). */
54977
65761
  const char *NodeName () const { return NodeId (); }
 
65762
  /** Get the number of sons. */
54978
65763
  int Sons () const { return CTree::Sons (sons, 5); }
 
65764
  /** Get the n-th son.
 
65765
   *  \param n The index of the son.
 
65766
   *  \return The n-th son or NULL. */
54979
65767
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
54980
65768
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
54981
65769
  CTree *Decls () const { return sons[3]; }
54982
65770
  bool isList () const {
54983
65771
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
54984
65772
  }
 
65773
  /** Replace a son.
 
65774
   *  \param old_son The son to replace.
 
65775
   *  \param new_son The new son. */
54985
65776
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
54986
65777
    CTree::ReplaceSon (sons, 5, old_son, new_son);
54987
65778
  }
54988
65779
};
54989
65780
 
54990
65781
 
54991
 
#line 54992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65782
#line 65783 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
54992
65783
} // closed Puma
 
65784
class CCExprResolve;
 
65785
class CExprResolve;
54993
65786
class WinIfExists;
54994
65787
class WinImportHandler;
54995
65788
class WinMacros;
54996
 
class CMatchSyntax;
54997
 
class ExtGnu;
 
65789
class WinAsm;
 
65790
class WinDeclSpecs;
 
65791
class WinMemberExplSpec;
 
65792
class WinTypeKeywords;
 
65793
class WinFriend;
54998
65794
class ExtAC;
54999
65795
class ExtACBuilderCoupling;
55000
65796
class ExtACSyntaxCoupling;
55001
65797
class ExtACTree;
55002
65798
class ExtACKeywords;
55003
 
class WinAsm;
55004
 
class WinDeclSpecs;
55005
 
class WinMemberExplSpec;
55006
 
class WinTypeKeywords;
 
65799
class ExtGnu;
55007
65800
class PragmaOnceUnitState;
55008
65801
class PragmaOnce;
55009
 
class CCExprResolve;
55010
 
class CExprResolve;
 
65802
class CMatchSyntax;
55011
65803
namespace Puma {
55012
65804
 
55013
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65805
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55014
65806
class CT_ArgDecl : public CT_Decl, public CSemObject {
55015
 
#line 55016 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65807
#line 65808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
65808
  friend class ::CCExprResolve;
 
65809
  friend class ::CExprResolve;
55016
65810
  friend class ::WinIfExists;
55017
65811
  friend class ::WinImportHandler;
55018
65812
  friend class ::WinMacros;
55019
 
  friend class ::CMatchSyntax;
55020
 
  friend class ::ExtGnu;
 
65813
  friend class ::WinAsm;
 
65814
  friend class ::WinDeclSpecs;
 
65815
  friend class ::WinMemberExplSpec;
 
65816
  friend class ::WinTypeKeywords;
 
65817
  friend class ::WinFriend;
55021
65818
  friend class ::ExtAC;
55022
65819
  friend class ::ExtACBuilderCoupling;
55023
65820
  friend class ::ExtACSyntaxCoupling;
55024
65821
  friend class ::ExtACTree;
55025
65822
  friend class ::ExtACKeywords;
55026
 
  friend class ::WinAsm;
55027
 
  friend class ::WinDeclSpecs;
55028
 
  friend class ::WinMemberExplSpec;
55029
 
  friend class ::WinTypeKeywords;
 
65823
  friend class ::ExtGnu;
55030
65824
  friend class ::PragmaOnceUnitState;
55031
65825
  friend class ::PragmaOnce;
55032
 
  friend class ::CCExprResolve;
55033
 
  friend class ::CExprResolve;
 
65826
  friend class ::CMatchSyntax;
55034
65827
 
55035
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65828
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55036
65829
 
55037
65830
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
55038
65831
 
55039
65832
public:
55040
65833
  CT_ArgDecl (CTree *dsl, CTree *d) {
55041
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
65834
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
65835
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
55042
65836
  }
55043
65837
  CT_ArgDecl (CTree *ellipsis) {
55044
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
65838
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
65839
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
55045
65840
  }
 
65841
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55046
65842
  static const char *NodeId ();
 
65843
  /** Get the name of the node. Can be compared with NodeId(). */
55047
65844
  const char *NodeName () const { return NodeId (); }
 
65845
  /** Get the number of sons. */
55048
65846
  int Sons () const { return CTree::Sons (sons, 4); }
 
65847
  /** Get the n-th son.
 
65848
   *  \param n The index of the son.
 
65849
   *  \return The n-th son or NULL. */
55049
65850
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
55050
65851
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
55051
65852
  CTree *Declarator () const { return sons[1]; }
55052
65853
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
55053
65854
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
55054
65855
  CSemObject *SemObject () const { return (CSemObject*)this; }
55055
 
  void Initializer (CTree *i) { sons[2] = i; }
 
65856
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
65857
  /** Replace a son.
 
65858
   *  \param old_son The son to replace.
 
65859
   *  \param new_son The new son. */
55056
65860
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
55057
65861
    CTree::ReplaceSon (sons, 4, old_son, new_son);
55058
65862
  }
55059
65863
};
55060
65864
 
55061
65865
 
55062
 
#line 55063 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65866
#line 65867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55063
65867
} // closed Puma
 
65868
class CCExprResolve;
 
65869
class CExprResolve;
55064
65870
class WinIfExists;
55065
65871
class WinImportHandler;
55066
65872
class WinMacros;
55067
 
class CMatchSyntax;
55068
 
class ExtGnu;
 
65873
class WinAsm;
 
65874
class WinDeclSpecs;
 
65875
class WinMemberExplSpec;
 
65876
class WinTypeKeywords;
 
65877
class WinFriend;
55069
65878
class ExtAC;
55070
65879
class ExtACBuilderCoupling;
55071
65880
class ExtACSyntaxCoupling;
55072
65881
class ExtACTree;
55073
65882
class ExtACKeywords;
55074
 
class WinAsm;
55075
 
class WinDeclSpecs;
55076
 
class WinMemberExplSpec;
55077
 
class WinTypeKeywords;
 
65883
class ExtGnu;
55078
65884
class PragmaOnceUnitState;
55079
65885
class PragmaOnce;
55080
 
class CCExprResolve;
55081
 
class CExprResolve;
 
65886
class CMatchSyntax;
55082
65887
namespace Puma {
55083
65888
 
55084
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65889
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55085
65890
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
55086
 
#line 55087 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65891
#line 65892 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
65892
  friend class ::CCExprResolve;
 
65893
  friend class ::CExprResolve;
55087
65894
  friend class ::WinIfExists;
55088
65895
  friend class ::WinImportHandler;
55089
65896
  friend class ::WinMacros;
55090
 
  friend class ::CMatchSyntax;
55091
 
  friend class ::ExtGnu;
 
65897
  friend class ::WinAsm;
 
65898
  friend class ::WinDeclSpecs;
 
65899
  friend class ::WinMemberExplSpec;
 
65900
  friend class ::WinTypeKeywords;
 
65901
  friend class ::WinFriend;
55092
65902
  friend class ::ExtAC;
55093
65903
  friend class ::ExtACBuilderCoupling;
55094
65904
  friend class ::ExtACSyntaxCoupling;
55095
65905
  friend class ::ExtACTree;
55096
65906
  friend class ::ExtACKeywords;
55097
 
  friend class ::WinAsm;
55098
 
  friend class ::WinDeclSpecs;
55099
 
  friend class ::WinMemberExplSpec;
55100
 
  friend class ::WinTypeKeywords;
 
65907
  friend class ::ExtGnu;
55101
65908
  friend class ::PragmaOnceUnitState;
55102
65909
  friend class ::PragmaOnce;
55103
 
  friend class ::CCExprResolve;
55104
 
  friend class ::CExprResolve;
 
65910
  friend class ::CMatchSyntax;
55105
65911
 
55106
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65912
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55107
65913
 
55108
65914
public:
55109
65915
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
55110
65916
   CT_DeclList (size, 2) { AddProperties (props); }
 
65917
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55111
65918
  static const char *NodeId ();
 
65919
  /** Get the name of the node. Can be compared with NodeId(). */
55112
65920
  const char *NodeName () const { return NodeId (); }
 
65921
  CSemScope *SemScope () const { return (CSemScope*)this; }
55113
65922
};
55114
65923
 
55115
65924
 
55116
 
#line 55117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65925
#line 65926 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55117
65926
} // closed Puma
 
65927
class CCExprResolve;
 
65928
class CExprResolve;
55118
65929
class WinIfExists;
55119
65930
class WinImportHandler;
55120
65931
class WinMacros;
55121
 
class CMatchSyntax;
55122
 
class ExtGnu;
 
65932
class WinAsm;
 
65933
class WinDeclSpecs;
 
65934
class WinMemberExplSpec;
 
65935
class WinTypeKeywords;
 
65936
class WinFriend;
55123
65937
class ExtAC;
55124
65938
class ExtACBuilderCoupling;
55125
65939
class ExtACSyntaxCoupling;
55126
65940
class ExtACTree;
55127
65941
class ExtACKeywords;
55128
 
class WinAsm;
55129
 
class WinDeclSpecs;
55130
 
class WinMemberExplSpec;
55131
 
class WinTypeKeywords;
 
65942
class ExtGnu;
55132
65943
class PragmaOnceUnitState;
55133
65944
class PragmaOnce;
55134
 
class CCExprResolve;
55135
 
class CExprResolve;
 
65945
class CMatchSyntax;
55136
65946
namespace Puma {
55137
65947
 
55138
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65948
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55139
65949
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
55140
 
#line 55141 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65950
#line 65951 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
65951
  friend class ::CCExprResolve;
 
65952
  friend class ::CExprResolve;
55141
65953
  friend class ::WinIfExists;
55142
65954
  friend class ::WinImportHandler;
55143
65955
  friend class ::WinMacros;
55144
 
  friend class ::CMatchSyntax;
55145
 
  friend class ::ExtGnu;
 
65956
  friend class ::WinAsm;
 
65957
  friend class ::WinDeclSpecs;
 
65958
  friend class ::WinMemberExplSpec;
 
65959
  friend class ::WinTypeKeywords;
 
65960
  friend class ::WinFriend;
55146
65961
  friend class ::ExtAC;
55147
65962
  friend class ::ExtACBuilderCoupling;
55148
65963
  friend class ::ExtACSyntaxCoupling;
55149
65964
  friend class ::ExtACTree;
55150
65965
  friend class ::ExtACKeywords;
55151
 
  friend class ::WinAsm;
55152
 
  friend class ::WinDeclSpecs;
55153
 
  friend class ::WinMemberExplSpec;
55154
 
  friend class ::WinTypeKeywords;
 
65966
  friend class ::ExtGnu;
55155
65967
  friend class ::PragmaOnceUnitState;
55156
65968
  friend class ::PragmaOnce;
55157
 
  friend class ::CCExprResolve;
55158
 
  friend class ::CExprResolve;
 
65969
  friend class ::CMatchSyntax;
55159
65970
 
55160
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
65971
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55161
65972
 
55162
65973
public:
55163
65974
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
65975
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55164
65976
  static const char *NodeId ();
 
65977
  /** Get the name of the node. Can be compared with NodeId(). */
55165
65978
  const char *NodeName () const { return NodeId (); }
 
65979
  CSemScope *SemScope () const { return (CSemScope*)this; }
55166
65980
};
55167
65981
 
55168
65982
 
55169
 
#line 55170 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
65983
#line 65984 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55170
65984
} // closed Puma
 
65985
class CCExprResolve;
 
65986
class CExprResolve;
55171
65987
class WinIfExists;
55172
65988
class WinImportHandler;
55173
65989
class WinMacros;
55174
 
class CMatchSyntax;
55175
 
class ExtGnu;
 
65990
class WinAsm;
 
65991
class WinDeclSpecs;
 
65992
class WinMemberExplSpec;
 
65993
class WinTypeKeywords;
 
65994
class WinFriend;
55176
65995
class ExtAC;
55177
65996
class ExtACBuilderCoupling;
55178
65997
class ExtACSyntaxCoupling;
55179
65998
class ExtACTree;
55180
65999
class ExtACKeywords;
55181
 
class WinAsm;
55182
 
class WinDeclSpecs;
55183
 
class WinMemberExplSpec;
55184
 
class WinTypeKeywords;
 
66000
class ExtGnu;
55185
66001
class PragmaOnceUnitState;
55186
66002
class PragmaOnce;
55187
 
class CCExprResolve;
55188
 
class CExprResolve;
 
66003
class CMatchSyntax;
55189
66004
namespace Puma {
55190
66005
 
55191
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66006
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55192
66007
class CT_ArgNameList : public CT_ArgDeclList {
55193
 
#line 55194 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66008
#line 66009 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
66009
  friend class ::CCExprResolve;
 
66010
  friend class ::CExprResolve;
55194
66011
  friend class ::WinIfExists;
55195
66012
  friend class ::WinImportHandler;
55196
66013
  friend class ::WinMacros;
55197
 
  friend class ::CMatchSyntax;
55198
 
  friend class ::ExtGnu;
 
66014
  friend class ::WinAsm;
 
66015
  friend class ::WinDeclSpecs;
 
66016
  friend class ::WinMemberExplSpec;
 
66017
  friend class ::WinTypeKeywords;
 
66018
  friend class ::WinFriend;
55199
66019
  friend class ::ExtAC;
55200
66020
  friend class ::ExtACBuilderCoupling;
55201
66021
  friend class ::ExtACSyntaxCoupling;
55202
66022
  friend class ::ExtACTree;
55203
66023
  friend class ::ExtACKeywords;
55204
 
  friend class ::WinAsm;
55205
 
  friend class ::WinDeclSpecs;
55206
 
  friend class ::WinMemberExplSpec;
55207
 
  friend class ::WinTypeKeywords;
 
66024
  friend class ::ExtGnu;
55208
66025
  friend class ::PragmaOnceUnitState;
55209
66026
  friend class ::PragmaOnce;
55210
 
  friend class ::CCExprResolve;
55211
 
  friend class ::CExprResolve;
 
66027
  friend class ::CMatchSyntax;
55212
66028
 
55213
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66029
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55214
66030
 
55215
66031
public:
55216
66032
  CT_ArgNameList () : CT_ArgDeclList () {}
 
66033
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55217
66034
  static const char *NodeId ();
 
66035
  /** Get the name of the node. Can be compared with NodeId(). */
55218
66036
  const char *NodeName () const { return NodeId (); }
55219
66037
};
55220
66038
 
55221
66039
 
55222
 
#line 55223 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66040
#line 66041 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55223
66041
} // closed Puma
 
66042
class CCExprResolve;
 
66043
class CExprResolve;
55224
66044
class WinIfExists;
55225
66045
class WinImportHandler;
55226
66046
class WinMacros;
55227
 
class CMatchSyntax;
55228
 
class ExtGnu;
 
66047
class WinAsm;
 
66048
class WinDeclSpecs;
 
66049
class WinMemberExplSpec;
 
66050
class WinTypeKeywords;
 
66051
class WinFriend;
55229
66052
class ExtAC;
55230
66053
class ExtACBuilderCoupling;
55231
66054
class ExtACSyntaxCoupling;
55232
66055
class ExtACTree;
55233
66056
class ExtACKeywords;
55234
 
class WinAsm;
55235
 
class WinDeclSpecs;
55236
 
class WinMemberExplSpec;
55237
 
class WinTypeKeywords;
 
66057
class ExtGnu;
55238
66058
class PragmaOnceUnitState;
55239
66059
class PragmaOnce;
55240
 
class CCExprResolve;
55241
 
class CExprResolve;
 
66060
class CMatchSyntax;
55242
66061
namespace Puma {
55243
66062
 
55244
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66063
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55245
66064
class CT_NamespaceDef : public CT_Decl, public CSemObject {
55246
 
#line 55247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66065
#line 66066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
66066
  friend class ::CCExprResolve;
 
66067
  friend class ::CExprResolve;
55247
66068
  friend class ::WinIfExists;
55248
66069
  friend class ::WinImportHandler;
55249
66070
  friend class ::WinMacros;
55250
 
  friend class ::CMatchSyntax;
55251
 
  friend class ::ExtGnu;
 
66071
  friend class ::WinAsm;
 
66072
  friend class ::WinDeclSpecs;
 
66073
  friend class ::WinMemberExplSpec;
 
66074
  friend class ::WinTypeKeywords;
 
66075
  friend class ::WinFriend;
55252
66076
  friend class ::ExtAC;
55253
66077
  friend class ::ExtACBuilderCoupling;
55254
66078
  friend class ::ExtACSyntaxCoupling;
55255
66079
  friend class ::ExtACTree;
55256
66080
  friend class ::ExtACKeywords;
55257
 
  friend class ::WinAsm;
55258
 
  friend class ::WinDeclSpecs;
55259
 
  friend class ::WinMemberExplSpec;
55260
 
  friend class ::WinTypeKeywords;
 
66081
  friend class ::ExtGnu;
55261
66082
  friend class ::PragmaOnceUnitState;
55262
66083
  friend class ::PragmaOnce;
55263
 
  friend class ::CCExprResolve;
55264
 
  friend class ::CExprResolve;
 
66084
  friend class ::CMatchSyntax;
55265
66085
 
55266
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66086
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55267
66087
 
55268
66088
  CTree *sons[3]; // ns, name, members
55269
66089
 
55270
66090
public:
55271
66091
  CT_NamespaceDef (CTree *n, CTree *nm) {
55272
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
66092
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
55273
66093
  }
55274
66094
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
55275
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
66095
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
55276
66096
  }
 
66097
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55277
66098
  static const char *NodeId ();
 
66099
  /** Get the name of the node. Can be compared with NodeId(). */
55278
66100
  const char *NodeName () const { return NodeId (); }
 
66101
  /** Get the number of sons. */
55279
66102
  int Sons () const { return CTree::Sons (sons, 3); }
 
66103
  /** Get the n-th son.
 
66104
   *  \param n The index of the son.
 
66105
   *  \return The n-th son or NULL. */
55280
66106
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
55281
 
  void Members (CTree *m) { sons[2] = m; }
 
66107
  void Members (CTree *m) { AddSon (sons[2], m); }
55282
66108
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
55283
66109
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
55284
66110
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
66111
  /** Replace a son.
 
66112
   *  \param old_son The son to replace.
 
66113
   *  \param new_son The new son. */
55285
66114
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
55286
66115
    CTree::ReplaceSon (sons, 3, old_son, new_son);
55287
66116
  }
55288
66117
};
55289
66118
 
55290
66119
 
55291
 
#line 55292 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66120
#line 66121 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55292
66121
} // closed Puma
 
66122
class CCExprResolve;
 
66123
class CExprResolve;
55293
66124
class WinIfExists;
55294
66125
class WinImportHandler;
55295
66126
class WinMacros;
55296
 
class CMatchSyntax;
55297
 
class ExtGnu;
 
66127
class WinAsm;
 
66128
class WinDeclSpecs;
 
66129
class WinMemberExplSpec;
 
66130
class WinTypeKeywords;
 
66131
class WinFriend;
55298
66132
class ExtAC;
55299
66133
class ExtACBuilderCoupling;
55300
66134
class ExtACSyntaxCoupling;
55301
66135
class ExtACTree;
55302
66136
class ExtACKeywords;
55303
 
class WinAsm;
55304
 
class WinDeclSpecs;
55305
 
class WinMemberExplSpec;
55306
 
class WinTypeKeywords;
 
66137
class ExtGnu;
55307
66138
class PragmaOnceUnitState;
55308
66139
class PragmaOnce;
55309
 
class CCExprResolve;
55310
 
class CExprResolve;
 
66140
class CMatchSyntax;
55311
66141
namespace Puma {
55312
66142
 
55313
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66143
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55314
66144
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
55315
 
#line 55316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66145
#line 66146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
66146
  friend class ::CCExprResolve;
 
66147
  friend class ::CExprResolve;
55316
66148
  friend class ::WinIfExists;
55317
66149
  friend class ::WinImportHandler;
55318
66150
  friend class ::WinMacros;
55319
 
  friend class ::CMatchSyntax;
55320
 
  friend class ::ExtGnu;
 
66151
  friend class ::WinAsm;
 
66152
  friend class ::WinDeclSpecs;
 
66153
  friend class ::WinMemberExplSpec;
 
66154
  friend class ::WinTypeKeywords;
 
66155
  friend class ::WinFriend;
55321
66156
  friend class ::ExtAC;
55322
66157
  friend class ::ExtACBuilderCoupling;
55323
66158
  friend class ::ExtACSyntaxCoupling;
55324
66159
  friend class ::ExtACTree;
55325
66160
  friend class ::ExtACKeywords;
55326
 
  friend class ::WinAsm;
55327
 
  friend class ::WinDeclSpecs;
55328
 
  friend class ::WinMemberExplSpec;
55329
 
  friend class ::WinTypeKeywords;
 
66161
  friend class ::ExtGnu;
55330
66162
  friend class ::PragmaOnceUnitState;
55331
66163
  friend class ::PragmaOnce;
55332
 
  friend class ::CCExprResolve;
55333
 
  friend class ::CExprResolve;
 
66164
  friend class ::CMatchSyntax;
55334
66165
 
55335
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66166
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55336
66167
 
55337
66168
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
55338
66169
 
55339
66170
public:
55340
66171
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
55341
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
66172
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
66173
    AddSon (sons[3], nm); AddSon (sons[4], s); 
55342
66174
  }
 
66175
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55343
66176
  static const char *NodeId ();
 
66177
  /** Get the name of the node. Can be compared with NodeId(). */
55344
66178
  const char *NodeName () const { return NodeId (); }
 
66179
  /** Get the number of sons. */
55345
66180
  int Sons () const { return 5; }
 
66181
  /** Get the n-th son.
 
66182
   *  \param n The index of the son.
 
66183
   *  \return The n-th son or NULL. */
55346
66184
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
55347
66185
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
55348
66186
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
55349
66187
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
66188
  /** Replace a son.
 
66189
   *  \param old_son The son to replace.
 
66190
   *  \param new_son The new son. */
55350
66191
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
55351
66192
    CTree::ReplaceSon (sons, 5, old_son, new_son);
55352
66193
  }
55353
66194
};
55354
66195
 
55355
66196
 
55356
 
#line 55357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66197
#line 66198 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55357
66198
} // closed Puma
 
66199
class CCExprResolve;
 
66200
class CExprResolve;
55358
66201
class WinIfExists;
55359
66202
class WinImportHandler;
55360
66203
class WinMacros;
55361
 
class CMatchSyntax;
55362
 
class ExtGnu;
 
66204
class WinAsm;
 
66205
class WinDeclSpecs;
 
66206
class WinMemberExplSpec;
 
66207
class WinTypeKeywords;
 
66208
class WinFriend;
55363
66209
class ExtAC;
55364
66210
class ExtACBuilderCoupling;
55365
66211
class ExtACSyntaxCoupling;
55366
66212
class ExtACTree;
55367
66213
class ExtACKeywords;
55368
 
class WinAsm;
55369
 
class WinDeclSpecs;
55370
 
class WinMemberExplSpec;
55371
 
class WinTypeKeywords;
 
66214
class ExtGnu;
55372
66215
class PragmaOnceUnitState;
55373
66216
class PragmaOnce;
55374
 
class CCExprResolve;
55375
 
class CExprResolve;
 
66217
class CMatchSyntax;
55376
66218
namespace Puma {
55377
66219
 
55378
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66220
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55379
66221
class CT_UsingDirective : public CT_Decl {
55380
 
#line 55381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66222
#line 66223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
66223
  friend class ::CCExprResolve;
 
66224
  friend class ::CExprResolve;
55381
66225
  friend class ::WinIfExists;
55382
66226
  friend class ::WinImportHandler;
55383
66227
  friend class ::WinMacros;
55384
 
  friend class ::CMatchSyntax;
55385
 
  friend class ::ExtGnu;
 
66228
  friend class ::WinAsm;
 
66229
  friend class ::WinDeclSpecs;
 
66230
  friend class ::WinMemberExplSpec;
 
66231
  friend class ::WinTypeKeywords;
 
66232
  friend class ::WinFriend;
55386
66233
  friend class ::ExtAC;
55387
66234
  friend class ::ExtACBuilderCoupling;
55388
66235
  friend class ::ExtACSyntaxCoupling;
55389
66236
  friend class ::ExtACTree;
55390
66237
  friend class ::ExtACKeywords;
55391
 
  friend class ::WinAsm;
55392
 
  friend class ::WinDeclSpecs;
55393
 
  friend class ::WinMemberExplSpec;
55394
 
  friend class ::WinTypeKeywords;
 
66238
  friend class ::ExtGnu;
55395
66239
  friend class ::PragmaOnceUnitState;
55396
66240
  friend class ::PragmaOnce;
55397
 
  friend class ::CCExprResolve;
55398
 
  friend class ::CExprResolve;
 
66241
  friend class ::CMatchSyntax;
55399
66242
 
55400
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66243
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55401
66244
 
55402
66245
  CTree *sons[4]; // using, ns, name, semi_colon
55403
66246
 
55404
66247
public:
55405
66248
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
55406
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
66249
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
66250
    AddSon (sons[3], s); 
55407
66251
  }
 
66252
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55408
66253
  static const char *NodeId ();
 
66254
  /** Get the name of the node. Can be compared with NodeId(). */
55409
66255
  const char *NodeName () const { return NodeId (); }
 
66256
  /** Get the number of sons. */
55410
66257
  int Sons () const { return 4; }
 
66258
  /** Get the n-th son.
 
66259
   *  \param n The index of the son.
 
66260
   *  \return The n-th son or NULL. */
55411
66261
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
55412
66262
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
66263
  /** Replace a son.
 
66264
   *  \param old_son The son to replace.
 
66265
   *  \param new_son The new son. */
55413
66266
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
55414
66267
    CTree::ReplaceSon (sons, 4, old_son, new_son);
55415
66268
  }
55422
66275
/*****************************************************************************/
55423
66276
 
55424
66277
 
55425
 
#line 55426 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66278
#line 66279 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55426
66279
} // closed Puma
 
66280
class CCExprResolve;
 
66281
class CExprResolve;
55427
66282
class WinIfExists;
55428
66283
class WinImportHandler;
55429
66284
class WinMacros;
55430
 
class CMatchSyntax;
55431
 
class ExtGnu;
 
66285
class WinAsm;
 
66286
class WinDeclSpecs;
 
66287
class WinMemberExplSpec;
 
66288
class WinTypeKeywords;
 
66289
class WinFriend;
55432
66290
class ExtAC;
55433
66291
class ExtACBuilderCoupling;
55434
66292
class ExtACSyntaxCoupling;
55435
66293
class ExtACTree;
55436
66294
class ExtACKeywords;
55437
 
class WinAsm;
55438
 
class WinDeclSpecs;
55439
 
class WinMemberExplSpec;
55440
 
class WinTypeKeywords;
 
66295
class ExtGnu;
55441
66296
class PragmaOnceUnitState;
55442
66297
class PragmaOnce;
55443
 
class CCExprResolve;
55444
 
class CExprResolve;
 
66298
class CMatchSyntax;
55445
66299
namespace Puma {
55446
66300
 
55447
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66301
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55448
66302
class CT_Declarator : public CTree {
55449
 
#line 55450 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66303
#line 66304 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
66304
  friend class ::CCExprResolve;
 
66305
  friend class ::CExprResolve;
55450
66306
  friend class ::WinIfExists;
55451
66307
  friend class ::WinImportHandler;
55452
66308
  friend class ::WinMacros;
55453
 
  friend class ::CMatchSyntax;
55454
 
  friend class ::ExtGnu;
 
66309
  friend class ::WinAsm;
 
66310
  friend class ::WinDeclSpecs;
 
66311
  friend class ::WinMemberExplSpec;
 
66312
  friend class ::WinTypeKeywords;
 
66313
  friend class ::WinFriend;
55455
66314
  friend class ::ExtAC;
55456
66315
  friend class ::ExtACBuilderCoupling;
55457
66316
  friend class ::ExtACSyntaxCoupling;
55458
66317
  friend class ::ExtACTree;
55459
66318
  friend class ::ExtACKeywords;
55460
 
  friend class ::WinAsm;
55461
 
  friend class ::WinDeclSpecs;
55462
 
  friend class ::WinMemberExplSpec;
55463
 
  friend class ::WinTypeKeywords;
 
66319
  friend class ::ExtGnu;
55464
66320
  friend class ::PragmaOnceUnitState;
55465
66321
  friend class ::PragmaOnce;
55466
 
  friend class ::CCExprResolve;
55467
 
  friend class ::CExprResolve;
 
66322
  friend class ::CMatchSyntax;
55468
66323
 
55469
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66324
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55470
66325
 
55471
66326
protected:
55472
66327
  CT_Declarator () {}
55481
66336
};
55482
66337
 
55483
66338
 
55484
 
#line 55485 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66339
#line 66340 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55485
66340
} // closed Puma
 
66341
class CCExprResolve;
 
66342
class CExprResolve;
55486
66343
class WinIfExists;
55487
66344
class WinImportHandler;
55488
66345
class WinMacros;
55489
 
class CMatchSyntax;
55490
 
class ExtGnu;
 
66346
class WinAsm;
 
66347
class WinDeclSpecs;
 
66348
class WinMemberExplSpec;
 
66349
class WinTypeKeywords;
 
66350
class WinFriend;
55491
66351
class ExtAC;
55492
66352
class ExtACBuilderCoupling;
55493
66353
class ExtACSyntaxCoupling;
55494
66354
class ExtACTree;
55495
66355
class ExtACKeywords;
55496
 
class WinAsm;
55497
 
class WinDeclSpecs;
55498
 
class WinMemberExplSpec;
55499
 
class WinTypeKeywords;
 
66356
class ExtGnu;
55500
66357
class PragmaOnceUnitState;
55501
66358
class PragmaOnce;
55502
 
class CCExprResolve;
55503
 
class CExprResolve;
 
66359
class CMatchSyntax;
55504
66360
namespace Puma {
55505
66361
 
55506
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66362
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55507
66363
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
55508
 
#line 55509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66364
#line 66365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
66365
  friend class ::CCExprResolve;
 
66366
  friend class ::CExprResolve;
55509
66367
  friend class ::WinIfExists;
55510
66368
  friend class ::WinImportHandler;
55511
66369
  friend class ::WinMacros;
55512
 
  friend class ::CMatchSyntax;
55513
 
  friend class ::ExtGnu;
 
66370
  friend class ::WinAsm;
 
66371
  friend class ::WinDeclSpecs;
 
66372
  friend class ::WinMemberExplSpec;
 
66373
  friend class ::WinTypeKeywords;
 
66374
  friend class ::WinFriend;
55514
66375
  friend class ::ExtAC;
55515
66376
  friend class ::ExtACBuilderCoupling;
55516
66377
  friend class ::ExtACSyntaxCoupling;
55517
66378
  friend class ::ExtACTree;
55518
66379
  friend class ::ExtACKeywords;
55519
 
  friend class ::WinAsm;
55520
 
  friend class ::WinDeclSpecs;
55521
 
  friend class ::WinMemberExplSpec;
55522
 
  friend class ::WinTypeKeywords;
 
66380
  friend class ::ExtGnu;
55523
66381
  friend class ::PragmaOnceUnitState;
55524
66382
  friend class ::PragmaOnce;
55525
 
  friend class ::CCExprResolve;
55526
 
  friend class ::CExprResolve;
55527
 
 
55528
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
55529
 
 
55530
 
  CTree *sons[2]; // declarator, init
 
66383
  friend class ::CMatchSyntax;
 
66384
 
 
66385
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66386
 
 
66387
  CTree *sons[3]; // declarator, ext, init
55531
66388
  CTree *obj_decl;
55532
66389
 
55533
66390
public:
55534
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
55535
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
66391
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
66392
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
66393
    AddSon (obj_decl, 0); 
55536
66394
  }
 
66395
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55537
66396
  static const char *NodeId ();
 
66397
  /** Get the name of the node. Can be compared with NodeId(). */
55538
66398
  const char *NodeName () const { return NodeId (); }
55539
 
  int Sons () const { return CTree::Sons (sons, 2); }
55540
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
66399
  /** Get the number of sons. */
 
66400
  int Sons () const { return CTree::Sons (sons, 3); }
 
66401
  /** Get the n-th son.
 
66402
   *  \param n The index of the son.
 
66403
   *  \return The n-th son or NULL. */
 
66404
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
55541
66405
  CTree *Declarator () const { return sons[0]; }
55542
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
66406
  CTree *Extension () const { return sons[1]; }
 
66407
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
55543
66408
  CSemObject *SemObject () const { return (CSemObject*)this; }
55544
66409
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
55545
 
  void Initializer (CTree* i) { sons[1] = i; }
55546
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
66410
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
66411
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
66412
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
66413
  /** Replace a son.
 
66414
   *  \param old_son The son to replace.
 
66415
   *  \param new_son The new son. */
55547
66416
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
55548
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
66417
    CTree::ReplaceSon (sons, 3, old_son, new_son);
55549
66418
  }
55550
66419
};
55551
66420
 
55552
66421
 
55553
 
#line 55554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66422
#line 66423 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55554
66423
} // closed Puma
 
66424
class CCExprResolve;
 
66425
class CExprResolve;
55555
66426
class WinIfExists;
55556
66427
class WinImportHandler;
55557
66428
class WinMacros;
55558
 
class CMatchSyntax;
55559
 
class ExtGnu;
 
66429
class WinAsm;
 
66430
class WinDeclSpecs;
 
66431
class WinMemberExplSpec;
 
66432
class WinTypeKeywords;
 
66433
class WinFriend;
55560
66434
class ExtAC;
55561
66435
class ExtACBuilderCoupling;
55562
66436
class ExtACSyntaxCoupling;
55563
66437
class ExtACTree;
55564
66438
class ExtACKeywords;
55565
 
class WinAsm;
55566
 
class WinDeclSpecs;
55567
 
class WinMemberExplSpec;
55568
 
class WinTypeKeywords;
 
66439
class ExtGnu;
55569
66440
class PragmaOnceUnitState;
55570
66441
class PragmaOnce;
55571
 
class CCExprResolve;
55572
 
class CExprResolve;
 
66442
class CMatchSyntax;
55573
66443
namespace Puma {
55574
66444
 
55575
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66445
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55576
66446
class CT_BracedDeclarator : public CT_Declarator {
55577
 
#line 55578 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66447
#line 66448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
66448
  friend class ::CCExprResolve;
 
66449
  friend class ::CExprResolve;
55578
66450
  friend class ::WinIfExists;
55579
66451
  friend class ::WinImportHandler;
55580
66452
  friend class ::WinMacros;
55581
 
  friend class ::CMatchSyntax;
55582
 
  friend class ::ExtGnu;
 
66453
  friend class ::WinAsm;
 
66454
  friend class ::WinDeclSpecs;
 
66455
  friend class ::WinMemberExplSpec;
 
66456
  friend class ::WinTypeKeywords;
 
66457
  friend class ::WinFriend;
55583
66458
  friend class ::ExtAC;
55584
66459
  friend class ::ExtACBuilderCoupling;
55585
66460
  friend class ::ExtACSyntaxCoupling;
55586
66461
  friend class ::ExtACTree;
55587
66462
  friend class ::ExtACKeywords;
55588
 
  friend class ::WinAsm;
55589
 
  friend class ::WinDeclSpecs;
55590
 
  friend class ::WinMemberExplSpec;
55591
 
  friend class ::WinTypeKeywords;
 
66463
  friend class ::ExtGnu;
55592
66464
  friend class ::PragmaOnceUnitState;
55593
66465
  friend class ::PragmaOnce;
55594
 
  friend class ::CCExprResolve;
55595
 
  friend class ::CExprResolve;
 
66466
  friend class ::CMatchSyntax;
55596
66467
 
55597
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66468
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55598
66469
 
55599
66470
  CTree *sons[4]; // open, win_specs, declarator, close
55600
66471
 
55601
66472
public:
55602
66473
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
55603
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
66474
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
66475
    AddSon (sons[2], d); AddSon (sons[3], c); 
55604
66476
  }
55605
66477
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
55606
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
66478
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
66479
    AddSon (sons[2], d); AddSon (sons[3], c); 
55607
66480
  }
 
66481
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55608
66482
  static const char *NodeId ();
 
66483
  /** Get the name of the node. Can be compared with NodeId(). */
55609
66484
  const char *NodeName () const { return NodeId (); }
 
66485
  /** Get the number of sons. */
55610
66486
  int Sons () const { return CTree::Sons (sons, 4); }
 
66487
  /** Get the n-th son.
 
66488
   *  \param n The index of the son.
 
66489
   *  \return The n-th son or NULL. */
55611
66490
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
55612
66491
  CTree *Declarator () const { return sons[2]; }
 
66492
  /** Replace a son.
 
66493
   *  \param old_son The son to replace.
 
66494
   *  \param new_son The new son. */
55613
66495
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
55614
66496
    CTree::ReplaceSon (sons, 4, old_son, new_son);
55615
66497
  }
55616
66498
};
55617
66499
 
55618
66500
 
55619
 
#line 55620 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66501
#line 66502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55620
66502
} // closed Puma
 
66503
class CCExprResolve;
 
66504
class CExprResolve;
55621
66505
class WinIfExists;
55622
66506
class WinImportHandler;
55623
66507
class WinMacros;
55624
 
class CMatchSyntax;
55625
 
class ExtGnu;
 
66508
class WinAsm;
 
66509
class WinDeclSpecs;
 
66510
class WinMemberExplSpec;
 
66511
class WinTypeKeywords;
 
66512
class WinFriend;
55626
66513
class ExtAC;
55627
66514
class ExtACBuilderCoupling;
55628
66515
class ExtACSyntaxCoupling;
55629
66516
class ExtACTree;
55630
66517
class ExtACKeywords;
55631
 
class WinAsm;
55632
 
class WinDeclSpecs;
55633
 
class WinMemberExplSpec;
55634
 
class WinTypeKeywords;
 
66518
class ExtGnu;
55635
66519
class PragmaOnceUnitState;
55636
66520
class PragmaOnce;
55637
 
class CCExprResolve;
55638
 
class CExprResolve;
 
66521
class CMatchSyntax;
55639
66522
namespace Puma {
55640
66523
 
55641
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66524
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55642
66525
class CT_ArrayDelimiter : public CTree {
55643
 
#line 55644 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66526
#line 66527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
66527
  friend class ::CCExprResolve;
 
66528
  friend class ::CExprResolve;
55644
66529
  friend class ::WinIfExists;
55645
66530
  friend class ::WinImportHandler;
55646
66531
  friend class ::WinMacros;
55647
 
  friend class ::CMatchSyntax;
55648
 
  friend class ::ExtGnu;
 
66532
  friend class ::WinAsm;
 
66533
  friend class ::WinDeclSpecs;
 
66534
  friend class ::WinMemberExplSpec;
 
66535
  friend class ::WinTypeKeywords;
 
66536
  friend class ::WinFriend;
55649
66537
  friend class ::ExtAC;
55650
66538
  friend class ::ExtACBuilderCoupling;
55651
66539
  friend class ::ExtACSyntaxCoupling;
55652
66540
  friend class ::ExtACTree;
55653
66541
  friend class ::ExtACKeywords;
55654
 
  friend class ::WinAsm;
55655
 
  friend class ::WinDeclSpecs;
55656
 
  friend class ::WinMemberExplSpec;
55657
 
  friend class ::WinTypeKeywords;
 
66542
  friend class ::ExtGnu;
55658
66543
  friend class ::PragmaOnceUnitState;
55659
66544
  friend class ::PragmaOnce;
55660
 
  friend class ::CCExprResolve;
55661
 
  friend class ::CExprResolve;
 
66545
  friend class ::CMatchSyntax;
55662
66546
 
55663
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66547
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55664
66548
 
55665
66549
  CTree *sons[4]; // star, static, quals, expr
55666
66550
  bool pos0;
55667
66551
 
55668
66552
public:
55669
66553
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
55670
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
66554
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
66555
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
55671
66556
  }
 
66557
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55672
66558
  static const char *NodeId ();
 
66559
  /** Get the name of the node. Can be compared with NodeId(). */
55673
66560
  const char *NodeName () const { return NodeId (); }
 
66561
  /** Get the number of sons. */
55674
66562
  int Sons () const { return CTree::Sons (sons, 4); }
 
66563
  /** Get the n-th son.
 
66564
   *  \param n The index of the son.
 
66565
   *  \return The n-th son or NULL. */
55675
66566
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
55676
66567
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
55677
66568
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
55678
66569
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
55679
66570
  CTree *Expr () const { return sons[3]; }
 
66571
  /** Replace a son.
 
66572
   *  \param old_son The son to replace.
 
66573
   *  \param new_son The new son. */
55680
66574
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
55681
66575
    CTree::ReplaceSon (sons, 4, old_son, new_son);
55682
66576
  }
55683
66577
};
55684
66578
 
55685
66579
 
55686
 
#line 55687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66580
#line 66581 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55687
66581
} // closed Puma
 
66582
class CCExprResolve;
 
66583
class CExprResolve;
55688
66584
class WinIfExists;
55689
66585
class WinImportHandler;
55690
66586
class WinMacros;
55691
 
class CMatchSyntax;
55692
 
class ExtGnu;
 
66587
class WinAsm;
 
66588
class WinDeclSpecs;
 
66589
class WinMemberExplSpec;
 
66590
class WinTypeKeywords;
 
66591
class WinFriend;
55693
66592
class ExtAC;
55694
66593
class ExtACBuilderCoupling;
55695
66594
class ExtACSyntaxCoupling;
55696
66595
class ExtACTree;
55697
66596
class ExtACKeywords;
55698
 
class WinAsm;
55699
 
class WinDeclSpecs;
55700
 
class WinMemberExplSpec;
55701
 
class WinTypeKeywords;
 
66597
class ExtGnu;
55702
66598
class PragmaOnceUnitState;
55703
66599
class PragmaOnce;
55704
 
class CCExprResolve;
55705
 
class CExprResolve;
 
66600
class CMatchSyntax;
55706
66601
namespace Puma {
55707
66602
 
55708
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66603
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55709
66604
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
55710
 
#line 55711 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66605
#line 66606 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
66606
  friend class ::CCExprResolve;
 
66607
  friend class ::CExprResolve;
55711
66608
  friend class ::WinIfExists;
55712
66609
  friend class ::WinImportHandler;
55713
66610
  friend class ::WinMacros;
55714
 
  friend class ::CMatchSyntax;
55715
 
  friend class ::ExtGnu;
 
66611
  friend class ::WinAsm;
 
66612
  friend class ::WinDeclSpecs;
 
66613
  friend class ::WinMemberExplSpec;
 
66614
  friend class ::WinTypeKeywords;
 
66615
  friend class ::WinFriend;
55716
66616
  friend class ::ExtAC;
55717
66617
  friend class ::ExtACBuilderCoupling;
55718
66618
  friend class ::ExtACSyntaxCoupling;
55719
66619
  friend class ::ExtACTree;
55720
66620
  friend class ::ExtACKeywords;
55721
 
  friend class ::WinAsm;
55722
 
  friend class ::WinDeclSpecs;
55723
 
  friend class ::WinMemberExplSpec;
55724
 
  friend class ::WinTypeKeywords;
 
66621
  friend class ::ExtGnu;
55725
66622
  friend class ::PragmaOnceUnitState;
55726
66623
  friend class ::PragmaOnce;
55727
 
  friend class ::CCExprResolve;
55728
 
  friend class ::CExprResolve;
 
66624
  friend class ::CMatchSyntax;
55729
66625
 
55730
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66626
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55731
66627
 
55732
66628
  CTree *sons[4]; // declarator, open, delim, close
55733
66629
 
55734
66630
public:
55735
66631
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
55736
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
66632
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
66633
    AddSon (sons[2], ad); AddSon (sons[3], c); 
55737
66634
  }
 
66635
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55738
66636
  static const char *NodeId ();
 
66637
  /** Get the name of the node. Can be compared with NodeId(). */
55739
66638
  const char *NodeName () const { return NodeId (); }
 
66639
  /** Get the number of sons. */
55740
66640
  int Sons () const { return 4; }
 
66641
  /** Get the n-th son.
 
66642
   *  \param n The index of the son.
 
66643
   *  \return The n-th son or NULL. */
55741
66644
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
55742
66645
  CTree *Declarator () const { return sons[0]; }
55743
66646
  CT_ArrayDelimiter *Delimiter () const 
55744
66647
   { return (CT_ArrayDelimiter*)sons[2]; }
 
66648
  /** Replace a son.
 
66649
   *  \param old_son The son to replace.
 
66650
   *  \param new_son The new son. */
55745
66651
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
55746
66652
    CTree::ReplaceSon (sons, 4, old_son, new_son);
55747
66653
  }
55751
66657
};
55752
66658
 
55753
66659
 
55754
 
#line 55755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66660
#line 66661 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55755
66661
} // closed Puma
 
66662
class CCExprResolve;
 
66663
class CExprResolve;
55756
66664
class WinIfExists;
55757
66665
class WinImportHandler;
55758
66666
class WinMacros;
55759
 
class CMatchSyntax;
55760
 
class ExtGnu;
 
66667
class WinAsm;
 
66668
class WinDeclSpecs;
 
66669
class WinMemberExplSpec;
 
66670
class WinTypeKeywords;
 
66671
class WinFriend;
55761
66672
class ExtAC;
55762
66673
class ExtACBuilderCoupling;
55763
66674
class ExtACSyntaxCoupling;
55764
66675
class ExtACTree;
55765
66676
class ExtACKeywords;
55766
 
class WinAsm;
55767
 
class WinDeclSpecs;
55768
 
class WinMemberExplSpec;
55769
 
class WinTypeKeywords;
 
66677
class ExtGnu;
55770
66678
class PragmaOnceUnitState;
55771
66679
class PragmaOnce;
55772
 
class CCExprResolve;
55773
 
class CExprResolve;
 
66680
class CMatchSyntax;
55774
66681
namespace Puma {
55775
66682
 
55776
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66683
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55777
66684
class CT_FctDeclarator : public CT_Declarator {
55778
 
#line 55779 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66685
#line 66686 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
66686
  friend class ::CCExprResolve;
 
66687
  friend class ::CExprResolve;
55779
66688
  friend class ::WinIfExists;
55780
66689
  friend class ::WinImportHandler;
55781
66690
  friend class ::WinMacros;
55782
 
  friend class ::CMatchSyntax;
55783
 
  friend class ::ExtGnu;
 
66691
  friend class ::WinAsm;
 
66692
  friend class ::WinDeclSpecs;
 
66693
  friend class ::WinMemberExplSpec;
 
66694
  friend class ::WinTypeKeywords;
 
66695
  friend class ::WinFriend;
55784
66696
  friend class ::ExtAC;
55785
66697
  friend class ::ExtACBuilderCoupling;
55786
66698
  friend class ::ExtACSyntaxCoupling;
55787
66699
  friend class ::ExtACTree;
55788
66700
  friend class ::ExtACKeywords;
55789
 
  friend class ::WinAsm;
55790
 
  friend class ::WinDeclSpecs;
55791
 
  friend class ::WinMemberExplSpec;
55792
 
  friend class ::WinTypeKeywords;
 
66701
  friend class ::ExtGnu;
55793
66702
  friend class ::PragmaOnceUnitState;
55794
66703
  friend class ::PragmaOnce;
55795
 
  friend class ::CCExprResolve;
55796
 
  friend class ::CExprResolve;
 
66704
  friend class ::CMatchSyntax;
55797
66705
 
55798
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66706
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55799
66707
 
55800
66708
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
55801
66709
 
55802
66710
public:
55803
66711
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
55804
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
66712
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
66713
    AddSon (sons[2], cv); AddSon (sons[3], es); 
55805
66714
  }
 
66715
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55806
66716
  static const char *NodeId ();
 
66717
  /** Get the name of the node. Can be compared with NodeId(). */
55807
66718
  const char *NodeName () const { return NodeId (); }
 
66719
  /** Get the number of sons. */
55808
66720
  int Sons () const { return CTree::Sons (sons, 4); }
 
66721
  /** Get the n-th son.
 
66722
   *  \param n The index of the son.
 
66723
   *  \return The n-th son or NULL. */
55809
66724
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
55810
66725
  CTree *Declarator () const { return sons[0]; }
55811
66726
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
55812
66727
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
55813
66728
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
66729
  /** Replace a son.
 
66730
   *  \param old_son The son to replace.
 
66731
   *  \param new_son The new son. */
55814
66732
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
55815
66733
    CTree::ReplaceSon (sons, 4, old_son, new_son);
55816
66734
  }
55817
66735
};
55818
66736
 
55819
66737
 
55820
 
#line 55821 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66738
#line 66739 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55821
66739
} // closed Puma
 
66740
class CCExprResolve;
 
66741
class CExprResolve;
55822
66742
class WinIfExists;
55823
66743
class WinImportHandler;
55824
66744
class WinMacros;
55825
 
class CMatchSyntax;
55826
 
class ExtGnu;
 
66745
class WinAsm;
 
66746
class WinDeclSpecs;
 
66747
class WinMemberExplSpec;
 
66748
class WinTypeKeywords;
 
66749
class WinFriend;
55827
66750
class ExtAC;
55828
66751
class ExtACBuilderCoupling;
55829
66752
class ExtACSyntaxCoupling;
55830
66753
class ExtACTree;
55831
66754
class ExtACKeywords;
55832
 
class WinAsm;
55833
 
class WinDeclSpecs;
55834
 
class WinMemberExplSpec;
55835
 
class WinTypeKeywords;
 
66755
class ExtGnu;
55836
66756
class PragmaOnceUnitState;
55837
66757
class PragmaOnce;
55838
 
class CCExprResolve;
55839
 
class CExprResolve;
 
66758
class CMatchSyntax;
55840
66759
namespace Puma {
55841
66760
 
55842
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66761
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55843
66762
class CT_RefDeclarator : public CT_Declarator {
55844
 
#line 55845 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66763
#line 66764 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
66764
  friend class ::CCExprResolve;
 
66765
  friend class ::CExprResolve;
55845
66766
  friend class ::WinIfExists;
55846
66767
  friend class ::WinImportHandler;
55847
66768
  friend class ::WinMacros;
55848
 
  friend class ::CMatchSyntax;
55849
 
  friend class ::ExtGnu;
 
66769
  friend class ::WinAsm;
 
66770
  friend class ::WinDeclSpecs;
 
66771
  friend class ::WinMemberExplSpec;
 
66772
  friend class ::WinTypeKeywords;
 
66773
  friend class ::WinFriend;
55850
66774
  friend class ::ExtAC;
55851
66775
  friend class ::ExtACBuilderCoupling;
55852
66776
  friend class ::ExtACSyntaxCoupling;
55853
66777
  friend class ::ExtACTree;
55854
66778
  friend class ::ExtACKeywords;
55855
 
  friend class ::WinAsm;
55856
 
  friend class ::WinDeclSpecs;
55857
 
  friend class ::WinMemberExplSpec;
55858
 
  friend class ::WinTypeKeywords;
 
66779
  friend class ::ExtGnu;
55859
66780
  friend class ::PragmaOnceUnitState;
55860
66781
  friend class ::PragmaOnce;
55861
 
  friend class ::CCExprResolve;
55862
 
  friend class ::CExprResolve;
 
66782
  friend class ::CMatchSyntax;
55863
66783
 
55864
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66784
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55865
66785
 
55866
66786
  CTree *sons[2]; // ref, declarator
55867
66787
 
55868
66788
public:
55869
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
66789
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
66790
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55870
66791
  static const char *NodeId ();
 
66792
  /** Get the name of the node. Can be compared with NodeId(). */
55871
66793
  const char *NodeName () const { return NodeId (); }
 
66794
  /** Get the number of sons. */
55872
66795
  int Sons () const { return 2; }
 
66796
  /** Get the n-th son.
 
66797
   *  \param n The index of the son.
 
66798
   *  \return The n-th son or NULL. */
55873
66799
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
55874
66800
  CTree *Declarator () const { return sons[1]; }
 
66801
  /** Replace a son.
 
66802
   *  \param old_son The son to replace.
 
66803
   *  \param new_son The new son. */
55875
66804
  void ReplaceSon (CTree *old_son, CTree *new_son) {
55876
66805
    CTree::ReplaceSon (sons, 2, old_son, new_son);
55877
66806
  }
55878
66807
};
55879
66808
 
55880
66809
 
55881
 
#line 55882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66810
#line 66811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55882
66811
} // closed Puma
 
66812
class CCExprResolve;
 
66813
class CExprResolve;
55883
66814
class WinIfExists;
55884
66815
class WinImportHandler;
55885
66816
class WinMacros;
55886
 
class CMatchSyntax;
55887
 
class ExtGnu;
 
66817
class WinAsm;
 
66818
class WinDeclSpecs;
 
66819
class WinMemberExplSpec;
 
66820
class WinTypeKeywords;
 
66821
class WinFriend;
55888
66822
class ExtAC;
55889
66823
class ExtACBuilderCoupling;
55890
66824
class ExtACSyntaxCoupling;
55891
66825
class ExtACTree;
55892
66826
class ExtACKeywords;
55893
 
class WinAsm;
55894
 
class WinDeclSpecs;
55895
 
class WinMemberExplSpec;
55896
 
class WinTypeKeywords;
 
66827
class ExtGnu;
55897
66828
class PragmaOnceUnitState;
55898
66829
class PragmaOnce;
55899
 
class CCExprResolve;
55900
 
class CExprResolve;
 
66830
class CMatchSyntax;
55901
66831
namespace Puma {
55902
66832
 
55903
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66833
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55904
66834
class CT_PtrDeclarator : public CT_Declarator {
55905
 
#line 55906 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66835
#line 66836 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
66836
  friend class ::CCExprResolve;
 
66837
  friend class ::CExprResolve;
55906
66838
  friend class ::WinIfExists;
55907
66839
  friend class ::WinImportHandler;
55908
66840
  friend class ::WinMacros;
55909
 
  friend class ::CMatchSyntax;
55910
 
  friend class ::ExtGnu;
 
66841
  friend class ::WinAsm;
 
66842
  friend class ::WinDeclSpecs;
 
66843
  friend class ::WinMemberExplSpec;
 
66844
  friend class ::WinTypeKeywords;
 
66845
  friend class ::WinFriend;
55911
66846
  friend class ::ExtAC;
55912
66847
  friend class ::ExtACBuilderCoupling;
55913
66848
  friend class ::ExtACSyntaxCoupling;
55914
66849
  friend class ::ExtACTree;
55915
66850
  friend class ::ExtACKeywords;
55916
 
  friend class ::WinAsm;
55917
 
  friend class ::WinDeclSpecs;
55918
 
  friend class ::WinMemberExplSpec;
55919
 
  friend class ::WinTypeKeywords;
 
66851
  friend class ::ExtGnu;
55920
66852
  friend class ::PragmaOnceUnitState;
55921
66853
  friend class ::PragmaOnce;
55922
 
  friend class ::CCExprResolve;
55923
 
  friend class ::CExprResolve;
 
66854
  friend class ::CMatchSyntax;
55924
66855
 
55925
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66856
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55926
66857
 
55927
66858
  CTree *sons[3]; // ptr, cv_quals, declarator
55928
66859
 
55929
66860
public:
55930
66861
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
55931
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
66862
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
55932
66863
  }
 
66864
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55933
66865
  static const char *NodeId ();
 
66866
  /** Get the name of the node. Can be compared with NodeId(). */
55934
66867
  const char *NodeName () const { return NodeId (); }
 
66868
  /** Get the number of sons. */
55935
66869
  int Sons () const { return CTree::Sons (sons, 3); }
 
66870
  /** Get the n-th son.
 
66871
   *  \param n The index of the son.
 
66872
   *  \return The n-th son or NULL. */
55936
66873
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
55937
66874
  CTree *Declarator () const { return sons[2]; }
55938
66875
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
66876
  /** Replace a son.
 
66877
   *  \param old_son The son to replace.
 
66878
   *  \param new_son The new son. */
55939
66879
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
55940
66880
    CTree::ReplaceSon (sons, 3, old_son, new_son);
55941
66881
  }
55942
66882
};
55943
66883
 
55944
66884
 
55945
 
#line 55946 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66885
#line 66886 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
55946
66886
} // closed Puma
 
66887
class CCExprResolve;
 
66888
class CExprResolve;
55947
66889
class WinIfExists;
55948
66890
class WinImportHandler;
55949
66891
class WinMacros;
55950
 
class CMatchSyntax;
55951
 
class ExtGnu;
 
66892
class WinAsm;
 
66893
class WinDeclSpecs;
 
66894
class WinMemberExplSpec;
 
66895
class WinTypeKeywords;
 
66896
class WinFriend;
55952
66897
class ExtAC;
55953
66898
class ExtACBuilderCoupling;
55954
66899
class ExtACSyntaxCoupling;
55955
66900
class ExtACTree;
55956
66901
class ExtACKeywords;
55957
 
class WinAsm;
55958
 
class WinDeclSpecs;
55959
 
class WinMemberExplSpec;
55960
 
class WinTypeKeywords;
 
66902
class ExtGnu;
55961
66903
class PragmaOnceUnitState;
55962
66904
class PragmaOnce;
55963
 
class CCExprResolve;
55964
 
class CExprResolve;
 
66905
class CMatchSyntax;
55965
66906
namespace Puma {
55966
66907
 
55967
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66908
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55968
66909
class CT_MembPtrDeclarator : public CT_Declarator {
55969
 
#line 55970 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66910
#line 66911 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
66911
  friend class ::CCExprResolve;
 
66912
  friend class ::CExprResolve;
55970
66913
  friend class ::WinIfExists;
55971
66914
  friend class ::WinImportHandler;
55972
66915
  friend class ::WinMacros;
55973
 
  friend class ::CMatchSyntax;
55974
 
  friend class ::ExtGnu;
 
66916
  friend class ::WinAsm;
 
66917
  friend class ::WinDeclSpecs;
 
66918
  friend class ::WinMemberExplSpec;
 
66919
  friend class ::WinTypeKeywords;
 
66920
  friend class ::WinFriend;
55975
66921
  friend class ::ExtAC;
55976
66922
  friend class ::ExtACBuilderCoupling;
55977
66923
  friend class ::ExtACSyntaxCoupling;
55978
66924
  friend class ::ExtACTree;
55979
66925
  friend class ::ExtACKeywords;
55980
 
  friend class ::WinAsm;
55981
 
  friend class ::WinDeclSpecs;
55982
 
  friend class ::WinMemberExplSpec;
55983
 
  friend class ::WinTypeKeywords;
 
66926
  friend class ::ExtGnu;
55984
66927
  friend class ::PragmaOnceUnitState;
55985
66928
  friend class ::PragmaOnce;
55986
 
  friend class ::CCExprResolve;
55987
 
  friend class ::CExprResolve;
 
66929
  friend class ::CMatchSyntax;
55988
66930
 
55989
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66931
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
55990
66932
 
55991
66933
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
55992
66934
 
55993
66935
public:
55994
66936
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
55995
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
66937
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
66938
    AddSon (sons[3], q); AddSon (sons[4], d); 
55996
66939
  }
 
66940
  /** Get the identifier for this node type. Can be compared with NodeName(). */
55997
66941
  static const char *NodeId ();
 
66942
  /** Get the name of the node. Can be compared with NodeId(). */
55998
66943
  const char *NodeName () const { return NodeId (); }
 
66944
  /** Get the number of sons. */
55999
66945
  int Sons () const { return CTree::Sons (sons, 5); }
 
66946
  /** Get the n-th son.
 
66947
   *  \param n The index of the son.
 
66948
   *  \return The n-th son or NULL. */
56000
66949
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
56001
66950
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
56002
66951
  CTree *Declarator () const { return sons[4]; }
56003
66952
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
66953
  /** Replace a son.
 
66954
   *  \param old_son The son to replace.
 
66955
   *  \param new_son The new son. */
56004
66956
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56005
66957
    CTree::ReplaceSon (sons, 5, old_son, new_son);
56006
66958
  }
56007
66959
};
56008
66960
 
56009
66961
 
56010
 
#line 56011 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66962
#line 66963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56011
66963
} // closed Puma
 
66964
class CCExprResolve;
 
66965
class CExprResolve;
56012
66966
class WinIfExists;
56013
66967
class WinImportHandler;
56014
66968
class WinMacros;
56015
 
class CMatchSyntax;
56016
 
class ExtGnu;
 
66969
class WinAsm;
 
66970
class WinDeclSpecs;
 
66971
class WinMemberExplSpec;
 
66972
class WinTypeKeywords;
 
66973
class WinFriend;
56017
66974
class ExtAC;
56018
66975
class ExtACBuilderCoupling;
56019
66976
class ExtACSyntaxCoupling;
56020
66977
class ExtACTree;
56021
66978
class ExtACKeywords;
56022
 
class WinAsm;
56023
 
class WinDeclSpecs;
56024
 
class WinMemberExplSpec;
56025
 
class WinTypeKeywords;
 
66979
class ExtGnu;
56026
66980
class PragmaOnceUnitState;
56027
66981
class PragmaOnce;
56028
 
class CCExprResolve;
56029
 
class CExprResolve;
 
66982
class CMatchSyntax;
56030
66983
namespace Puma {
56031
66984
 
56032
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
66985
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56033
66986
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
56034
 
#line 56035 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
66987
#line 66988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
66988
  friend class ::CCExprResolve;
 
66989
  friend class ::CExprResolve;
56035
66990
  friend class ::WinIfExists;
56036
66991
  friend class ::WinImportHandler;
56037
66992
  friend class ::WinMacros;
56038
 
  friend class ::CMatchSyntax;
56039
 
  friend class ::ExtGnu;
 
66993
  friend class ::WinAsm;
 
66994
  friend class ::WinDeclSpecs;
 
66995
  friend class ::WinMemberExplSpec;
 
66996
  friend class ::WinTypeKeywords;
 
66997
  friend class ::WinFriend;
56040
66998
  friend class ::ExtAC;
56041
66999
  friend class ::ExtACBuilderCoupling;
56042
67000
  friend class ::ExtACSyntaxCoupling;
56043
67001
  friend class ::ExtACTree;
56044
67002
  friend class ::ExtACKeywords;
56045
 
  friend class ::WinAsm;
56046
 
  friend class ::WinDeclSpecs;
56047
 
  friend class ::WinMemberExplSpec;
56048
 
  friend class ::WinTypeKeywords;
 
67003
  friend class ::ExtGnu;
56049
67004
  friend class ::PragmaOnceUnitState;
56050
67005
  friend class ::PragmaOnce;
56051
 
  friend class ::CCExprResolve;
56052
 
  friend class ::CExprResolve;
 
67006
  friend class ::CMatchSyntax;
56053
67007
 
56054
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67008
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56055
67009
 
56056
67010
  CTree *sons[3]; // declarator, colon, expr
56057
67011
 
56058
67012
public:
56059
67013
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
56060
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
67014
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
56061
67015
  }
 
67016
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56062
67017
  static const char *NodeId ();
 
67018
  /** Get the name of the node. Can be compared with NodeId(). */
56063
67019
  const char *NodeName () const { return NodeId (); }
 
67020
  /** Get the number of sons. */
56064
67021
  int Sons () const { return CTree::Sons (sons, 3); }
 
67022
  /** Get the n-th son.
 
67023
   *  \param n The index of the son.
 
67024
   *  \return The n-th son or NULL. */
56065
67025
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
56066
67026
  CTree *Declarator () const { return sons[0]; }
56067
67027
  CTree *Expr () const { return sons[2]; }
56068
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
67028
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
56069
67029
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
67030
  /** Replace a son.
 
67031
   *  \param old_son The son to replace.
 
67032
   *  \param new_son The new son. */
56070
67033
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56071
67034
    CTree::ReplaceSon (sons, 3, old_son, new_son);
56072
67035
  }
56079
67042
/*****************************************************************************/
56080
67043
 
56081
67044
 
56082
 
#line 56083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67045
#line 67046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56083
67046
} // closed Puma
 
67047
class CCExprResolve;
 
67048
class CExprResolve;
56084
67049
class WinIfExists;
56085
67050
class WinImportHandler;
56086
67051
class WinMacros;
56087
 
class CMatchSyntax;
56088
 
class ExtGnu;
 
67052
class WinAsm;
 
67053
class WinDeclSpecs;
 
67054
class WinMemberExplSpec;
 
67055
class WinTypeKeywords;
 
67056
class WinFriend;
56089
67057
class ExtAC;
56090
67058
class ExtACBuilderCoupling;
56091
67059
class ExtACSyntaxCoupling;
56092
67060
class ExtACTree;
56093
67061
class ExtACKeywords;
56094
 
class WinAsm;
56095
 
class WinDeclSpecs;
56096
 
class WinMemberExplSpec;
56097
 
class WinTypeKeywords;
 
67062
class ExtGnu;
56098
67063
class PragmaOnceUnitState;
56099
67064
class PragmaOnce;
56100
 
class CCExprResolve;
56101
 
class CExprResolve;
 
67065
class CMatchSyntax;
56102
67066
namespace Puma {
56103
67067
 
56104
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67068
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56105
67069
class CT_Statement : public CTree {
56106
 
#line 56107 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67070
#line 67071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
67071
  friend class ::CCExprResolve;
 
67072
  friend class ::CExprResolve;
56107
67073
  friend class ::WinIfExists;
56108
67074
  friend class ::WinImportHandler;
56109
67075
  friend class ::WinMacros;
56110
 
  friend class ::CMatchSyntax;
56111
 
  friend class ::ExtGnu;
 
67076
  friend class ::WinAsm;
 
67077
  friend class ::WinDeclSpecs;
 
67078
  friend class ::WinMemberExplSpec;
 
67079
  friend class ::WinTypeKeywords;
 
67080
  friend class ::WinFriend;
56112
67081
  friend class ::ExtAC;
56113
67082
  friend class ::ExtACBuilderCoupling;
56114
67083
  friend class ::ExtACSyntaxCoupling;
56115
67084
  friend class ::ExtACTree;
56116
67085
  friend class ::ExtACKeywords;
56117
 
  friend class ::WinAsm;
56118
 
  friend class ::WinDeclSpecs;
56119
 
  friend class ::WinMemberExplSpec;
56120
 
  friend class ::WinTypeKeywords;
 
67086
  friend class ::ExtGnu;
56121
67087
  friend class ::PragmaOnceUnitState;
56122
67088
  friend class ::PragmaOnce;
56123
 
  friend class ::CCExprResolve;
56124
 
  friend class ::CExprResolve;
 
67089
  friend class ::CMatchSyntax;
56125
67090
 
56126
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67091
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56127
67092
 
56128
67093
protected:
56129
67094
  CT_Statement () {}
 
67095
  virtual CT_Statement *IsStatement () { return this; }
56130
67096
};
56131
67097
 
56132
67098
 
56133
 
#line 56134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67099
#line 67100 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56134
67100
} // closed Puma
 
67101
class CCExprResolve;
 
67102
class CExprResolve;
56135
67103
class WinIfExists;
56136
67104
class WinImportHandler;
56137
67105
class WinMacros;
56138
 
class CMatchSyntax;
56139
 
class ExtGnu;
 
67106
class WinAsm;
 
67107
class WinDeclSpecs;
 
67108
class WinMemberExplSpec;
 
67109
class WinTypeKeywords;
 
67110
class WinFriend;
56140
67111
class ExtAC;
56141
67112
class ExtACBuilderCoupling;
56142
67113
class ExtACSyntaxCoupling;
56143
67114
class ExtACTree;
56144
67115
class ExtACKeywords;
56145
 
class WinAsm;
56146
 
class WinDeclSpecs;
56147
 
class WinMemberExplSpec;
56148
 
class WinTypeKeywords;
 
67116
class ExtGnu;
56149
67117
class PragmaOnceUnitState;
56150
67118
class PragmaOnce;
56151
 
class CCExprResolve;
56152
 
class CExprResolve;
 
67119
class CMatchSyntax;
56153
67120
namespace Puma {
56154
67121
 
56155
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67122
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56156
67123
class CT_LabelStmt : public CT_Statement {
56157
 
#line 56158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67124
#line 67125 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
67125
  friend class ::CCExprResolve;
 
67126
  friend class ::CExprResolve;
56158
67127
  friend class ::WinIfExists;
56159
67128
  friend class ::WinImportHandler;
56160
67129
  friend class ::WinMacros;
56161
 
  friend class ::CMatchSyntax;
56162
 
  friend class ::ExtGnu;
 
67130
  friend class ::WinAsm;
 
67131
  friend class ::WinDeclSpecs;
 
67132
  friend class ::WinMemberExplSpec;
 
67133
  friend class ::WinTypeKeywords;
 
67134
  friend class ::WinFriend;
56163
67135
  friend class ::ExtAC;
56164
67136
  friend class ::ExtACBuilderCoupling;
56165
67137
  friend class ::ExtACSyntaxCoupling;
56166
67138
  friend class ::ExtACTree;
56167
67139
  friend class ::ExtACKeywords;
56168
 
  friend class ::WinAsm;
56169
 
  friend class ::WinDeclSpecs;
56170
 
  friend class ::WinMemberExplSpec;
56171
 
  friend class ::WinTypeKeywords;
 
67140
  friend class ::ExtGnu;
56172
67141
  friend class ::PragmaOnceUnitState;
56173
67142
  friend class ::PragmaOnce;
56174
 
  friend class ::CCExprResolve;
56175
 
  friend class ::CExprResolve;
 
67143
  friend class ::CMatchSyntax;
56176
67144
 
56177
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67145
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56178
67146
 
56179
67147
  CTree *sons[3]; // id, colon, stmt
56180
67148
 
56181
67149
public:
56182
67150
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
56183
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
67151
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
56184
67152
  }
 
67153
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56185
67154
  static const char *NodeId ();
 
67155
  /** Get the name of the node. Can be compared with NodeId(). */
56186
67156
  const char *NodeName () const { return NodeId (); }
 
67157
  /** Get the number of sons. */
56187
67158
  int Sons () const { return 3; }
 
67159
  /** Get the n-th son.
 
67160
   *  \param n The index of the son.
 
67161
   *  \return The n-th son or NULL. */
56188
67162
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
56189
67163
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
56190
67164
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
67165
  /** Replace a son.
 
67166
   *  \param old_son The son to replace.
 
67167
   *  \param new_son The new son. */
56191
67168
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56192
67169
    CTree::ReplaceSon (sons, 3, old_son, new_son);
56193
67170
  }
56194
67171
};
56195
67172
 
56196
67173
 
56197
 
#line 56198 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67174
#line 67175 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56198
67175
} // closed Puma
 
67176
class CCExprResolve;
 
67177
class CExprResolve;
56199
67178
class WinIfExists;
56200
67179
class WinImportHandler;
56201
67180
class WinMacros;
56202
 
class CMatchSyntax;
56203
 
class ExtGnu;
 
67181
class WinAsm;
 
67182
class WinDeclSpecs;
 
67183
class WinMemberExplSpec;
 
67184
class WinTypeKeywords;
 
67185
class WinFriend;
56204
67186
class ExtAC;
56205
67187
class ExtACBuilderCoupling;
56206
67188
class ExtACSyntaxCoupling;
56207
67189
class ExtACTree;
56208
67190
class ExtACKeywords;
56209
 
class WinAsm;
56210
 
class WinDeclSpecs;
56211
 
class WinMemberExplSpec;
56212
 
class WinTypeKeywords;
 
67191
class ExtGnu;
56213
67192
class PragmaOnceUnitState;
56214
67193
class PragmaOnce;
56215
 
class CCExprResolve;
56216
 
class CExprResolve;
 
67194
class CMatchSyntax;
56217
67195
namespace Puma {
56218
67196
 
56219
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67197
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56220
67198
class CT_DefaultStmt : public CT_Statement {
56221
 
#line 56222 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67199
#line 67200 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
67200
  friend class ::CCExprResolve;
 
67201
  friend class ::CExprResolve;
56222
67202
  friend class ::WinIfExists;
56223
67203
  friend class ::WinImportHandler;
56224
67204
  friend class ::WinMacros;
56225
 
  friend class ::CMatchSyntax;
56226
 
  friend class ::ExtGnu;
 
67205
  friend class ::WinAsm;
 
67206
  friend class ::WinDeclSpecs;
 
67207
  friend class ::WinMemberExplSpec;
 
67208
  friend class ::WinTypeKeywords;
 
67209
  friend class ::WinFriend;
56227
67210
  friend class ::ExtAC;
56228
67211
  friend class ::ExtACBuilderCoupling;
56229
67212
  friend class ::ExtACSyntaxCoupling;
56230
67213
  friend class ::ExtACTree;
56231
67214
  friend class ::ExtACKeywords;
56232
 
  friend class ::WinAsm;
56233
 
  friend class ::WinDeclSpecs;
56234
 
  friend class ::WinMemberExplSpec;
56235
 
  friend class ::WinTypeKeywords;
 
67215
  friend class ::ExtGnu;
56236
67216
  friend class ::PragmaOnceUnitState;
56237
67217
  friend class ::PragmaOnce;
56238
 
  friend class ::CCExprResolve;
56239
 
  friend class ::CExprResolve;
 
67218
  friend class ::CMatchSyntax;
56240
67219
 
56241
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67220
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56242
67221
 
56243
67222
  CTree *sons[3]; // keyword, colon, stmt
56244
67223
 
56245
67224
public:
56246
67225
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
56247
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
67226
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
56248
67227
  }
 
67228
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56249
67229
  static const char *NodeId ();
 
67230
  /** Get the name of the node. Can be compared with NodeId(). */
56250
67231
  const char *NodeName () const { return NodeId (); }
 
67232
  /** Get the number of sons. */
56251
67233
  int Sons () const { return 3; }
 
67234
  /** Get the n-th son.
 
67235
   *  \param n The index of the son.
 
67236
   *  \return The n-th son or NULL. */
56252
67237
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
56253
67238
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
67239
  /** Replace a son.
 
67240
   *  \param old_son The son to replace.
 
67241
   *  \param new_son The new son. */
56254
67242
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56255
67243
    CTree::ReplaceSon (sons, 3, old_son, new_son);
56256
67244
  }
56257
67245
};
56258
67246
 
56259
67247
 
56260
 
#line 56261 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67248
#line 67249 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56261
67249
} // closed Puma
 
67250
class CCExprResolve;
 
67251
class CExprResolve;
56262
67252
class WinIfExists;
56263
67253
class WinImportHandler;
56264
67254
class WinMacros;
56265
 
class CMatchSyntax;
56266
 
class ExtGnu;
 
67255
class WinAsm;
 
67256
class WinDeclSpecs;
 
67257
class WinMemberExplSpec;
 
67258
class WinTypeKeywords;
 
67259
class WinFriend;
56267
67260
class ExtAC;
56268
67261
class ExtACBuilderCoupling;
56269
67262
class ExtACSyntaxCoupling;
56270
67263
class ExtACTree;
56271
67264
class ExtACKeywords;
56272
 
class WinAsm;
56273
 
class WinDeclSpecs;
56274
 
class WinMemberExplSpec;
56275
 
class WinTypeKeywords;
 
67265
class ExtGnu;
56276
67266
class PragmaOnceUnitState;
56277
67267
class PragmaOnce;
56278
 
class CCExprResolve;
56279
 
class CExprResolve;
 
67268
class CMatchSyntax;
56280
67269
namespace Puma {
56281
67270
 
56282
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67271
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56283
67272
class CT_TryStmt : public CT_Statement {
56284
 
#line 56285 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67273
#line 67274 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
67274
  friend class ::CCExprResolve;
 
67275
  friend class ::CExprResolve;
56285
67276
  friend class ::WinIfExists;
56286
67277
  friend class ::WinImportHandler;
56287
67278
  friend class ::WinMacros;
56288
 
  friend class ::CMatchSyntax;
56289
 
  friend class ::ExtGnu;
 
67279
  friend class ::WinAsm;
 
67280
  friend class ::WinDeclSpecs;
 
67281
  friend class ::WinMemberExplSpec;
 
67282
  friend class ::WinTypeKeywords;
 
67283
  friend class ::WinFriend;
56290
67284
  friend class ::ExtAC;
56291
67285
  friend class ::ExtACBuilderCoupling;
56292
67286
  friend class ::ExtACSyntaxCoupling;
56293
67287
  friend class ::ExtACTree;
56294
67288
  friend class ::ExtACKeywords;
56295
 
  friend class ::WinAsm;
56296
 
  friend class ::WinDeclSpecs;
56297
 
  friend class ::WinMemberExplSpec;
56298
 
  friend class ::WinTypeKeywords;
 
67289
  friend class ::ExtGnu;
56299
67290
  friend class ::PragmaOnceUnitState;
56300
67291
  friend class ::PragmaOnce;
56301
 
  friend class ::CCExprResolve;
56302
 
  friend class ::CExprResolve;
 
67292
  friend class ::CMatchSyntax;
56303
67293
 
56304
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67294
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56305
67295
 
56306
67296
  CTree *sons[3]; // try, stmt, handlers
56307
67297
 
56308
67298
public:
56309
67299
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
56310
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
67300
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
56311
67301
  }
 
67302
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56312
67303
  static const char *NodeId ();
 
67304
  /** Get the name of the node. Can be compared with NodeId(). */
56313
67305
  const char *NodeName () const { return NodeId (); }
 
67306
  /** Get the number of sons. */
56314
67307
  int Sons () const { return 3; }
 
67308
  /** Get the n-th son.
 
67309
   *  \param n The index of the son.
 
67310
   *  \return The n-th son or NULL. */
56315
67311
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
56316
67312
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
56317
67313
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
67314
  /** Replace a son.
 
67315
   *  \param old_son The son to replace.
 
67316
   *  \param new_son The new son. */
56318
67317
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56319
67318
    CTree::ReplaceSon (sons, 3, old_son, new_son);
56320
67319
  }
56321
67320
};
56322
67321
 
56323
67322
 
56324
 
#line 56325 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67323
#line 67324 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56325
67324
} // closed Puma
 
67325
class CCExprResolve;
 
67326
class CExprResolve;
56326
67327
class WinIfExists;
56327
67328
class WinImportHandler;
56328
67329
class WinMacros;
56329
 
class CMatchSyntax;
56330
 
class ExtGnu;
 
67330
class WinAsm;
 
67331
class WinDeclSpecs;
 
67332
class WinMemberExplSpec;
 
67333
class WinTypeKeywords;
 
67334
class WinFriend;
56331
67335
class ExtAC;
56332
67336
class ExtACBuilderCoupling;
56333
67337
class ExtACSyntaxCoupling;
56334
67338
class ExtACTree;
56335
67339
class ExtACKeywords;
56336
 
class WinAsm;
56337
 
class WinDeclSpecs;
56338
 
class WinMemberExplSpec;
56339
 
class WinTypeKeywords;
 
67340
class ExtGnu;
56340
67341
class PragmaOnceUnitState;
56341
67342
class PragmaOnce;
56342
 
class CCExprResolve;
56343
 
class CExprResolve;
 
67343
class CMatchSyntax;
56344
67344
namespace Puma {
56345
67345
 
56346
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67346
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56347
67347
class CT_CaseStmt : public CT_Statement {
56348
 
#line 56349 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67348
#line 67349 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
67349
  friend class ::CCExprResolve;
 
67350
  friend class ::CExprResolve;
56349
67351
  friend class ::WinIfExists;
56350
67352
  friend class ::WinImportHandler;
56351
67353
  friend class ::WinMacros;
56352
 
  friend class ::CMatchSyntax;
56353
 
  friend class ::ExtGnu;
 
67354
  friend class ::WinAsm;
 
67355
  friend class ::WinDeclSpecs;
 
67356
  friend class ::WinMemberExplSpec;
 
67357
  friend class ::WinTypeKeywords;
 
67358
  friend class ::WinFriend;
56354
67359
  friend class ::ExtAC;
56355
67360
  friend class ::ExtACBuilderCoupling;
56356
67361
  friend class ::ExtACSyntaxCoupling;
56357
67362
  friend class ::ExtACTree;
56358
67363
  friend class ::ExtACKeywords;
56359
 
  friend class ::WinAsm;
56360
 
  friend class ::WinDeclSpecs;
56361
 
  friend class ::WinMemberExplSpec;
56362
 
  friend class ::WinTypeKeywords;
 
67364
  friend class ::ExtGnu;
56363
67365
  friend class ::PragmaOnceUnitState;
56364
67366
  friend class ::PragmaOnce;
56365
 
  friend class ::CCExprResolve;
56366
 
  friend class ::CExprResolve;
 
67367
  friend class ::CMatchSyntax;
56367
67368
 
56368
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67369
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56369
67370
 
56370
67371
  CTree *sons[4]; // keyword, expr, colon, stmt
56371
67372
 
56372
67373
public:
56373
67374
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
56374
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
67375
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
67376
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
56375
67377
  }
 
67378
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56376
67379
  static const char *NodeId ();
 
67380
  /** Get the name of the node. Can be compared with NodeId(). */
56377
67381
  const char *NodeName () const { return NodeId (); }
 
67382
  /** Get the number of sons. */
56378
67383
  int Sons () const { return 4; }
 
67384
  /** Get the n-th son.
 
67385
   *  \param n The index of the son.
 
67386
   *  \return The n-th son or NULL. */
56379
67387
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
56380
67388
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
56381
67389
  CTree *Expr () const { return sons[1]; }
 
67390
  /** Replace a son.
 
67391
   *  \param old_son The son to replace.
 
67392
   *  \param new_son The new son. */
56382
67393
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56383
67394
    CTree::ReplaceSon (sons, 4, old_son, new_son);
56384
67395
  }
56385
67396
};
56386
67397
 
56387
67398
 
56388
 
#line 56389 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67399
#line 67400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56389
67400
} // closed Puma
 
67401
class CCExprResolve;
 
67402
class CExprResolve;
56390
67403
class WinIfExists;
56391
67404
class WinImportHandler;
56392
67405
class WinMacros;
56393
 
class CMatchSyntax;
56394
 
class ExtGnu;
 
67406
class WinAsm;
 
67407
class WinDeclSpecs;
 
67408
class WinMemberExplSpec;
 
67409
class WinTypeKeywords;
 
67410
class WinFriend;
56395
67411
class ExtAC;
56396
67412
class ExtACBuilderCoupling;
56397
67413
class ExtACSyntaxCoupling;
56398
67414
class ExtACTree;
56399
67415
class ExtACKeywords;
56400
 
class WinAsm;
56401
 
class WinDeclSpecs;
56402
 
class WinMemberExplSpec;
56403
 
class WinTypeKeywords;
 
67416
class ExtGnu;
56404
67417
class PragmaOnceUnitState;
56405
67418
class PragmaOnce;
56406
 
class CCExprResolve;
56407
 
class CExprResolve;
 
67419
class CMatchSyntax;
56408
67420
namespace Puma {
56409
67421
 
56410
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67422
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56411
67423
class CT_ExprStmt : public CT_Statement {
56412
 
#line 56413 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67424
#line 67425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
67425
  friend class ::CCExprResolve;
 
67426
  friend class ::CExprResolve;
56413
67427
  friend class ::WinIfExists;
56414
67428
  friend class ::WinImportHandler;
56415
67429
  friend class ::WinMacros;
56416
 
  friend class ::CMatchSyntax;
56417
 
  friend class ::ExtGnu;
 
67430
  friend class ::WinAsm;
 
67431
  friend class ::WinDeclSpecs;
 
67432
  friend class ::WinMemberExplSpec;
 
67433
  friend class ::WinTypeKeywords;
 
67434
  friend class ::WinFriend;
56418
67435
  friend class ::ExtAC;
56419
67436
  friend class ::ExtACBuilderCoupling;
56420
67437
  friend class ::ExtACSyntaxCoupling;
56421
67438
  friend class ::ExtACTree;
56422
67439
  friend class ::ExtACKeywords;
56423
 
  friend class ::WinAsm;
56424
 
  friend class ::WinDeclSpecs;
56425
 
  friend class ::WinMemberExplSpec;
56426
 
  friend class ::WinTypeKeywords;
 
67440
  friend class ::ExtGnu;
56427
67441
  friend class ::PragmaOnceUnitState;
56428
67442
  friend class ::PragmaOnce;
56429
 
  friend class ::CCExprResolve;
56430
 
  friend class ::CExprResolve;
 
67443
  friend class ::CMatchSyntax;
56431
67444
 
56432
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67445
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56433
67446
 
56434
67447
  CTree *sons[2]; // expr, semi_colon
56435
67448
 
56436
67449
public:
56437
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
67450
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
67451
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56438
67452
  static const char *NodeId ();
 
67453
  /** Get the name of the node. Can be compared with NodeId(). */
56439
67454
  const char *NodeName () const { return NodeId (); }
 
67455
  /** Get the number of sons. */
56440
67456
  int Sons () const { return CTree::Sons (sons, 2); }
 
67457
  /** Get the n-th son.
 
67458
   *  \param n The index of the son.
 
67459
   *  \return The n-th son or NULL. */
56441
67460
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
56442
67461
  CTree *Expr () const { return sons[0]; }
 
67462
  /** Replace a son.
 
67463
   *  \param old_son The son to replace.
 
67464
   *  \param new_son The new son. */
56443
67465
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56444
67466
    CTree::ReplaceSon (sons, 2, old_son, new_son);
56445
67467
  }
56446
67468
};
56447
67469
 
56448
67470
 
56449
 
#line 56450 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67471
#line 67472 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56450
67472
} // closed Puma
 
67473
class CCExprResolve;
 
67474
class CExprResolve;
56451
67475
class WinIfExists;
56452
67476
class WinImportHandler;
56453
67477
class WinMacros;
56454
 
class CMatchSyntax;
56455
 
class ExtGnu;
 
67478
class WinAsm;
 
67479
class WinDeclSpecs;
 
67480
class WinMemberExplSpec;
 
67481
class WinTypeKeywords;
 
67482
class WinFriend;
56456
67483
class ExtAC;
56457
67484
class ExtACBuilderCoupling;
56458
67485
class ExtACSyntaxCoupling;
56459
67486
class ExtACTree;
56460
67487
class ExtACKeywords;
56461
 
class WinAsm;
56462
 
class WinDeclSpecs;
56463
 
class WinMemberExplSpec;
56464
 
class WinTypeKeywords;
 
67488
class ExtGnu;
56465
67489
class PragmaOnceUnitState;
56466
67490
class PragmaOnce;
56467
 
class CCExprResolve;
56468
 
class CExprResolve;
 
67491
class CMatchSyntax;
56469
67492
namespace Puma {
56470
67493
 
56471
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67494
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56472
67495
class CT_DeclStmt : public CT_Statement {
56473
 
#line 56474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67496
#line 67497 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
67497
  friend class ::CCExprResolve;
 
67498
  friend class ::CExprResolve;
56474
67499
  friend class ::WinIfExists;
56475
67500
  friend class ::WinImportHandler;
56476
67501
  friend class ::WinMacros;
56477
 
  friend class ::CMatchSyntax;
56478
 
  friend class ::ExtGnu;
 
67502
  friend class ::WinAsm;
 
67503
  friend class ::WinDeclSpecs;
 
67504
  friend class ::WinMemberExplSpec;
 
67505
  friend class ::WinTypeKeywords;
 
67506
  friend class ::WinFriend;
56479
67507
  friend class ::ExtAC;
56480
67508
  friend class ::ExtACBuilderCoupling;
56481
67509
  friend class ::ExtACSyntaxCoupling;
56482
67510
  friend class ::ExtACTree;
56483
67511
  friend class ::ExtACKeywords;
56484
 
  friend class ::WinAsm;
56485
 
  friend class ::WinDeclSpecs;
56486
 
  friend class ::WinMemberExplSpec;
56487
 
  friend class ::WinTypeKeywords;
 
67512
  friend class ::ExtGnu;
56488
67513
  friend class ::PragmaOnceUnitState;
56489
67514
  friend class ::PragmaOnce;
56490
 
  friend class ::CCExprResolve;
56491
 
  friend class ::CExprResolve;
 
67515
  friend class ::CMatchSyntax;
56492
67516
 
56493
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67517
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56494
67518
 
56495
67519
  CTree *_decl;
56496
67520
 
56497
67521
public:
56498
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
67522
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
67523
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56499
67524
  static const char *NodeId ();
 
67525
  /** Get the name of the node. Can be compared with NodeId(). */
56500
67526
  const char *NodeName () const { return NodeId (); }
 
67527
  /** Get the number of sons. */
56501
67528
  int Sons () const { return 1; }
 
67529
  /** Get the n-th son.
 
67530
   *  \param n The index of the son.
 
67531
   *  \return The n-th son or NULL. */
56502
67532
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
67533
  /** Replace a son.
 
67534
   *  \param old_son The son to replace.
 
67535
   *  \param new_son The new son. */
56503
67536
  void ReplaceSon (CTree *old_son, CTree *new_son) 
56504
 
   { if (old_son == _decl) _decl = new_son; }
 
67537
   { CTree::ReplaceSon (_decl, old_son, new_son); }
56505
67538
};
56506
67539
 
56507
67540
 
56508
 
#line 56509 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67541
#line 67542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56509
67542
} // closed Puma
 
67543
class CCExprResolve;
 
67544
class CExprResolve;
56510
67545
class WinIfExists;
56511
67546
class WinImportHandler;
56512
67547
class WinMacros;
56513
 
class CMatchSyntax;
56514
 
class ExtGnu;
 
67548
class WinAsm;
 
67549
class WinDeclSpecs;
 
67550
class WinMemberExplSpec;
 
67551
class WinTypeKeywords;
 
67552
class WinFriend;
56515
67553
class ExtAC;
56516
67554
class ExtACBuilderCoupling;
56517
67555
class ExtACSyntaxCoupling;
56518
67556
class ExtACTree;
56519
67557
class ExtACKeywords;
56520
 
class WinAsm;
56521
 
class WinDeclSpecs;
56522
 
class WinMemberExplSpec;
56523
 
class WinTypeKeywords;
 
67558
class ExtGnu;
56524
67559
class PragmaOnceUnitState;
56525
67560
class PragmaOnce;
56526
 
class CCExprResolve;
56527
 
class CExprResolve;
 
67561
class CMatchSyntax;
56528
67562
namespace Puma {
56529
67563
 
56530
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67564
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56531
67565
class CT_SwitchStmt : public CT_Statement, public CSemScope {
56532
 
#line 56533 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67566
#line 67567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
67567
  friend class ::CCExprResolve;
 
67568
  friend class ::CExprResolve;
56533
67569
  friend class ::WinIfExists;
56534
67570
  friend class ::WinImportHandler;
56535
67571
  friend class ::WinMacros;
56536
 
  friend class ::CMatchSyntax;
56537
 
  friend class ::ExtGnu;
 
67572
  friend class ::WinAsm;
 
67573
  friend class ::WinDeclSpecs;
 
67574
  friend class ::WinMemberExplSpec;
 
67575
  friend class ::WinTypeKeywords;
 
67576
  friend class ::WinFriend;
56538
67577
  friend class ::ExtAC;
56539
67578
  friend class ::ExtACBuilderCoupling;
56540
67579
  friend class ::ExtACSyntaxCoupling;
56541
67580
  friend class ::ExtACTree;
56542
67581
  friend class ::ExtACKeywords;
56543
 
  friend class ::WinAsm;
56544
 
  friend class ::WinDeclSpecs;
56545
 
  friend class ::WinMemberExplSpec;
56546
 
  friend class ::WinTypeKeywords;
 
67582
  friend class ::ExtGnu;
56547
67583
  friend class ::PragmaOnceUnitState;
56548
67584
  friend class ::PragmaOnce;
56549
 
  friend class ::CCExprResolve;
56550
 
  friend class ::CExprResolve;
 
67585
  friend class ::CMatchSyntax;
56551
67586
 
56552
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67587
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56553
67588
 
56554
67589
  CTree *sons[5]; // keyword, open, cond, close, stmt
56555
67590
 
56556
67591
public:
56557
67592
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
56558
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
67593
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
67594
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
56559
67595
  }
 
67596
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56560
67597
  static const char *NodeId ();
 
67598
  /** Get the name of the node. Can be compared with NodeId(). */
56561
67599
  const char *NodeName () const { return NodeId (); }
 
67600
  /** Get the number of sons. */
56562
67601
  int Sons () const { return 5; }
 
67602
  /** Get the n-th son.
 
67603
   *  \param n The index of the son.
 
67604
   *  \return The n-th son or NULL. */
56563
67605
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
56564
67606
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
56565
67607
  CTree *Condition () const { return sons[2]; }
 
67608
  /** Replace a son.
 
67609
   *  \param old_son The son to replace.
 
67610
   *  \param new_son The new son. */
56566
67611
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56567
67612
    CTree::ReplaceSon (sons, 5, old_son, new_son);
56568
67613
  }
 
67614
  CSemScope *SemScope () const { return (CSemScope*)this; }
56569
67615
};
56570
67616
 
56571
67617
 
56572
 
#line 56573 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67618
#line 67619 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56573
67619
} // closed Puma
 
67620
class CCExprResolve;
 
67621
class CExprResolve;
56574
67622
class WinIfExists;
56575
67623
class WinImportHandler;
56576
67624
class WinMacros;
56577
 
class CMatchSyntax;
56578
 
class ExtGnu;
 
67625
class WinAsm;
 
67626
class WinDeclSpecs;
 
67627
class WinMemberExplSpec;
 
67628
class WinTypeKeywords;
 
67629
class WinFriend;
56579
67630
class ExtAC;
56580
67631
class ExtACBuilderCoupling;
56581
67632
class ExtACSyntaxCoupling;
56582
67633
class ExtACTree;
56583
67634
class ExtACKeywords;
56584
 
class WinAsm;
56585
 
class WinDeclSpecs;
56586
 
class WinMemberExplSpec;
56587
 
class WinTypeKeywords;
 
67635
class ExtGnu;
56588
67636
class PragmaOnceUnitState;
56589
67637
class PragmaOnce;
56590
 
class CCExprResolve;
56591
 
class CExprResolve;
 
67638
class CMatchSyntax;
56592
67639
namespace Puma {
56593
67640
 
56594
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67641
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56595
67642
class CT_IfStmt : public CT_Statement, public CSemScope {
56596
 
#line 56597 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67643
#line 67644 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
67644
  friend class ::CCExprResolve;
 
67645
  friend class ::CExprResolve;
56597
67646
  friend class ::WinIfExists;
56598
67647
  friend class ::WinImportHandler;
56599
67648
  friend class ::WinMacros;
56600
 
  friend class ::CMatchSyntax;
56601
 
  friend class ::ExtGnu;
 
67649
  friend class ::WinAsm;
 
67650
  friend class ::WinDeclSpecs;
 
67651
  friend class ::WinMemberExplSpec;
 
67652
  friend class ::WinTypeKeywords;
 
67653
  friend class ::WinFriend;
56602
67654
  friend class ::ExtAC;
56603
67655
  friend class ::ExtACBuilderCoupling;
56604
67656
  friend class ::ExtACSyntaxCoupling;
56605
67657
  friend class ::ExtACTree;
56606
67658
  friend class ::ExtACKeywords;
56607
 
  friend class ::WinAsm;
56608
 
  friend class ::WinDeclSpecs;
56609
 
  friend class ::WinMemberExplSpec;
56610
 
  friend class ::WinTypeKeywords;
 
67659
  friend class ::ExtGnu;
56611
67660
  friend class ::PragmaOnceUnitState;
56612
67661
  friend class ::PragmaOnce;
56613
 
  friend class ::CCExprResolve;
56614
 
  friend class ::CExprResolve;
 
67662
  friend class ::CMatchSyntax;
56615
67663
 
56616
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67664
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56617
67665
 
56618
67666
  CTree *sons[5]; // keyword, open, cond, close, stmt
56619
67667
 
56620
67668
public:
56621
67669
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
56622
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
67670
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
67671
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
56623
67672
  }
 
67673
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56624
67674
  static const char *NodeId ();
 
67675
  /** Get the name of the node. Can be compared with NodeId(). */
56625
67676
  const char *NodeName () const { return NodeId (); }
 
67677
  /** Get the number of sons. */
56626
67678
  int Sons () const { return 5; }
 
67679
  /** Get the n-th son.
 
67680
   *  \param n The index of the son.
 
67681
   *  \return The n-th son or NULL. */
56627
67682
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
56628
67683
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
56629
67684
  CTree *Condition () const { return sons[2]; }
 
67685
  /** Replace a son.
 
67686
   *  \param old_son The son to replace.
 
67687
   *  \param new_son The new son. */
56630
67688
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56631
67689
    CTree::ReplaceSon (sons, 5, old_son, new_son);
56632
67690
  }
 
67691
  CSemScope *SemScope () const { return (CSemScope*)this; }
56633
67692
};
56634
67693
 
56635
67694
 
56636
 
#line 56637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67695
#line 67696 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56637
67696
} // closed Puma
 
67697
class CCExprResolve;
 
67698
class CExprResolve;
56638
67699
class WinIfExists;
56639
67700
class WinImportHandler;
56640
67701
class WinMacros;
56641
 
class CMatchSyntax;
56642
 
class ExtGnu;
 
67702
class WinAsm;
 
67703
class WinDeclSpecs;
 
67704
class WinMemberExplSpec;
 
67705
class WinTypeKeywords;
 
67706
class WinFriend;
56643
67707
class ExtAC;
56644
67708
class ExtACBuilderCoupling;
56645
67709
class ExtACSyntaxCoupling;
56646
67710
class ExtACTree;
56647
67711
class ExtACKeywords;
56648
 
class WinAsm;
56649
 
class WinDeclSpecs;
56650
 
class WinMemberExplSpec;
56651
 
class WinTypeKeywords;
 
67712
class ExtGnu;
56652
67713
class PragmaOnceUnitState;
56653
67714
class PragmaOnce;
56654
 
class CCExprResolve;
56655
 
class CExprResolve;
 
67715
class CMatchSyntax;
56656
67716
namespace Puma {
56657
67717
 
56658
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67718
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56659
67719
class CT_IfElseStmt : public CT_Statement, public CSemScope {
56660
 
#line 56661 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67720
#line 67721 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
67721
  friend class ::CCExprResolve;
 
67722
  friend class ::CExprResolve;
56661
67723
  friend class ::WinIfExists;
56662
67724
  friend class ::WinImportHandler;
56663
67725
  friend class ::WinMacros;
56664
 
  friend class ::CMatchSyntax;
56665
 
  friend class ::ExtGnu;
 
67726
  friend class ::WinAsm;
 
67727
  friend class ::WinDeclSpecs;
 
67728
  friend class ::WinMemberExplSpec;
 
67729
  friend class ::WinTypeKeywords;
 
67730
  friend class ::WinFriend;
56666
67731
  friend class ::ExtAC;
56667
67732
  friend class ::ExtACBuilderCoupling;
56668
67733
  friend class ::ExtACSyntaxCoupling;
56669
67734
  friend class ::ExtACTree;
56670
67735
  friend class ::ExtACKeywords;
56671
 
  friend class ::WinAsm;
56672
 
  friend class ::WinDeclSpecs;
56673
 
  friend class ::WinMemberExplSpec;
56674
 
  friend class ::WinTypeKeywords;
 
67736
  friend class ::ExtGnu;
56675
67737
  friend class ::PragmaOnceUnitState;
56676
67738
  friend class ::PragmaOnce;
56677
 
  friend class ::CCExprResolve;
56678
 
  friend class ::CExprResolve;
 
67739
  friend class ::CMatchSyntax;
56679
67740
 
56680
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67741
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56681
67742
 
56682
67743
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
56683
67744
 
56684
67745
public:
56685
67746
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
56686
67747
                 CTree *is, CTree *e, CTree *es) {
56687
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
56688
 
    sons[5] = e; sons[6] = es; 
 
67748
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
67749
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
67750
    AddSon (sons[6], es); 
56689
67751
  }
 
67752
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56690
67753
  static const char *NodeId ();
 
67754
  /** Get the name of the node. Can be compared with NodeId(). */
56691
67755
  const char *NodeName () const { return NodeId (); }
 
67756
  /** Get the number of sons. */
56692
67757
  int Sons () const { return 7; }
 
67758
  /** Get the n-th son.
 
67759
   *  \param n The index of the son.
 
67760
   *  \return The n-th son or NULL. */
56693
67761
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
56694
67762
  CTree *Condition () const { return sons[2]; }
56695
67763
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
56696
67764
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
67765
  /** Replace a son.
 
67766
   *  \param old_son The son to replace.
 
67767
   *  \param new_son The new son. */
56697
67768
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56698
67769
    CTree::ReplaceSon (sons, 7, old_son, new_son);
56699
67770
  }
 
67771
  CSemScope *SemScope () const { return (CSemScope*)this; }
56700
67772
};
56701
67773
 
56702
67774
 
56703
 
#line 56704 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67775
#line 67776 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56704
67776
} // closed Puma
 
67777
class CCExprResolve;
 
67778
class CExprResolve;
56705
67779
class WinIfExists;
56706
67780
class WinImportHandler;
56707
67781
class WinMacros;
56708
 
class CMatchSyntax;
56709
 
class ExtGnu;
 
67782
class WinAsm;
 
67783
class WinDeclSpecs;
 
67784
class WinMemberExplSpec;
 
67785
class WinTypeKeywords;
 
67786
class WinFriend;
56710
67787
class ExtAC;
56711
67788
class ExtACBuilderCoupling;
56712
67789
class ExtACSyntaxCoupling;
56713
67790
class ExtACTree;
56714
67791
class ExtACKeywords;
56715
 
class WinAsm;
56716
 
class WinDeclSpecs;
56717
 
class WinMemberExplSpec;
56718
 
class WinTypeKeywords;
 
67792
class ExtGnu;
56719
67793
class PragmaOnceUnitState;
56720
67794
class PragmaOnce;
56721
 
class CCExprResolve;
56722
 
class CExprResolve;
 
67795
class CMatchSyntax;
56723
67796
namespace Puma {
56724
67797
 
56725
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67798
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56726
67799
class CT_BreakStmt : public CT_Statement {
56727
 
#line 56728 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67800
#line 67801 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
67801
  friend class ::CCExprResolve;
 
67802
  friend class ::CExprResolve;
56728
67803
  friend class ::WinIfExists;
56729
67804
  friend class ::WinImportHandler;
56730
67805
  friend class ::WinMacros;
56731
 
  friend class ::CMatchSyntax;
56732
 
  friend class ::ExtGnu;
 
67806
  friend class ::WinAsm;
 
67807
  friend class ::WinDeclSpecs;
 
67808
  friend class ::WinMemberExplSpec;
 
67809
  friend class ::WinTypeKeywords;
 
67810
  friend class ::WinFriend;
56733
67811
  friend class ::ExtAC;
56734
67812
  friend class ::ExtACBuilderCoupling;
56735
67813
  friend class ::ExtACSyntaxCoupling;
56736
67814
  friend class ::ExtACTree;
56737
67815
  friend class ::ExtACKeywords;
56738
 
  friend class ::WinAsm;
56739
 
  friend class ::WinDeclSpecs;
56740
 
  friend class ::WinMemberExplSpec;
56741
 
  friend class ::WinTypeKeywords;
 
67816
  friend class ::ExtGnu;
56742
67817
  friend class ::PragmaOnceUnitState;
56743
67818
  friend class ::PragmaOnce;
56744
 
  friend class ::CCExprResolve;
56745
 
  friend class ::CExprResolve;
 
67819
  friend class ::CMatchSyntax;
56746
67820
 
56747
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67821
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56748
67822
 
56749
67823
  CTree *sons[2]; // key, semi_colon
56750
67824
 
56751
67825
public:
56752
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
67826
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
67827
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56753
67828
  static const char *NodeId ();
 
67829
  /** Get the name of the node. Can be compared with NodeId(). */
56754
67830
  const char *NodeName () const { return NodeId (); }
 
67831
  /** Get the number of sons. */
56755
67832
  int Sons () const { return 2; }
 
67833
  /** Get the n-th son.
 
67834
   *  \param n The index of the son.
 
67835
   *  \return The n-th son or NULL. */
56756
67836
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
67837
  /** Replace a son.
 
67838
   *  \param old_son The son to replace.
 
67839
   *  \param new_son The new son. */
56757
67840
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56758
67841
    CTree::ReplaceSon (sons, 2, old_son, new_son);
56759
67842
  }
56760
67843
};
56761
67844
 
56762
67845
 
56763
 
#line 56764 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67846
#line 67847 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56764
67847
} // closed Puma
 
67848
class CCExprResolve;
 
67849
class CExprResolve;
56765
67850
class WinIfExists;
56766
67851
class WinImportHandler;
56767
67852
class WinMacros;
56768
 
class CMatchSyntax;
56769
 
class ExtGnu;
 
67853
class WinAsm;
 
67854
class WinDeclSpecs;
 
67855
class WinMemberExplSpec;
 
67856
class WinTypeKeywords;
 
67857
class WinFriend;
56770
67858
class ExtAC;
56771
67859
class ExtACBuilderCoupling;
56772
67860
class ExtACSyntaxCoupling;
56773
67861
class ExtACTree;
56774
67862
class ExtACKeywords;
56775
 
class WinAsm;
56776
 
class WinDeclSpecs;
56777
 
class WinMemberExplSpec;
56778
 
class WinTypeKeywords;
 
67863
class ExtGnu;
56779
67864
class PragmaOnceUnitState;
56780
67865
class PragmaOnce;
56781
 
class CCExprResolve;
56782
 
class CExprResolve;
 
67866
class CMatchSyntax;
56783
67867
namespace Puma {
56784
67868
 
56785
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67869
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56786
67870
class CT_ContinueStmt : public CT_Statement {
56787
 
#line 56788 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67871
#line 67872 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
67872
  friend class ::CCExprResolve;
 
67873
  friend class ::CExprResolve;
56788
67874
  friend class ::WinIfExists;
56789
67875
  friend class ::WinImportHandler;
56790
67876
  friend class ::WinMacros;
56791
 
  friend class ::CMatchSyntax;
56792
 
  friend class ::ExtGnu;
 
67877
  friend class ::WinAsm;
 
67878
  friend class ::WinDeclSpecs;
 
67879
  friend class ::WinMemberExplSpec;
 
67880
  friend class ::WinTypeKeywords;
 
67881
  friend class ::WinFriend;
56793
67882
  friend class ::ExtAC;
56794
67883
  friend class ::ExtACBuilderCoupling;
56795
67884
  friend class ::ExtACSyntaxCoupling;
56796
67885
  friend class ::ExtACTree;
56797
67886
  friend class ::ExtACKeywords;
56798
 
  friend class ::WinAsm;
56799
 
  friend class ::WinDeclSpecs;
56800
 
  friend class ::WinMemberExplSpec;
56801
 
  friend class ::WinTypeKeywords;
 
67887
  friend class ::ExtGnu;
56802
67888
  friend class ::PragmaOnceUnitState;
56803
67889
  friend class ::PragmaOnce;
56804
 
  friend class ::CCExprResolve;
56805
 
  friend class ::CExprResolve;
 
67890
  friend class ::CMatchSyntax;
56806
67891
 
56807
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67892
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56808
67893
 
56809
67894
  CTree *sons[2]; // key, semi_colon
56810
67895
 
56811
67896
public:
56812
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
67897
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
67898
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56813
67899
  static const char *NodeId ();
 
67900
  /** Get the name of the node. Can be compared with NodeId(). */
56814
67901
  const char *NodeName () const { return NodeId (); }
 
67902
  /** Get the number of sons. */
56815
67903
  int Sons () const { return 2; }
 
67904
  /** Get the n-th son.
 
67905
   *  \param n The index of the son.
 
67906
   *  \return The n-th son or NULL. */
56816
67907
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
67908
  /** Replace a son.
 
67909
   *  \param old_son The son to replace.
 
67910
   *  \param new_son The new son. */
56817
67911
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56818
67912
    CTree::ReplaceSon (sons, 2, old_son, new_son);
56819
67913
  }
56820
67914
};
56821
67915
 
56822
67916
 
56823
 
#line 56824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67917
#line 67918 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56824
67918
} // closed Puma
 
67919
class CCExprResolve;
 
67920
class CExprResolve;
56825
67921
class WinIfExists;
56826
67922
class WinImportHandler;
56827
67923
class WinMacros;
56828
 
class CMatchSyntax;
56829
 
class ExtGnu;
 
67924
class WinAsm;
 
67925
class WinDeclSpecs;
 
67926
class WinMemberExplSpec;
 
67927
class WinTypeKeywords;
 
67928
class WinFriend;
56830
67929
class ExtAC;
56831
67930
class ExtACBuilderCoupling;
56832
67931
class ExtACSyntaxCoupling;
56833
67932
class ExtACTree;
56834
67933
class ExtACKeywords;
56835
 
class WinAsm;
56836
 
class WinDeclSpecs;
56837
 
class WinMemberExplSpec;
56838
 
class WinTypeKeywords;
 
67934
class ExtGnu;
56839
67935
class PragmaOnceUnitState;
56840
67936
class PragmaOnce;
56841
 
class CCExprResolve;
56842
 
class CExprResolve;
 
67937
class CMatchSyntax;
56843
67938
namespace Puma {
56844
67939
 
56845
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67940
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56846
67941
class CT_GotoStmt : public CT_Statement {
56847
 
#line 56848 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67942
#line 67943 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
67943
  friend class ::CCExprResolve;
 
67944
  friend class ::CExprResolve;
56848
67945
  friend class ::WinIfExists;
56849
67946
  friend class ::WinImportHandler;
56850
67947
  friend class ::WinMacros;
56851
 
  friend class ::CMatchSyntax;
56852
 
  friend class ::ExtGnu;
 
67948
  friend class ::WinAsm;
 
67949
  friend class ::WinDeclSpecs;
 
67950
  friend class ::WinMemberExplSpec;
 
67951
  friend class ::WinTypeKeywords;
 
67952
  friend class ::WinFriend;
56853
67953
  friend class ::ExtAC;
56854
67954
  friend class ::ExtACBuilderCoupling;
56855
67955
  friend class ::ExtACSyntaxCoupling;
56856
67956
  friend class ::ExtACTree;
56857
67957
  friend class ::ExtACKeywords;
56858
 
  friend class ::WinAsm;
56859
 
  friend class ::WinDeclSpecs;
56860
 
  friend class ::WinMemberExplSpec;
56861
 
  friend class ::WinTypeKeywords;
 
67958
  friend class ::ExtGnu;
56862
67959
  friend class ::PragmaOnceUnitState;
56863
67960
  friend class ::PragmaOnce;
56864
 
  friend class ::CCExprResolve;
56865
 
  friend class ::CExprResolve;
 
67961
  friend class ::CMatchSyntax;
56866
67962
 
56867
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
67963
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56868
67964
 
56869
67965
  CTree *sons[3]; // key, label, semi_colon
56870
67966
 
56871
67967
public:
56872
67968
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
56873
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
67969
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
56874
67970
  }
 
67971
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56875
67972
  static const char *NodeId ();
 
67973
  /** Get the name of the node. Can be compared with NodeId(). */
56876
67974
  const char *NodeName () const { return NodeId (); }
 
67975
  /** Get the number of sons. */
56877
67976
  int Sons () const { return 3; }
 
67977
  /** Get the n-th son.
 
67978
   *  \param n The index of the son.
 
67979
   *  \return The n-th son or NULL. */
56878
67980
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
56879
67981
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
67982
  /** Replace a son.
 
67983
   *  \param old_son The son to replace.
 
67984
   *  \param new_son The new son. */
56880
67985
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56881
67986
    CTree::ReplaceSon (sons, 3, old_son, new_son);
56882
67987
  }
56883
67988
};
56884
67989
 
56885
67990
 
56886
 
#line 56887 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
67991
#line 67992 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56887
67992
} // closed Puma
 
67993
class CCExprResolve;
 
67994
class CExprResolve;
56888
67995
class WinIfExists;
56889
67996
class WinImportHandler;
56890
67997
class WinMacros;
56891
 
class CMatchSyntax;
56892
 
class ExtGnu;
 
67998
class WinAsm;
 
67999
class WinDeclSpecs;
 
68000
class WinMemberExplSpec;
 
68001
class WinTypeKeywords;
 
68002
class WinFriend;
56893
68003
class ExtAC;
56894
68004
class ExtACBuilderCoupling;
56895
68005
class ExtACSyntaxCoupling;
56896
68006
class ExtACTree;
56897
68007
class ExtACKeywords;
56898
 
class WinAsm;
56899
 
class WinDeclSpecs;
56900
 
class WinMemberExplSpec;
56901
 
class WinTypeKeywords;
 
68008
class ExtGnu;
56902
68009
class PragmaOnceUnitState;
56903
68010
class PragmaOnce;
56904
 
class CCExprResolve;
56905
 
class CExprResolve;
 
68011
class CMatchSyntax;
56906
68012
namespace Puma {
56907
68013
 
56908
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68014
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56909
68015
class CT_ReturnStmt : public CT_Statement {
56910
 
#line 56911 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68016
#line 68017 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68017
  friend class ::CCExprResolve;
 
68018
  friend class ::CExprResolve;
56911
68019
  friend class ::WinIfExists;
56912
68020
  friend class ::WinImportHandler;
56913
68021
  friend class ::WinMacros;
56914
 
  friend class ::CMatchSyntax;
56915
 
  friend class ::ExtGnu;
 
68022
  friend class ::WinAsm;
 
68023
  friend class ::WinDeclSpecs;
 
68024
  friend class ::WinMemberExplSpec;
 
68025
  friend class ::WinTypeKeywords;
 
68026
  friend class ::WinFriend;
56916
68027
  friend class ::ExtAC;
56917
68028
  friend class ::ExtACBuilderCoupling;
56918
68029
  friend class ::ExtACSyntaxCoupling;
56919
68030
  friend class ::ExtACTree;
56920
68031
  friend class ::ExtACKeywords;
56921
 
  friend class ::WinAsm;
56922
 
  friend class ::WinDeclSpecs;
56923
 
  friend class ::WinMemberExplSpec;
56924
 
  friend class ::WinTypeKeywords;
 
68032
  friend class ::ExtGnu;
56925
68033
  friend class ::PragmaOnceUnitState;
56926
68034
  friend class ::PragmaOnce;
56927
 
  friend class ::CCExprResolve;
56928
 
  friend class ::CExprResolve;
 
68035
  friend class ::CMatchSyntax;
56929
68036
 
56930
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68037
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56931
68038
 
56932
68039
  CTree *sons[3]; // key, expr, semi_colon
56933
68040
 
56934
68041
public:
56935
68042
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
56936
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
68043
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
56937
68044
  }
 
68045
  /** Get the identifier for this node type. Can be compared with NodeName(). */
56938
68046
  static const char *NodeId ();
 
68047
  /** Get the name of the node. Can be compared with NodeId(). */
56939
68048
  const char *NodeName () const { return NodeId (); }
 
68049
  /** Get the number of sons. */
56940
68050
  int Sons () const { return CTree::Sons (sons, 3); }
 
68051
  /** Get the n-th son.
 
68052
   *  \param n The index of the son.
 
68053
   *  \return The n-th son or NULL. */
56941
68054
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
56942
68055
  CTree *Expr () const { return sons[1]; }
 
68056
  /** Replace a son.
 
68057
   *  \param old_son The son to replace.
 
68058
   *  \param new_son The new son. */
56943
68059
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
56944
68060
    CTree::ReplaceSon (sons, 3, old_son, new_son);
56945
68061
  }
56946
68062
};
56947
68063
 
56948
68064
 
56949
 
#line 56950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68065
#line 68066 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
56950
68066
} // closed Puma
 
68067
class CCExprResolve;
 
68068
class CExprResolve;
56951
68069
class WinIfExists;
56952
68070
class WinImportHandler;
56953
68071
class WinMacros;
56954
 
class CMatchSyntax;
56955
 
class ExtGnu;
 
68072
class WinAsm;
 
68073
class WinDeclSpecs;
 
68074
class WinMemberExplSpec;
 
68075
class WinTypeKeywords;
 
68076
class WinFriend;
56956
68077
class ExtAC;
56957
68078
class ExtACBuilderCoupling;
56958
68079
class ExtACSyntaxCoupling;
56959
68080
class ExtACTree;
56960
68081
class ExtACKeywords;
56961
 
class WinAsm;
56962
 
class WinDeclSpecs;
56963
 
class WinMemberExplSpec;
56964
 
class WinTypeKeywords;
 
68082
class ExtGnu;
56965
68083
class PragmaOnceUnitState;
56966
68084
class PragmaOnce;
56967
 
class CCExprResolve;
56968
 
class CExprResolve;
 
68085
class CMatchSyntax;
56969
68086
namespace Puma {
56970
68087
 
56971
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68088
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56972
68089
class CT_WhileStmt : public CT_Statement, public CSemScope {
56973
 
#line 56974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68090
#line 68091 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68091
  friend class ::CCExprResolve;
 
68092
  friend class ::CExprResolve;
56974
68093
  friend class ::WinIfExists;
56975
68094
  friend class ::WinImportHandler;
56976
68095
  friend class ::WinMacros;
56977
 
  friend class ::CMatchSyntax;
56978
 
  friend class ::ExtGnu;
 
68096
  friend class ::WinAsm;
 
68097
  friend class ::WinDeclSpecs;
 
68098
  friend class ::WinMemberExplSpec;
 
68099
  friend class ::WinTypeKeywords;
 
68100
  friend class ::WinFriend;
56979
68101
  friend class ::ExtAC;
56980
68102
  friend class ::ExtACBuilderCoupling;
56981
68103
  friend class ::ExtACSyntaxCoupling;
56982
68104
  friend class ::ExtACTree;
56983
68105
  friend class ::ExtACKeywords;
56984
 
  friend class ::WinAsm;
56985
 
  friend class ::WinDeclSpecs;
56986
 
  friend class ::WinMemberExplSpec;
56987
 
  friend class ::WinTypeKeywords;
 
68106
  friend class ::ExtGnu;
56988
68107
  friend class ::PragmaOnceUnitState;
56989
68108
  friend class ::PragmaOnce;
56990
 
  friend class ::CCExprResolve;
56991
 
  friend class ::CExprResolve;
 
68109
  friend class ::CMatchSyntax;
56992
68110
 
56993
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68111
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
56994
68112
 
56995
68113
  CTree *sons[5]; // key, open, cond, close, stmt
56996
68114
 
56997
68115
public:
56998
68116
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
56999
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
68117
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
68118
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
57000
68119
  }
 
68120
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57001
68121
  static const char *NodeId ();
 
68122
  /** Get the name of the node. Can be compared with NodeId(). */
57002
68123
  const char *NodeName () const { return NodeId (); }
 
68124
  /** Get the number of sons. */
57003
68125
  int Sons () const { return 5; }
 
68126
  /** Get the n-th son.
 
68127
   *  \param n The index of the son.
 
68128
   *  \return The n-th son or NULL. */
57004
68129
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
57005
68130
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
57006
68131
  CTree *Condition () const { return sons[2]; }
 
68132
  /** Replace a son.
 
68133
   *  \param old_son The son to replace.
 
68134
   *  \param new_son The new son. */
57007
68135
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57008
68136
    CTree::ReplaceSon (sons, 5, old_son, new_son);
57009
68137
  }
 
68138
  CSemScope *SemScope () const { return (CSemScope*)this; }
57010
68139
};
57011
68140
 
57012
68141
 
57013
 
#line 57014 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68142
#line 68143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57014
68143
} // closed Puma
 
68144
class CCExprResolve;
 
68145
class CExprResolve;
57015
68146
class WinIfExists;
57016
68147
class WinImportHandler;
57017
68148
class WinMacros;
57018
 
class CMatchSyntax;
57019
 
class ExtGnu;
 
68149
class WinAsm;
 
68150
class WinDeclSpecs;
 
68151
class WinMemberExplSpec;
 
68152
class WinTypeKeywords;
 
68153
class WinFriend;
57020
68154
class ExtAC;
57021
68155
class ExtACBuilderCoupling;
57022
68156
class ExtACSyntaxCoupling;
57023
68157
class ExtACTree;
57024
68158
class ExtACKeywords;
57025
 
class WinAsm;
57026
 
class WinDeclSpecs;
57027
 
class WinMemberExplSpec;
57028
 
class WinTypeKeywords;
 
68159
class ExtGnu;
57029
68160
class PragmaOnceUnitState;
57030
68161
class PragmaOnce;
57031
 
class CCExprResolve;
57032
 
class CExprResolve;
 
68162
class CMatchSyntax;
57033
68163
namespace Puma {
57034
68164
 
57035
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68165
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57036
68166
class CT_DoStmt : public CT_Statement {
57037
 
#line 57038 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68167
#line 68168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68168
  friend class ::CCExprResolve;
 
68169
  friend class ::CExprResolve;
57038
68170
  friend class ::WinIfExists;
57039
68171
  friend class ::WinImportHandler;
57040
68172
  friend class ::WinMacros;
57041
 
  friend class ::CMatchSyntax;
57042
 
  friend class ::ExtGnu;
 
68173
  friend class ::WinAsm;
 
68174
  friend class ::WinDeclSpecs;
 
68175
  friend class ::WinMemberExplSpec;
 
68176
  friend class ::WinTypeKeywords;
 
68177
  friend class ::WinFriend;
57043
68178
  friend class ::ExtAC;
57044
68179
  friend class ::ExtACBuilderCoupling;
57045
68180
  friend class ::ExtACSyntaxCoupling;
57046
68181
  friend class ::ExtACTree;
57047
68182
  friend class ::ExtACKeywords;
57048
 
  friend class ::WinAsm;
57049
 
  friend class ::WinDeclSpecs;
57050
 
  friend class ::WinMemberExplSpec;
57051
 
  friend class ::WinTypeKeywords;
 
68183
  friend class ::ExtGnu;
57052
68184
  friend class ::PragmaOnceUnitState;
57053
68185
  friend class ::PragmaOnce;
57054
 
  friend class ::CCExprResolve;
57055
 
  friend class ::CExprResolve;
 
68186
  friend class ::CMatchSyntax;
57056
68187
 
57057
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68188
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57058
68189
 
57059
68190
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
57060
68191
 
57061
68192
public:
57062
68193
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
57063
68194
             CTree *c, CTree *sc) {
57064
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
57065
 
    sons[5] = c; sons[6] = sc; 
 
68195
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
68196
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
68197
    AddSon (sons[6], sc); 
57066
68198
  }
 
68199
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57067
68200
  static const char *NodeId ();
 
68201
  /** Get the name of the node. Can be compared with NodeId(). */
57068
68202
  const char *NodeName () const { return NodeId (); }
 
68203
  /** Get the number of sons. */
57069
68204
  int Sons () const { return 7; }
 
68205
  /** Get the n-th son.
 
68206
   *  \param n The index of the son.
 
68207
   *  \return The n-th son or NULL. */
57070
68208
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
57071
68209
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
57072
68210
  CTree *Expr () const { return sons[4]; }
 
68211
  /** Replace a son.
 
68212
   *  \param old_son The son to replace.
 
68213
   *  \param new_son The new son. */
57073
68214
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57074
68215
    CTree::ReplaceSon (sons, 7, old_son, new_son);
57075
68216
  }
57076
68217
};
57077
68218
 
57078
68219
 
57079
 
#line 57080 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68220
#line 68221 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57080
68221
} // closed Puma
 
68222
class CCExprResolve;
 
68223
class CExprResolve;
57081
68224
class WinIfExists;
57082
68225
class WinImportHandler;
57083
68226
class WinMacros;
57084
 
class CMatchSyntax;
57085
 
class ExtGnu;
 
68227
class WinAsm;
 
68228
class WinDeclSpecs;
 
68229
class WinMemberExplSpec;
 
68230
class WinTypeKeywords;
 
68231
class WinFriend;
57086
68232
class ExtAC;
57087
68233
class ExtACBuilderCoupling;
57088
68234
class ExtACSyntaxCoupling;
57089
68235
class ExtACTree;
57090
68236
class ExtACKeywords;
57091
 
class WinAsm;
57092
 
class WinDeclSpecs;
57093
 
class WinMemberExplSpec;
57094
 
class WinTypeKeywords;
 
68237
class ExtGnu;
57095
68238
class PragmaOnceUnitState;
57096
68239
class PragmaOnce;
57097
 
class CCExprResolve;
57098
 
class CExprResolve;
 
68240
class CMatchSyntax;
57099
68241
namespace Puma {
57100
68242
 
57101
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68243
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57102
68244
class CT_ForStmt : public CT_Statement, public CSemScope {
57103
 
#line 57104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68245
#line 68246 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68246
  friend class ::CCExprResolve;
 
68247
  friend class ::CExprResolve;
57104
68248
  friend class ::WinIfExists;
57105
68249
  friend class ::WinImportHandler;
57106
68250
  friend class ::WinMacros;
57107
 
  friend class ::CMatchSyntax;
57108
 
  friend class ::ExtGnu;
 
68251
  friend class ::WinAsm;
 
68252
  friend class ::WinDeclSpecs;
 
68253
  friend class ::WinMemberExplSpec;
 
68254
  friend class ::WinTypeKeywords;
 
68255
  friend class ::WinFriend;
57109
68256
  friend class ::ExtAC;
57110
68257
  friend class ::ExtACBuilderCoupling;
57111
68258
  friend class ::ExtACSyntaxCoupling;
57112
68259
  friend class ::ExtACTree;
57113
68260
  friend class ::ExtACKeywords;
57114
 
  friend class ::WinAsm;
57115
 
  friend class ::WinDeclSpecs;
57116
 
  friend class ::WinMemberExplSpec;
57117
 
  friend class ::WinTypeKeywords;
 
68261
  friend class ::ExtGnu;
57118
68262
  friend class ::PragmaOnceUnitState;
57119
68263
  friend class ::PragmaOnce;
57120
 
  friend class ::CCExprResolve;
57121
 
  friend class ::CExprResolve;
 
68264
  friend class ::CMatchSyntax;
57122
68265
 
57123
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68266
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57124
68267
 
57125
68268
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
57126
68269
 
57127
68270
public:
57128
68271
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
57129
68272
              CTree *e, CTree *c, CTree *stmt) {
57130
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
57131
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
68273
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
68274
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
68275
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
57132
68276
  }
 
68277
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57133
68278
  static const char *NodeId ();
 
68279
  /** Get the name of the node. Can be compared with NodeId(). */
57134
68280
  const char *NodeName () const { return NodeId (); }
 
68281
  /** Get the number of sons. */
57135
68282
  int Sons () const { return CTree::Sons (sons, 8); }
 
68283
  /** Get the n-th son.
 
68284
   *  \param n The index of the son.
 
68285
   *  \return The n-th son or NULL. */
57136
68286
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
57137
68287
  CTree *InitStmt () const { return sons[2]; }
57138
68288
  CTree *Condition () const { return sons[3]; }
57139
68289
  CTree *Expr () const { return sons[5]; }
57140
68290
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
68291
  /** Replace a son.
 
68292
   *  \param old_son The son to replace.
 
68293
   *  \param new_son The new son. */
57141
68294
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57142
68295
    CTree::ReplaceSon (sons, 8, old_son, new_son);
57143
68296
  }
 
68297
  CSemScope *SemScope () const { return (CSemScope*)this; }
57144
68298
};
57145
68299
 
57146
68300
 
57147
 
#line 57148 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68301
#line 68302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57148
68302
} // closed Puma
 
68303
class CCExprResolve;
 
68304
class CExprResolve;
57149
68305
class WinIfExists;
57150
68306
class WinImportHandler;
57151
68307
class WinMacros;
57152
 
class CMatchSyntax;
57153
 
class ExtGnu;
 
68308
class WinAsm;
 
68309
class WinDeclSpecs;
 
68310
class WinMemberExplSpec;
 
68311
class WinTypeKeywords;
 
68312
class WinFriend;
57154
68313
class ExtAC;
57155
68314
class ExtACBuilderCoupling;
57156
68315
class ExtACSyntaxCoupling;
57157
68316
class ExtACTree;
57158
68317
class ExtACKeywords;
57159
 
class WinAsm;
57160
 
class WinDeclSpecs;
57161
 
class WinMemberExplSpec;
57162
 
class WinTypeKeywords;
 
68318
class ExtGnu;
57163
68319
class PragmaOnceUnitState;
57164
68320
class PragmaOnce;
57165
 
class CCExprResolve;
57166
 
class CExprResolve;
 
68321
class CMatchSyntax;
57167
68322
namespace Puma {
57168
68323
 
57169
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68324
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57170
68325
class CT_Condition : public CT_Decl, public CSemObject {
57171
 
#line 57172 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68326
#line 68327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68327
  friend class ::CCExprResolve;
 
68328
  friend class ::CExprResolve;
57172
68329
  friend class ::WinIfExists;
57173
68330
  friend class ::WinImportHandler;
57174
68331
  friend class ::WinMacros;
57175
 
  friend class ::CMatchSyntax;
57176
 
  friend class ::ExtGnu;
 
68332
  friend class ::WinAsm;
 
68333
  friend class ::WinDeclSpecs;
 
68334
  friend class ::WinMemberExplSpec;
 
68335
  friend class ::WinTypeKeywords;
 
68336
  friend class ::WinFriend;
57177
68337
  friend class ::ExtAC;
57178
68338
  friend class ::ExtACBuilderCoupling;
57179
68339
  friend class ::ExtACSyntaxCoupling;
57180
68340
  friend class ::ExtACTree;
57181
68341
  friend class ::ExtACKeywords;
57182
 
  friend class ::WinAsm;
57183
 
  friend class ::WinDeclSpecs;
57184
 
  friend class ::WinMemberExplSpec;
57185
 
  friend class ::WinTypeKeywords;
 
68342
  friend class ::ExtGnu;
57186
68343
  friend class ::PragmaOnceUnitState;
57187
68344
  friend class ::PragmaOnce;
57188
 
  friend class ::CCExprResolve;
57189
 
  friend class ::CExprResolve;
 
68345
  friend class ::CMatchSyntax;
57190
68346
 
57191
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68347
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57192
68348
 
57193
68349
  CTree *sons[3]; // declspecs, declarator, init
57194
68350
 
57195
68351
public:
57196
68352
  CT_Condition (CTree *dsl, CTree *d) {
57197
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
68353
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
57198
68354
  }
 
68355
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57199
68356
  static const char *NodeId ();
 
68357
  /** Get the name of the node. Can be compared with NodeId(). */
57200
68358
  const char *NodeName () const { return NodeId (); }
 
68359
  /** Get the number of sons. */
57201
68360
  int Sons () const { return CTree::Sons (sons, 3); }
 
68361
  /** Get the n-th son.
 
68362
   *  \param n The index of the son.
 
68363
   *  \return The n-th son or NULL. */
57202
68364
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
57203
68365
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
57204
68366
  CTree *Declarator () const { return sons[1]; }
57205
68367
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
57206
68368
  CSemObject *SemObject () const { return (CSemObject*)this; }
57207
 
  void Initializer (CTree *i) { sons[2] = i; }
 
68369
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
68370
  /** Replace a son.
 
68371
   *  \param old_son The son to replace.
 
68372
   *  \param new_son The new son. */
57208
68373
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57209
68374
    CTree::ReplaceSon (sons, 3, old_son, new_son);
57210
68375
  }
57217
68382
/*****************************************************************************/
57218
68383
 
57219
68384
 
57220
 
#line 57221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68385
#line 68386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57221
68386
} // closed Puma
 
68387
class CCExprResolve;
 
68388
class CExprResolve;
57222
68389
class WinIfExists;
57223
68390
class WinImportHandler;
57224
68391
class WinMacros;
57225
 
class CMatchSyntax;
57226
 
class ExtGnu;
 
68392
class WinAsm;
 
68393
class WinDeclSpecs;
 
68394
class WinMemberExplSpec;
 
68395
class WinTypeKeywords;
 
68396
class WinFriend;
57227
68397
class ExtAC;
57228
68398
class ExtACBuilderCoupling;
57229
68399
class ExtACSyntaxCoupling;
57230
68400
class ExtACTree;
57231
68401
class ExtACKeywords;
57232
 
class WinAsm;
57233
 
class WinDeclSpecs;
57234
 
class WinMemberExplSpec;
57235
 
class WinTypeKeywords;
 
68402
class ExtGnu;
57236
68403
class PragmaOnceUnitState;
57237
68404
class PragmaOnce;
57238
 
class CCExprResolve;
57239
 
class CExprResolve;
57240
 
namespace Puma {
57241
 
 
57242
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68405
class CMatchSyntax;
 
68406
namespace Puma {
 
68407
 
 
68408
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68409
 
 
68410
#line 68411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68411
} // closed Puma
 
68412
 
 
68413
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
68414
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
68415
#include "ExtACTree.ah"
 
68416
#endif
 
68417
namespace Puma {
 
68418
 
 
68419
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57243
68420
class CT_ClassDef : public CT_Decl, public CSemObject {
57244
 
#line 57245 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68421
#line 68422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68422
  friend class ::CCExprResolve;
 
68423
  friend class ::CExprResolve;
57245
68424
  friend class ::WinIfExists;
57246
68425
  friend class ::WinImportHandler;
57247
68426
  friend class ::WinMacros;
57248
 
  friend class ::CMatchSyntax;
57249
 
  friend class ::ExtGnu;
 
68427
  friend class ::WinAsm;
 
68428
  friend class ::WinDeclSpecs;
 
68429
  friend class ::WinMemberExplSpec;
 
68430
  friend class ::WinTypeKeywords;
 
68431
  friend class ::WinFriend;
57250
68432
  friend class ::ExtAC;
57251
68433
  friend class ::ExtACBuilderCoupling;
57252
68434
  friend class ::ExtACSyntaxCoupling;
57253
68435
  friend class ::ExtACTree;
57254
68436
  friend class ::ExtACKeywords;
57255
 
  friend class ::WinAsm;
57256
 
  friend class ::WinDeclSpecs;
57257
 
  friend class ::WinMemberExplSpec;
57258
 
  friend class ::WinTypeKeywords;
 
68437
  friend class ::ExtGnu;
57259
68438
  friend class ::PragmaOnceUnitState;
57260
68439
  friend class ::PragmaOnce;
57261
 
  friend class ::CCExprResolve;
57262
 
  friend class ::CExprResolve;
 
68440
  friend class ::CMatchSyntax;
57263
68441
 
57264
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68442
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57265
68443
 
57266
68444
   
57267
 
#line 57268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68445
#line 68446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57268
68446
 
57269
68447
  struct __ac_wrapper_sons {
57270
68448
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
57279
68457
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
57280
68458
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
57281
68459
  } sons
57282
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68460
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57283
68461
 
57284
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68462
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57285
68463
; // key, name, bases, members
57286
68464
  CTree *obj_decl;
57287
68465
 
57288
68466
public:
57289
68467
  
57290
 
#line 57291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
57291
 
 
57292
 
 
57293
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
57294
 
  typedef void Result;
57295
 
  typedef ::Puma::CT_ClassDef That;
57296
 
  typedef ::Puma::CT_ClassDef Target;
57297
 
  static const int JPID = 4;
 
68468
#line 68469 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68469
 
 
68470
 
 
68471
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
68472
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
68473
  typedef TResult Result;
 
68474
  typedef TThat   That;
 
68475
  typedef TTarget Target;
 
68476
  enum { ARGS = TArgs::ARGS };
 
68477
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
68478
  static const int JPID = 55;
57298
68479
  static const AC::JPType JPTYPE = (AC::JPType)16;
57299
68480
  struct Res {
57300
68481
    typedef void Type;
57301
68482
    typedef void ReferredType;
57302
68483
  };
57303
 
  enum { ARGS = 3 };
57304
 
  template <int I, int DUMMY = 0> struct Arg {
57305
 
    typedef void Type;
57306
 
    typedef void ReferredType;
57307
 
  };
57308
 
  template <int DUMMY> struct Arg<0, DUMMY> {
57309
 
    typedef ::Puma::CTree * Type;
57310
 
    typedef ::Puma::CTree * ReferredType;
57311
 
  };
57312
 
  template <int DUMMY> struct Arg<1, DUMMY> {
57313
 
    typedef ::Puma::CTree * Type;
57314
 
    typedef ::Puma::CTree * ReferredType;
57315
 
  };
57316
 
  template <int DUMMY> struct Arg<2, DUMMY> {
57317
 
    typedef ::Puma::CTree * Type;
57318
 
    typedef ::Puma::CTree * ReferredType;
57319
 
  };
57320
68484
 
57321
68485
  That *_that;
57322
68486
 
57325
68489
};
57326
68490
 
57327
68491
 
57328
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68492
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57329
68493
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
57330
 
#line 57331 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68494
#line 68495 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57331
68495
{
57332
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
57333
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
57334
 
this->__exec_old_C1(arg0, arg1, arg2);
57335
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
57336
 
 
 
68496
  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;
 
68497
    __TJP tjp;
 
68498
  tjp._that =  (__TJP::That*)this;
 
68499
    this->__exec_old_C1(arg0, arg1, arg2);
 
68500
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
68501
  
57337
68502
}
57338
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
57339
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68503
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
68504
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57340
68505
{
57341
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
68506
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
68507
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
57342
68508
  }
 
68509
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57343
68510
  static const char *NodeId ();
 
68511
  /** Get the name of the node. Can be compared with NodeId(). */
57344
68512
  const char *NodeName () const { return NodeId (); }
 
68513
  /** Get the number of sons. */
57345
68514
  int Sons () const { return CTree::Sons (sons, 4); }
 
68515
  /** Get the n-th son.
 
68516
   *  \param n The index of the son.
 
68517
   *  \return The n-th son or NULL. */
57346
68518
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
57347
68519
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
57348
68520
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
57349
68521
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
57350
68522
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
57351
68523
  CSemObject *SemObject () const { return (CSemObject*)this; }
57352
 
  void Members (CTree *m) { sons[3] = m; }
57353
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
57354
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
68524
  void Members (CTree *m) { AddSon (sons[3], m); }
 
68525
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
68526
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
68527
  /** Replace a son.
 
68528
   *  \param old_son The son to replace.
 
68529
   *  \param new_son The new son. */
57355
68530
  void ReplaceSon (CTree *old_son, CTree *new_son) {
57356
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
57357
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
68531
    CTree::ReplaceSon (sons, 4, old_son, new_son);
57358
68532
  }
57359
68533
   private:
57360
68534
 
57361
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
57362
 
 CTree * _intro_members ;
 
68535
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
68536
 Puma :: CTree * _intro_members ;
 
68537
Puma :: CTree * _base_intros ;
57363
68538
public :
57364
 
CTree * IntroMembers ( ) const { return _intro_members ; }
57365
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
57366
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57367
 
 
57368
 
#line 57369 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
57369
 
 
57370
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
57371
 
  typedef void Result;
57372
 
  typedef ::Puma::CT_ClassDef That;
57373
 
  typedef ::Puma::CT_ClassDef Target;
57374
 
  static const int JPID = 4;
 
68539
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
68540
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
68541
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
68542
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
68543
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68544
 
 
68545
#line 68546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68546
 
 
68547
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
68548
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
68549
  typedef TResult Result;
 
68550
  typedef TThat   That;
 
68551
  typedef TTarget Target;
 
68552
  enum { ARGS = TArgs::ARGS };
 
68553
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
68554
  static const int JPID = 6550;
57375
68555
  static const AC::JPType JPTYPE = (AC::JPType)16;
57376
68556
  struct Res {
57377
68557
    typedef void Type;
57378
68558
    typedef void ReferredType;
57379
68559
  };
57380
 
  enum { ARGS = 1 };
57381
 
  template <int I, int DUMMY = 0> struct Arg {
57382
 
    typedef void Type;
57383
 
    typedef void ReferredType;
57384
 
  };
57385
 
  template <int DUMMY> struct Arg<0, DUMMY> {
57386
 
    typedef const ::Puma::CT_ClassDef & Type;
57387
 
    typedef const ::Puma::CT_ClassDef ReferredType;
57388
 
  };
57389
68560
 
57390
68561
  That *_that;
57391
68562
 
57394
68565
};
57395
68566
 
57396
68567
 
57397
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68568
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57398
68569
 
57399
 
#line 57400 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68570
#line 68571 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57400
68571
 
57401
68572
public:
57402
 
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) {
57403
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
57404
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
57405
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
68573
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) {
 
68574
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
68575
  __TJP tjp;
 
68576
  tjp._that =  (__TJP::That*)this;
 
68577
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
57406
68578
 
57407
68579
}
57408
68580
 
57409
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
57410
 
 
57411
 
#line 57412 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
57412
 
 
57413
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
57414
 
  typedef void Result;
57415
 
  typedef ::Puma::CT_ClassDef That;
57416
 
  typedef ::Puma::CT_ClassDef Target;
57417
 
  static const int JPID = 4;
 
68581
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68582
 
 
68583
#line 68584 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68584
 
 
68585
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
68586
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
68587
  typedef TResult Result;
 
68588
  typedef TThat   That;
 
68589
  typedef TTarget Target;
 
68590
  enum { ARGS = TArgs::ARGS };
 
68591
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
68592
  static const int JPID = 6548;
57418
68593
  static const AC::JPType JPTYPE = (AC::JPType)32;
57419
68594
  struct Res {
57420
68595
    typedef void Type;
57421
68596
    typedef void ReferredType;
57422
68597
  };
57423
 
  enum { ARGS = 0 };
57424
 
  template <int I, int DUMMY = 0> struct Arg {
57425
 
    typedef void Type;
57426
 
    typedef void ReferredType;
57427
 
  };
57428
68598
 
57429
68599
  That *_that;
57430
68600
 
57433
68603
};
57434
68604
 
57435
68605
 
57436
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68606
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57437
68607
 
57438
 
#line 57439 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68608
#line 68609 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57439
68609
 
57440
68610
public:
57441
68611
inline ~CT_ClassDef () {
57442
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
57443
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
57444
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
68612
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
68613
  __TJP tjp;
 
68614
  tjp._that =  (__TJP::That*)this;
 
68615
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
57445
68616
 
57446
68617
}
57447
68618
 
57448
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68619
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57449
68620
};
57450
68621
      
57451
68622
 
57452
 
#line 57453 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68623
#line 68624 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57453
68624
} // closed Puma
 
68625
class CCExprResolve;
 
68626
class CExprResolve;
57454
68627
class WinIfExists;
57455
68628
class WinImportHandler;
57456
68629
class WinMacros;
57457
 
class CMatchSyntax;
57458
 
class ExtGnu;
 
68630
class WinAsm;
 
68631
class WinDeclSpecs;
 
68632
class WinMemberExplSpec;
 
68633
class WinTypeKeywords;
 
68634
class WinFriend;
57459
68635
class ExtAC;
57460
68636
class ExtACBuilderCoupling;
57461
68637
class ExtACSyntaxCoupling;
57462
68638
class ExtACTree;
57463
68639
class ExtACKeywords;
57464
 
class WinAsm;
57465
 
class WinDeclSpecs;
57466
 
class WinMemberExplSpec;
57467
 
class WinTypeKeywords;
 
68640
class ExtGnu;
57468
68641
class PragmaOnceUnitState;
57469
68642
class PragmaOnce;
57470
 
class CCExprResolve;
57471
 
class CExprResolve;
 
68643
class CMatchSyntax;
57472
68644
namespace Puma {
57473
68645
 
57474
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68646
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57475
68647
class CT_UnionDef : public CT_ClassDef {
57476
 
#line 57477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68648
#line 68649 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68649
  friend class ::CCExprResolve;
 
68650
  friend class ::CExprResolve;
57477
68651
  friend class ::WinIfExists;
57478
68652
  friend class ::WinImportHandler;
57479
68653
  friend class ::WinMacros;
57480
 
  friend class ::CMatchSyntax;
57481
 
  friend class ::ExtGnu;
 
68654
  friend class ::WinAsm;
 
68655
  friend class ::WinDeclSpecs;
 
68656
  friend class ::WinMemberExplSpec;
 
68657
  friend class ::WinTypeKeywords;
 
68658
  friend class ::WinFriend;
57482
68659
  friend class ::ExtAC;
57483
68660
  friend class ::ExtACBuilderCoupling;
57484
68661
  friend class ::ExtACSyntaxCoupling;
57485
68662
  friend class ::ExtACTree;
57486
68663
  friend class ::ExtACKeywords;
57487
 
  friend class ::WinAsm;
57488
 
  friend class ::WinDeclSpecs;
57489
 
  friend class ::WinMemberExplSpec;
57490
 
  friend class ::WinTypeKeywords;
 
68664
  friend class ::ExtGnu;
57491
68665
  friend class ::PragmaOnceUnitState;
57492
68666
  friend class ::PragmaOnce;
57493
 
  friend class ::CCExprResolve;
57494
 
  friend class ::CExprResolve;
 
68667
  friend class ::CMatchSyntax;
57495
68668
 
57496
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68669
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57497
68670
 
57498
68671
public:
57499
68672
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
57500
68673
  static const char *NodeId ();
 
68674
  /** Get the name of the node. Can be compared with NodeId(). */
57501
68675
  const char *NodeName () const { return NodeId (); }
57502
68676
};
57503
68677
      
57504
68678
 
57505
 
#line 57506 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68679
#line 68680 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57506
68680
} // closed Puma
 
68681
class CCExprResolve;
 
68682
class CExprResolve;
57507
68683
class WinIfExists;
57508
68684
class WinImportHandler;
57509
68685
class WinMacros;
57510
 
class CMatchSyntax;
57511
 
class ExtGnu;
 
68686
class WinAsm;
 
68687
class WinDeclSpecs;
 
68688
class WinMemberExplSpec;
 
68689
class WinTypeKeywords;
 
68690
class WinFriend;
57512
68691
class ExtAC;
57513
68692
class ExtACBuilderCoupling;
57514
68693
class ExtACSyntaxCoupling;
57515
68694
class ExtACTree;
57516
68695
class ExtACKeywords;
57517
 
class WinAsm;
57518
 
class WinDeclSpecs;
57519
 
class WinMemberExplSpec;
57520
 
class WinTypeKeywords;
 
68696
class ExtGnu;
57521
68697
class PragmaOnceUnitState;
57522
68698
class PragmaOnce;
57523
 
class CCExprResolve;
57524
 
class CExprResolve;
 
68699
class CMatchSyntax;
57525
68700
namespace Puma {
57526
68701
 
57527
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68702
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57528
68703
class CT_MembList : public CT_DeclList, public CSemScope {
57529
 
#line 57530 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68704
#line 68705 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68705
  friend class ::CCExprResolve;
 
68706
  friend class ::CExprResolve;
57530
68707
  friend class ::WinIfExists;
57531
68708
  friend class ::WinImportHandler;
57532
68709
  friend class ::WinMacros;
57533
 
  friend class ::CMatchSyntax;
57534
 
  friend class ::ExtGnu;
 
68710
  friend class ::WinAsm;
 
68711
  friend class ::WinDeclSpecs;
 
68712
  friend class ::WinMemberExplSpec;
 
68713
  friend class ::WinTypeKeywords;
 
68714
  friend class ::WinFriend;
57535
68715
  friend class ::ExtAC;
57536
68716
  friend class ::ExtACBuilderCoupling;
57537
68717
  friend class ::ExtACSyntaxCoupling;
57538
68718
  friend class ::ExtACTree;
57539
68719
  friend class ::ExtACKeywords;
57540
 
  friend class ::WinAsm;
57541
 
  friend class ::WinDeclSpecs;
57542
 
  friend class ::WinMemberExplSpec;
57543
 
  friend class ::WinTypeKeywords;
 
68720
  friend class ::ExtGnu;
57544
68721
  friend class ::PragmaOnceUnitState;
57545
68722
  friend class ::PragmaOnce;
57546
 
  friend class ::CCExprResolve;
57547
 
  friend class ::CExprResolve;
 
68723
  friend class ::CMatchSyntax;
57548
68724
 
57549
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68725
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57550
68726
 
57551
68727
public:
57552
68728
  CT_MembList (int size = 10, int incr = 10) : 
57553
68729
    CT_DeclList (size, incr) {}
 
68730
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57554
68731
  static const char *NodeId ();
 
68732
  /** Get the name of the node. Can be compared with NodeId(). */
57555
68733
  const char *NodeName () const { return NodeId (); }
 
68734
  CSemScope *SemScope () const { return (CSemScope*)this; }
57556
68735
};
57557
68736
 
57558
68737
 
57559
 
#line 57560 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68738
#line 68739 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57560
68739
} // closed Puma
 
68740
class CCExprResolve;
 
68741
class CExprResolve;
57561
68742
class WinIfExists;
57562
68743
class WinImportHandler;
57563
68744
class WinMacros;
57564
 
class CMatchSyntax;
57565
 
class ExtGnu;
 
68745
class WinAsm;
 
68746
class WinDeclSpecs;
 
68747
class WinMemberExplSpec;
 
68748
class WinTypeKeywords;
 
68749
class WinFriend;
57566
68750
class ExtAC;
57567
68751
class ExtACBuilderCoupling;
57568
68752
class ExtACSyntaxCoupling;
57569
68753
class ExtACTree;
57570
68754
class ExtACKeywords;
57571
 
class WinAsm;
57572
 
class WinDeclSpecs;
57573
 
class WinMemberExplSpec;
57574
 
class WinTypeKeywords;
 
68755
class ExtGnu;
57575
68756
class PragmaOnceUnitState;
57576
68757
class PragmaOnce;
57577
 
class CCExprResolve;
57578
 
class CExprResolve;
 
68758
class CMatchSyntax;
57579
68759
namespace Puma {
57580
68760
 
57581
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68761
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57582
68762
class CT_MembInitList : public CT_List, public CSemScope {
57583
 
#line 57584 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68763
#line 68764 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68764
  friend class ::CCExprResolve;
 
68765
  friend class ::CExprResolve;
57584
68766
  friend class ::WinIfExists;
57585
68767
  friend class ::WinImportHandler;
57586
68768
  friend class ::WinMacros;
57587
 
  friend class ::CMatchSyntax;
57588
 
  friend class ::ExtGnu;
 
68769
  friend class ::WinAsm;
 
68770
  friend class ::WinDeclSpecs;
 
68771
  friend class ::WinMemberExplSpec;
 
68772
  friend class ::WinTypeKeywords;
 
68773
  friend class ::WinFriend;
57589
68774
  friend class ::ExtAC;
57590
68775
  friend class ::ExtACBuilderCoupling;
57591
68776
  friend class ::ExtACSyntaxCoupling;
57592
68777
  friend class ::ExtACTree;
57593
68778
  friend class ::ExtACKeywords;
57594
 
  friend class ::WinAsm;
57595
 
  friend class ::WinDeclSpecs;
57596
 
  friend class ::WinMemberExplSpec;
57597
 
  friend class ::WinTypeKeywords;
 
68779
  friend class ::ExtGnu;
57598
68780
  friend class ::PragmaOnceUnitState;
57599
68781
  friend class ::PragmaOnce;
57600
 
  friend class ::CCExprResolve;
57601
 
  friend class ::CExprResolve;
 
68782
  friend class ::CMatchSyntax;
57602
68783
 
57603
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68784
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57604
68785
 
57605
68786
public:
57606
68787
  CT_MembInitList (int size = 2) : 
57607
68788
    CT_List (size, 2, CT_List::OPEN) {}
57608
68789
  static const char *NodeId ();
 
68790
  /** Get the name of the node. Can be compared with NodeId(). */
57609
68791
  const char *NodeName () const { return NodeId (); }
 
68792
  CSemScope *SemScope () const { return (CSemScope*)this; }
57610
68793
};
57611
68794
 
57612
68795
 
57613
 
#line 57614 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68796
#line 68797 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57614
68797
} // closed Puma
 
68798
class CCExprResolve;
 
68799
class CExprResolve;
57615
68800
class WinIfExists;
57616
68801
class WinImportHandler;
57617
68802
class WinMacros;
57618
 
class CMatchSyntax;
57619
 
class ExtGnu;
 
68803
class WinAsm;
 
68804
class WinDeclSpecs;
 
68805
class WinMemberExplSpec;
 
68806
class WinTypeKeywords;
 
68807
class WinFriend;
57620
68808
class ExtAC;
57621
68809
class ExtACBuilderCoupling;
57622
68810
class ExtACSyntaxCoupling;
57623
68811
class ExtACTree;
57624
68812
class ExtACKeywords;
57625
 
class WinAsm;
57626
 
class WinDeclSpecs;
57627
 
class WinMemberExplSpec;
57628
 
class WinTypeKeywords;
 
68813
class ExtGnu;
57629
68814
class PragmaOnceUnitState;
57630
68815
class PragmaOnce;
57631
 
class CCExprResolve;
57632
 
class CExprResolve;
57633
 
namespace Puma {
57634
 
 
57635
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68816
class CMatchSyntax;
 
68817
namespace Puma {
 
68818
 
 
68819
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68820
 
 
68821
#line 68822 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68822
} // closed Puma
 
68823
 
 
68824
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68825
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
68826
#include "CCExprResolveH.ah"
 
68827
#endif
 
68828
namespace Puma {
 
68829
 
 
68830
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68831
 
 
68832
#line 68833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68833
} // closed Puma
 
68834
 
 
68835
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68836
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
68837
#include "CExprResolveH.ah"
 
68838
#endif
 
68839
namespace Puma {
 
68840
 
 
68841
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57636
68842
class CT_MembInit : public CT_Expression, public CSemObject {
57637
 
#line 57638 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68843
#line 68844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68844
  friend class ::CCExprResolve;
 
68845
  friend class ::CExprResolve;
57638
68846
  friend class ::WinIfExists;
57639
68847
  friend class ::WinImportHandler;
57640
68848
  friend class ::WinMacros;
57641
 
  friend class ::CMatchSyntax;
57642
 
  friend class ::ExtGnu;
 
68849
  friend class ::WinAsm;
 
68850
  friend class ::WinDeclSpecs;
 
68851
  friend class ::WinMemberExplSpec;
 
68852
  friend class ::WinTypeKeywords;
 
68853
  friend class ::WinFriend;
57643
68854
  friend class ::ExtAC;
57644
68855
  friend class ::ExtACBuilderCoupling;
57645
68856
  friend class ::ExtACSyntaxCoupling;
57646
68857
  friend class ::ExtACTree;
57647
68858
  friend class ::ExtACKeywords;
57648
 
  friend class ::WinAsm;
57649
 
  friend class ::WinDeclSpecs;
57650
 
  friend class ::WinMemberExplSpec;
57651
 
  friend class ::WinTypeKeywords;
 
68859
  friend class ::ExtGnu;
57652
68860
  friend class ::PragmaOnceUnitState;
57653
68861
  friend class ::PragmaOnce;
57654
 
  friend class ::CCExprResolve;
57655
 
  friend class ::CExprResolve;
 
68862
  friend class ::CMatchSyntax;
57656
68863
 
57657
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68864
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57658
68865
 
57659
68866
  CTree *sons[2]; // name, init
57660
68867
 
57661
68868
public:
57662
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
68869
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
68870
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57663
68871
  static const char *NodeId ();
 
68872
  /** Get the name of the node. Can be compared with NodeId(). */
57664
68873
  const char *NodeName () const { return NodeId (); }
 
68874
  /** Get the number of sons. */
57665
68875
  int Sons () const { return 2; }
 
68876
  /** Get the n-th son.
 
68877
   *  \param n The index of the son.
 
68878
   *  \return The n-th son or NULL. */
57666
68879
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
68880
  /** Replace a son.
 
68881
   *  \param old_son The son to replace.
 
68882
   *  \param new_son The new son. */
57667
68883
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57668
68884
    CTree::ReplaceSon (sons, 2, old_son, new_son);
57669
68885
  }
57673
68889
   private:
57674
68890
  typedef CT_MembInit CCExprResolveExpr;
57675
68891
 
57676
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
68892
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
57677
68893
 public :
57678
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
68894
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
57679
68895
  typedef CT_MembInit CExprResolveExpr;
57680
68896
 
57681
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
68897
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
57682
68898
 public :
57683
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
57684
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68899
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
68900
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57685
68901
};
57686
68902
 
57687
68903
 
57688
 
#line 57689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68904
#line 68905 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57689
68905
} // closed Puma
 
68906
class CCExprResolve;
 
68907
class CExprResolve;
57690
68908
class WinIfExists;
57691
68909
class WinImportHandler;
57692
68910
class WinMacros;
57693
 
class CMatchSyntax;
57694
 
class ExtGnu;
 
68911
class WinAsm;
 
68912
class WinDeclSpecs;
 
68913
class WinMemberExplSpec;
 
68914
class WinTypeKeywords;
 
68915
class WinFriend;
57695
68916
class ExtAC;
57696
68917
class ExtACBuilderCoupling;
57697
68918
class ExtACSyntaxCoupling;
57698
68919
class ExtACTree;
57699
68920
class ExtACKeywords;
57700
 
class WinAsm;
57701
 
class WinDeclSpecs;
57702
 
class WinMemberExplSpec;
57703
 
class WinTypeKeywords;
 
68921
class ExtGnu;
57704
68922
class PragmaOnceUnitState;
57705
68923
class PragmaOnce;
57706
 
class CCExprResolve;
57707
 
class CExprResolve;
 
68924
class CMatchSyntax;
57708
68925
namespace Puma {
57709
68926
 
57710
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68927
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57711
68928
class CT_BaseSpecList : public CT_List {
57712
 
#line 57713 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68929
#line 68930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68930
  friend class ::CCExprResolve;
 
68931
  friend class ::CExprResolve;
57713
68932
  friend class ::WinIfExists;
57714
68933
  friend class ::WinImportHandler;
57715
68934
  friend class ::WinMacros;
57716
 
  friend class ::CMatchSyntax;
57717
 
  friend class ::ExtGnu;
 
68935
  friend class ::WinAsm;
 
68936
  friend class ::WinDeclSpecs;
 
68937
  friend class ::WinMemberExplSpec;
 
68938
  friend class ::WinTypeKeywords;
 
68939
  friend class ::WinFriend;
57718
68940
  friend class ::ExtAC;
57719
68941
  friend class ::ExtACBuilderCoupling;
57720
68942
  friend class ::ExtACSyntaxCoupling;
57721
68943
  friend class ::ExtACTree;
57722
68944
  friend class ::ExtACKeywords;
57723
 
  friend class ::WinAsm;
57724
 
  friend class ::WinDeclSpecs;
57725
 
  friend class ::WinMemberExplSpec;
57726
 
  friend class ::WinTypeKeywords;
 
68945
  friend class ::ExtGnu;
57727
68946
  friend class ::PragmaOnceUnitState;
57728
68947
  friend class ::PragmaOnce;
57729
 
  friend class ::CCExprResolve;
57730
 
  friend class ::CExprResolve;
 
68948
  friend class ::CMatchSyntax;
57731
68949
 
57732
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68950
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57733
68951
 
57734
68952
public:
57735
68953
  CT_BaseSpecList (int size = 2) : 
57736
68954
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
68955
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57737
68956
  static const char *NodeId ();
 
68957
  /** Get the name of the node. Can be compared with NodeId(). */
57738
68958
  const char *NodeName () const { return NodeId (); }
57739
68959
};
57740
68960
 
57741
68961
 
57742
 
#line 57743 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68962
#line 68963 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57743
68963
} // closed Puma
 
68964
class CCExprResolve;
 
68965
class CExprResolve;
57744
68966
class WinIfExists;
57745
68967
class WinImportHandler;
57746
68968
class WinMacros;
57747
 
class CMatchSyntax;
57748
 
class ExtGnu;
 
68969
class WinAsm;
 
68970
class WinDeclSpecs;
 
68971
class WinMemberExplSpec;
 
68972
class WinTypeKeywords;
 
68973
class WinFriend;
57749
68974
class ExtAC;
57750
68975
class ExtACBuilderCoupling;
57751
68976
class ExtACSyntaxCoupling;
57752
68977
class ExtACTree;
57753
68978
class ExtACKeywords;
57754
 
class WinAsm;
57755
 
class WinDeclSpecs;
57756
 
class WinMemberExplSpec;
57757
 
class WinTypeKeywords;
 
68979
class ExtGnu;
57758
68980
class PragmaOnceUnitState;
57759
68981
class PragmaOnce;
57760
 
class CCExprResolve;
57761
 
class CExprResolve;
 
68982
class CMatchSyntax;
57762
68983
namespace Puma {
57763
68984
 
57764
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
68985
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57765
68986
class CT_AccessSpec : public CTree {
57766
 
#line 57767 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
68987
#line 68988 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
68988
  friend class ::CCExprResolve;
 
68989
  friend class ::CExprResolve;
57767
68990
  friend class ::WinIfExists;
57768
68991
  friend class ::WinImportHandler;
57769
68992
  friend class ::WinMacros;
57770
 
  friend class ::CMatchSyntax;
57771
 
  friend class ::ExtGnu;
 
68993
  friend class ::WinAsm;
 
68994
  friend class ::WinDeclSpecs;
 
68995
  friend class ::WinMemberExplSpec;
 
68996
  friend class ::WinTypeKeywords;
 
68997
  friend class ::WinFriend;
57772
68998
  friend class ::ExtAC;
57773
68999
  friend class ::ExtACBuilderCoupling;
57774
69000
  friend class ::ExtACSyntaxCoupling;
57775
69001
  friend class ::ExtACTree;
57776
69002
  friend class ::ExtACKeywords;
57777
 
  friend class ::WinAsm;
57778
 
  friend class ::WinDeclSpecs;
57779
 
  friend class ::WinMemberExplSpec;
57780
 
  friend class ::WinTypeKeywords;
 
69003
  friend class ::ExtGnu;
57781
69004
  friend class ::PragmaOnceUnitState;
57782
69005
  friend class ::PragmaOnce;
57783
 
  friend class ::CCExprResolve;
57784
 
  friend class ::CExprResolve;
 
69006
  friend class ::CMatchSyntax;
57785
69007
 
57786
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69008
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57787
69009
 
57788
69010
  CTree *sons[2]; // access, colon
57789
69011
 
57790
69012
public:
57791
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
69013
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
69014
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57792
69015
  static const char *NodeId ();
 
69016
  /** Get the name of the node. Can be compared with NodeId(). */
57793
69017
  const char *NodeName () const { return NodeId (); }
 
69018
  /** Get the number of sons. */
57794
69019
  int Sons () const { return 2; }
 
69020
  /** Get the n-th son.
 
69021
   *  \param n The index of the son.
 
69022
   *  \return The n-th son or NULL. */
57795
69023
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
57796
69024
  int Access () const { return sons[0]->token ()->type (); }
 
69025
  /** Replace a son.
 
69026
   *  \param old_son The son to replace.
 
69027
   *  \param new_son The new son. */
57797
69028
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57798
69029
    CTree::ReplaceSon (sons, 2, old_son, new_son);
57799
69030
  }
57800
69031
};
57801
69032
 
57802
69033
 
57803
 
#line 57804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69034
#line 69035 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57804
69035
} // closed Puma
 
69036
class CCExprResolve;
 
69037
class CExprResolve;
57805
69038
class WinIfExists;
57806
69039
class WinImportHandler;
57807
69040
class WinMacros;
57808
 
class CMatchSyntax;
57809
 
class ExtGnu;
 
69041
class WinAsm;
 
69042
class WinDeclSpecs;
 
69043
class WinMemberExplSpec;
 
69044
class WinTypeKeywords;
 
69045
class WinFriend;
57810
69046
class ExtAC;
57811
69047
class ExtACBuilderCoupling;
57812
69048
class ExtACSyntaxCoupling;
57813
69049
class ExtACTree;
57814
69050
class ExtACKeywords;
57815
 
class WinAsm;
57816
 
class WinDeclSpecs;
57817
 
class WinMemberExplSpec;
57818
 
class WinTypeKeywords;
 
69051
class ExtGnu;
57819
69052
class PragmaOnceUnitState;
57820
69053
class PragmaOnce;
57821
 
class CCExprResolve;
57822
 
class CExprResolve;
 
69054
class CMatchSyntax;
57823
69055
namespace Puma {
57824
69056
 
57825
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69057
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57826
69058
class CT_BaseSpec : public CTree {
57827
 
#line 57828 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69059
#line 69060 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
69060
  friend class ::CCExprResolve;
 
69061
  friend class ::CExprResolve;
57828
69062
  friend class ::WinIfExists;
57829
69063
  friend class ::WinImportHandler;
57830
69064
  friend class ::WinMacros;
57831
 
  friend class ::CMatchSyntax;
57832
 
  friend class ::ExtGnu;
 
69065
  friend class ::WinAsm;
 
69066
  friend class ::WinDeclSpecs;
 
69067
  friend class ::WinMemberExplSpec;
 
69068
  friend class ::WinTypeKeywords;
 
69069
  friend class ::WinFriend;
57833
69070
  friend class ::ExtAC;
57834
69071
  friend class ::ExtACBuilderCoupling;
57835
69072
  friend class ::ExtACSyntaxCoupling;
57836
69073
  friend class ::ExtACTree;
57837
69074
  friend class ::ExtACKeywords;
57838
 
  friend class ::WinAsm;
57839
 
  friend class ::WinDeclSpecs;
57840
 
  friend class ::WinMemberExplSpec;
57841
 
  friend class ::WinTypeKeywords;
 
69075
  friend class ::ExtGnu;
57842
69076
  friend class ::PragmaOnceUnitState;
57843
69077
  friend class ::PragmaOnce;
57844
 
  friend class ::CCExprResolve;
57845
 
  friend class ::CExprResolve;
 
69078
  friend class ::CMatchSyntax;
57846
69079
 
57847
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69080
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57848
69081
 
57849
69082
  CTree *sons[3]; // virtual, access, name
57850
69083
 
57851
69084
public:
57852
69085
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
57853
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
69086
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
57854
69087
  }
 
69088
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57855
69089
  static const char *NodeId ();
 
69090
  /** Get the name of the node. Can be compared with NodeId(). */
57856
69091
  const char *NodeName () const { return NodeId (); }
 
69092
  /** Get the number of sons. */
57857
69093
  int Sons () const { return CTree::Sons (sons, 3); }
 
69094
  /** Get the n-th son.
 
69095
   *  \param n The index of the son.
 
69096
   *  \return The n-th son or NULL. */
57858
69097
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
57859
69098
  int Access () const { return sons[1]->token ()->type (); }
57860
69099
  CTree *AccessSpec () const { return sons[1]; }
57861
69100
  CTree *Virtual () const { return sons[0]; }
57862
69101
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
69102
  /** Replace a son.
 
69103
   *  \param old_son The son to replace.
 
69104
   *  \param new_son The new son. */
57863
69105
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57864
69106
    CTree::ReplaceSon (sons, 3, old_son, new_son);
57865
69107
  }
57866
69108
};
57867
69109
 
57868
69110
 
57869
 
#line 57870 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69111
#line 69112 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57870
69112
} // closed Puma
 
69113
class CCExprResolve;
 
69114
class CExprResolve;
57871
69115
class WinIfExists;
57872
69116
class WinImportHandler;
57873
69117
class WinMacros;
57874
 
class CMatchSyntax;
57875
 
class ExtGnu;
 
69118
class WinAsm;
 
69119
class WinDeclSpecs;
 
69120
class WinMemberExplSpec;
 
69121
class WinTypeKeywords;
 
69122
class WinFriend;
57876
69123
class ExtAC;
57877
69124
class ExtACBuilderCoupling;
57878
69125
class ExtACSyntaxCoupling;
57879
69126
class ExtACTree;
57880
69127
class ExtACKeywords;
57881
 
class WinAsm;
57882
 
class WinDeclSpecs;
57883
 
class WinMemberExplSpec;
57884
 
class WinTypeKeywords;
 
69128
class ExtGnu;
57885
69129
class PragmaOnceUnitState;
57886
69130
class PragmaOnce;
57887
 
class CCExprResolve;
57888
 
class CExprResolve;
 
69131
class CMatchSyntax;
57889
69132
namespace Puma {
57890
69133
 
57891
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69134
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57892
69135
class CT_AccessDecl : public CT_Decl {
57893
 
#line 57894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69136
#line 69137 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
69137
  friend class ::CCExprResolve;
 
69138
  friend class ::CExprResolve;
57894
69139
  friend class ::WinIfExists;
57895
69140
  friend class ::WinImportHandler;
57896
69141
  friend class ::WinMacros;
57897
 
  friend class ::CMatchSyntax;
57898
 
  friend class ::ExtGnu;
 
69142
  friend class ::WinAsm;
 
69143
  friend class ::WinDeclSpecs;
 
69144
  friend class ::WinMemberExplSpec;
 
69145
  friend class ::WinTypeKeywords;
 
69146
  friend class ::WinFriend;
57899
69147
  friend class ::ExtAC;
57900
69148
  friend class ::ExtACBuilderCoupling;
57901
69149
  friend class ::ExtACSyntaxCoupling;
57902
69150
  friend class ::ExtACTree;
57903
69151
  friend class ::ExtACKeywords;
57904
 
  friend class ::WinAsm;
57905
 
  friend class ::WinDeclSpecs;
57906
 
  friend class ::WinMemberExplSpec;
57907
 
  friend class ::WinTypeKeywords;
 
69152
  friend class ::ExtGnu;
57908
69153
  friend class ::PragmaOnceUnitState;
57909
69154
  friend class ::PragmaOnce;
57910
 
  friend class ::CCExprResolve;
57911
 
  friend class ::CExprResolve;
 
69155
  friend class ::CMatchSyntax;
57912
69156
 
57913
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69157
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57914
69158
 
57915
69159
  CTree *sons[2]; // name, semi_colon
57916
69160
 
57917
69161
public:
57918
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
69162
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
69163
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57919
69164
  static const char *NodeId ();
 
69165
  /** Get the name of the node. Can be compared with NodeId(). */
57920
69166
  const char *NodeName () const { return NodeId (); }
 
69167
  /** Get the number of sons. */
57921
69168
  int Sons () const { return 2; }
 
69169
  /** Get the n-th son.
 
69170
   *  \param n The index of the son.
 
69171
   *  \return The n-th son or NULL. */
57922
69172
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
57923
69173
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
69174
  /** Replace a son.
 
69175
   *  \param old_son The son to replace.
 
69176
   *  \param new_son The new son. */
57924
69177
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57925
69178
    CTree::ReplaceSon (sons, 2, old_son, new_son);
57926
69179
  }
57927
69180
};
57928
69181
 
57929
69182
 
57930
 
#line 57931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69183
#line 69184 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
57931
69184
} // closed Puma
 
69185
class CCExprResolve;
 
69186
class CExprResolve;
57932
69187
class WinIfExists;
57933
69188
class WinImportHandler;
57934
69189
class WinMacros;
57935
 
class CMatchSyntax;
57936
 
class ExtGnu;
 
69190
class WinAsm;
 
69191
class WinDeclSpecs;
 
69192
class WinMemberExplSpec;
 
69193
class WinTypeKeywords;
 
69194
class WinFriend;
57937
69195
class ExtAC;
57938
69196
class ExtACBuilderCoupling;
57939
69197
class ExtACSyntaxCoupling;
57940
69198
class ExtACTree;
57941
69199
class ExtACKeywords;
57942
 
class WinAsm;
57943
 
class WinDeclSpecs;
57944
 
class WinMemberExplSpec;
57945
 
class WinTypeKeywords;
 
69200
class ExtGnu;
57946
69201
class PragmaOnceUnitState;
57947
69202
class PragmaOnce;
57948
 
class CCExprResolve;
57949
 
class CExprResolve;
 
69203
class CMatchSyntax;
57950
69204
namespace Puma {
57951
69205
 
57952
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69206
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57953
69207
class CT_UsingDecl : public CT_AccessDecl {
57954
 
#line 57955 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69208
#line 69209 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
69209
  friend class ::CCExprResolve;
 
69210
  friend class ::CExprResolve;
57955
69211
  friend class ::WinIfExists;
57956
69212
  friend class ::WinImportHandler;
57957
69213
  friend class ::WinMacros;
57958
 
  friend class ::CMatchSyntax;
57959
 
  friend class ::ExtGnu;
 
69214
  friend class ::WinAsm;
 
69215
  friend class ::WinDeclSpecs;
 
69216
  friend class ::WinMemberExplSpec;
 
69217
  friend class ::WinTypeKeywords;
 
69218
  friend class ::WinFriend;
57960
69219
  friend class ::ExtAC;
57961
69220
  friend class ::ExtACBuilderCoupling;
57962
69221
  friend class ::ExtACSyntaxCoupling;
57963
69222
  friend class ::ExtACTree;
57964
69223
  friend class ::ExtACKeywords;
57965
 
  friend class ::WinAsm;
57966
 
  friend class ::WinDeclSpecs;
57967
 
  friend class ::WinMemberExplSpec;
57968
 
  friend class ::WinTypeKeywords;
 
69224
  friend class ::ExtGnu;
57969
69225
  friend class ::PragmaOnceUnitState;
57970
69226
  friend class ::PragmaOnce;
57971
 
  friend class ::CCExprResolve;
57972
 
  friend class ::CExprResolve;
 
69227
  friend class ::CMatchSyntax;
57973
69228
 
57974
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69229
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
57975
69230
 
57976
69231
  CTree *sons[2]; // using, typename
57977
69232
 
57978
69233
public:
57979
69234
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
57980
 
    sons[0] = u; sons[1] = 0; 
 
69235
    AddSon (sons[0], u); AddSon (sons[1], 0); 
57981
69236
  }
57982
69237
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
57983
 
    sons[0] = u; sons[1] = t; 
 
69238
    AddSon (sons[0], u); AddSon (sons[1], t); 
57984
69239
  }
 
69240
  /** Get the identifier for this node type. Can be compared with NodeName(). */
57985
69241
  static const char *NodeId ();
 
69242
  /** Get the name of the node. Can be compared with NodeId(). */
57986
69243
  const char *NodeName () const { return NodeId (); }
 
69244
  /** Get the number of sons. */
57987
69245
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
69246
  /** Get the n-th son.
 
69247
   *  \param n The index of the son.
 
69248
   *  \return The n-th son or NULL. */
57988
69249
  CTree *Son (int n) const {
57989
69250
    int num = CTree::Sons (sons, 2);
57990
69251
    CTree *result = CTree::Son (sons, 2, n);
57991
69252
    return result ? result : CT_AccessDecl::Son (n-num);
57992
69253
  }
57993
69254
  CTree *Typename () const { return sons[1]; }
 
69255
  /** Replace a son.
 
69256
   *  \param old_son The son to replace.
 
69257
   *  \param new_son The new son. */
57994
69258
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
57995
69259
    CTree::ReplaceSon (sons, 2, old_son, new_son);
57996
69260
    CT_AccessDecl::ReplaceSon (old_son, new_son);
58004
69268
/*****************************************************************************/
58005
69269
 
58006
69270
 
58007
 
#line 58008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69271
#line 69272 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
58008
69272
} // closed Puma
 
69273
class CCExprResolve;
 
69274
class CExprResolve;
58009
69275
class WinIfExists;
58010
69276
class WinImportHandler;
58011
69277
class WinMacros;
58012
 
class CMatchSyntax;
58013
 
class ExtGnu;
 
69278
class WinAsm;
 
69279
class WinDeclSpecs;
 
69280
class WinMemberExplSpec;
 
69281
class WinTypeKeywords;
 
69282
class WinFriend;
58014
69283
class ExtAC;
58015
69284
class ExtACBuilderCoupling;
58016
69285
class ExtACSyntaxCoupling;
58017
69286
class ExtACTree;
58018
69287
class ExtACKeywords;
58019
 
class WinAsm;
58020
 
class WinDeclSpecs;
58021
 
class WinMemberExplSpec;
58022
 
class WinTypeKeywords;
 
69288
class ExtGnu;
58023
69289
class PragmaOnceUnitState;
58024
69290
class PragmaOnce;
58025
 
class CCExprResolve;
58026
 
class CExprResolve;
 
69291
class CMatchSyntax;
58027
69292
namespace Puma {
58028
69293
 
58029
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69294
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58030
69295
class CT_Any : public CTree {
58031
 
#line 58032 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69296
#line 69297 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
69297
  friend class ::CCExprResolve;
 
69298
  friend class ::CExprResolve;
58032
69299
  friend class ::WinIfExists;
58033
69300
  friend class ::WinImportHandler;
58034
69301
  friend class ::WinMacros;
58035
 
  friend class ::CMatchSyntax;
58036
 
  friend class ::ExtGnu;
 
69302
  friend class ::WinAsm;
 
69303
  friend class ::WinDeclSpecs;
 
69304
  friend class ::WinMemberExplSpec;
 
69305
  friend class ::WinTypeKeywords;
 
69306
  friend class ::WinFriend;
58037
69307
  friend class ::ExtAC;
58038
69308
  friend class ::ExtACBuilderCoupling;
58039
69309
  friend class ::ExtACSyntaxCoupling;
58040
69310
  friend class ::ExtACTree;
58041
69311
  friend class ::ExtACKeywords;
58042
 
  friend class ::WinAsm;
58043
 
  friend class ::WinDeclSpecs;
58044
 
  friend class ::WinMemberExplSpec;
58045
 
  friend class ::WinTypeKeywords;
 
69312
  friend class ::ExtGnu;
58046
69313
  friend class ::PragmaOnceUnitState;
58047
69314
  friend class ::PragmaOnce;
58048
 
  friend class ::CCExprResolve;
58049
 
  friend class ::CExprResolve;
 
69315
  friend class ::CMatchSyntax;
58050
69316
 
58051
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69317
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58052
69318
 
58053
69319
  CTree *sons[2]; // keyword, extension
58054
69320
 
58055
69321
public:
58056
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
69322
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
69323
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58057
69324
  static const char *NodeId ();
 
69325
  /** Get the name of the node. Can be compared with NodeId(). */
58058
69326
  const char *NodeName () const { return NodeId (); }
 
69327
  /** Get the number of sons. */
58059
69328
  int Sons () const { return CTree::Sons (sons, 2); }
 
69329
  /** Get the n-th son.
 
69330
   *  \param n The index of the son.
 
69331
   *  \return The n-th son or NULL. */
58060
69332
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
69333
  /** Replace a son.
 
69334
   *  \param old_son The son to replace.
 
69335
   *  \param new_son The new son. */
58061
69336
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58062
69337
    CTree::ReplaceSon (sons, 2, old_son, new_son);
58063
69338
  }
58066
69341
};
58067
69342
 
58068
69343
 
58069
 
#line 58070 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69344
#line 69345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
58070
69345
} // closed Puma
 
69346
class CCExprResolve;
 
69347
class CExprResolve;
58071
69348
class WinIfExists;
58072
69349
class WinImportHandler;
58073
69350
class WinMacros;
58074
 
class CMatchSyntax;
58075
 
class ExtGnu;
 
69351
class WinAsm;
 
69352
class WinDeclSpecs;
 
69353
class WinMemberExplSpec;
 
69354
class WinTypeKeywords;
 
69355
class WinFriend;
58076
69356
class ExtAC;
58077
69357
class ExtACBuilderCoupling;
58078
69358
class ExtACSyntaxCoupling;
58079
69359
class ExtACTree;
58080
69360
class ExtACKeywords;
58081
 
class WinAsm;
58082
 
class WinDeclSpecs;
58083
 
class WinMemberExplSpec;
58084
 
class WinTypeKeywords;
 
69361
class ExtGnu;
58085
69362
class PragmaOnceUnitState;
58086
69363
class PragmaOnce;
58087
 
class CCExprResolve;
58088
 
class CExprResolve;
 
69364
class CMatchSyntax;
58089
69365
namespace Puma {
58090
69366
 
58091
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69367
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58092
69368
class CT_AnyList : public CT_Any {
58093
 
#line 58094 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69369
#line 69370 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
69370
  friend class ::CCExprResolve;
 
69371
  friend class ::CExprResolve;
58094
69372
  friend class ::WinIfExists;
58095
69373
  friend class ::WinImportHandler;
58096
69374
  friend class ::WinMacros;
58097
 
  friend class ::CMatchSyntax;
58098
 
  friend class ::ExtGnu;
 
69375
  friend class ::WinAsm;
 
69376
  friend class ::WinDeclSpecs;
 
69377
  friend class ::WinMemberExplSpec;
 
69378
  friend class ::WinTypeKeywords;
 
69379
  friend class ::WinFriend;
58099
69380
  friend class ::ExtAC;
58100
69381
  friend class ::ExtACBuilderCoupling;
58101
69382
  friend class ::ExtACSyntaxCoupling;
58102
69383
  friend class ::ExtACTree;
58103
69384
  friend class ::ExtACKeywords;
58104
 
  friend class ::WinAsm;
58105
 
  friend class ::WinDeclSpecs;
58106
 
  friend class ::WinMemberExplSpec;
58107
 
  friend class ::WinTypeKeywords;
 
69385
  friend class ::ExtGnu;
58108
69386
  friend class ::PragmaOnceUnitState;
58109
69387
  friend class ::PragmaOnce;
58110
 
  friend class ::CCExprResolve;
58111
 
  friend class ::CExprResolve;
 
69388
  friend class ::CMatchSyntax;
58112
69389
 
58113
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69390
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58114
69391
 
58115
69392
public:
58116
69393
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
69394
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58117
69395
  static const char *NodeId ();
 
69396
  /** Get the name of the node. Can be compared with NodeId(). */
58118
69397
  const char *NodeName () const { return NodeId (); }
58119
69398
};
58120
69399
 
58121
69400
 
58122
 
#line 58123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69401
#line 69402 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
58123
69402
} // closed Puma
 
69403
class CCExprResolve;
 
69404
class CExprResolve;
58124
69405
class WinIfExists;
58125
69406
class WinImportHandler;
58126
69407
class WinMacros;
58127
 
class CMatchSyntax;
58128
 
class ExtGnu;
 
69408
class WinAsm;
 
69409
class WinDeclSpecs;
 
69410
class WinMemberExplSpec;
 
69411
class WinTypeKeywords;
 
69412
class WinFriend;
58129
69413
class ExtAC;
58130
69414
class ExtACBuilderCoupling;
58131
69415
class ExtACSyntaxCoupling;
58132
69416
class ExtACTree;
58133
69417
class ExtACKeywords;
58134
 
class WinAsm;
58135
 
class WinDeclSpecs;
58136
 
class WinMemberExplSpec;
58137
 
class WinTypeKeywords;
 
69418
class ExtGnu;
58138
69419
class PragmaOnceUnitState;
58139
69420
class PragmaOnce;
58140
 
class CCExprResolve;
58141
 
class CExprResolve;
 
69421
class CMatchSyntax;
58142
69422
namespace Puma {
58143
69423
 
58144
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69424
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58145
69425
class CT_AnyExtension : public CTree, public CSemValue {
58146
 
#line 58147 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69426
#line 69427 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
69427
  friend class ::CCExprResolve;
 
69428
  friend class ::CExprResolve;
58147
69429
  friend class ::WinIfExists;
58148
69430
  friend class ::WinImportHandler;
58149
69431
  friend class ::WinMacros;
58150
 
  friend class ::CMatchSyntax;
58151
 
  friend class ::ExtGnu;
 
69432
  friend class ::WinAsm;
 
69433
  friend class ::WinDeclSpecs;
 
69434
  friend class ::WinMemberExplSpec;
 
69435
  friend class ::WinTypeKeywords;
 
69436
  friend class ::WinFriend;
58152
69437
  friend class ::ExtAC;
58153
69438
  friend class ::ExtACBuilderCoupling;
58154
69439
  friend class ::ExtACSyntaxCoupling;
58155
69440
  friend class ::ExtACTree;
58156
69441
  friend class ::ExtACKeywords;
58157
 
  friend class ::WinAsm;
58158
 
  friend class ::WinDeclSpecs;
58159
 
  friend class ::WinMemberExplSpec;
58160
 
  friend class ::WinTypeKeywords;
 
69442
  friend class ::ExtGnu;
58161
69443
  friend class ::PragmaOnceUnitState;
58162
69444
  friend class ::PragmaOnce;
58163
 
  friend class ::CCExprResolve;
58164
 
  friend class ::CExprResolve;
 
69445
  friend class ::CMatchSyntax;
58165
69446
 
58166
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69447
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58167
69448
 
58168
69449
  CTree *sons[5]; // open, string, comma, cond, close
58169
69450
 
58170
69451
public:
58171
69452
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
58172
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
69453
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
69454
    AddSon (sons[3], c); AddSon (sons[4], cr); 
58173
69455
  }
 
69456
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58174
69457
  static const char *NodeId ();
 
69458
  /** Get the name of the node. Can be compared with NodeId(). */
58175
69459
  const char *NodeName () const { return NodeId (); }
 
69460
  /** Get the number of sons. */
58176
69461
  int Sons () const { return CTree::Sons (sons, 5); }
 
69462
  /** Get the n-th son.
 
69463
   *  \param n The index of the son.
 
69464
   *  \return The n-th son or NULL. */
58177
69465
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
69466
  /** Replace a son.
 
69467
   *  \param old_son The son to replace.
 
69468
   *  \param new_son The new son. */
58178
69469
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58179
69470
    CTree::ReplaceSon (sons, 5, old_son, new_son);
58180
69471
  }
58188
69479
};
58189
69480
 
58190
69481
 
58191
 
#line 58192 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69482
#line 69483 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
58192
69483
} // closed Puma
 
69484
class CCExprResolve;
 
69485
class CExprResolve;
58193
69486
class WinIfExists;
58194
69487
class WinImportHandler;
58195
69488
class WinMacros;
58196
 
class CMatchSyntax;
58197
 
class ExtGnu;
 
69489
class WinAsm;
 
69490
class WinDeclSpecs;
 
69491
class WinMemberExplSpec;
 
69492
class WinTypeKeywords;
 
69493
class WinFriend;
58198
69494
class ExtAC;
58199
69495
class ExtACBuilderCoupling;
58200
69496
class ExtACSyntaxCoupling;
58201
69497
class ExtACTree;
58202
69498
class ExtACKeywords;
58203
 
class WinAsm;
58204
 
class WinDeclSpecs;
58205
 
class WinMemberExplSpec;
58206
 
class WinTypeKeywords;
 
69499
class ExtGnu;
58207
69500
class PragmaOnceUnitState;
58208
69501
class PragmaOnce;
58209
 
class CCExprResolve;
58210
 
class CExprResolve;
 
69502
class CMatchSyntax;
58211
69503
namespace Puma {
58212
69504
 
58213
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69505
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58214
69506
class CT_AnyCondition : public CTree {
58215
 
#line 58216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69507
#line 69508 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
69508
  friend class ::CCExprResolve;
 
69509
  friend class ::CExprResolve;
58216
69510
  friend class ::WinIfExists;
58217
69511
  friend class ::WinImportHandler;
58218
69512
  friend class ::WinMacros;
58219
 
  friend class ::CMatchSyntax;
58220
 
  friend class ::ExtGnu;
 
69513
  friend class ::WinAsm;
 
69514
  friend class ::WinDeclSpecs;
 
69515
  friend class ::WinMemberExplSpec;
 
69516
  friend class ::WinTypeKeywords;
 
69517
  friend class ::WinFriend;
58221
69518
  friend class ::ExtAC;
58222
69519
  friend class ::ExtACBuilderCoupling;
58223
69520
  friend class ::ExtACSyntaxCoupling;
58224
69521
  friend class ::ExtACTree;
58225
69522
  friend class ::ExtACKeywords;
58226
 
  friend class ::WinAsm;
58227
 
  friend class ::WinDeclSpecs;
58228
 
  friend class ::WinMemberExplSpec;
58229
 
  friend class ::WinTypeKeywords;
 
69523
  friend class ::ExtGnu;
58230
69524
  friend class ::PragmaOnceUnitState;
58231
69525
  friend class ::PragmaOnce;
58232
 
  friend class ::CCExprResolve;
58233
 
  friend class ::CExprResolve;
 
69526
  friend class ::CMatchSyntax;
58234
69527
 
58235
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69528
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58236
69529
 
58237
69530
  CTree *sons[3]; // arg1, arg2, arg3
58238
69531
 
58239
69532
public:
58240
69533
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
58241
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
69534
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
58242
69535
  }
 
69536
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58243
69537
  static const char *NodeId ();
 
69538
  /** Get the name of the node. Can be compared with NodeId(). */
58244
69539
  const char *NodeName () const { return NodeId (); }
 
69540
  /** Get the number of sons. */
58245
69541
  int Sons () const { return CTree::Sons (sons, 3); }
 
69542
  /** Get the n-th son.
 
69543
   *  \param n The index of the son.
 
69544
   *  \return The n-th son or NULL. */
58246
69545
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
69546
  /** Replace a son.
 
69547
   *  \param old_son The son to replace.
 
69548
   *  \param new_son The new son. */
58247
69549
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
58248
69550
    CTree::ReplaceSon (sons, 3, old_son, new_son);
58249
69551
  }
58254
69556
 
58255
69557
#endif /* __CTree_h__ */
58256
69558
 
58257
 
#line 58258 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
58258
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
58259
 
 
58260
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58261
 
 
58262
 
#line 28 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
69559
#line 28 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
58263
69560
namespace Puma {
58264
69561
 
58265
69562
 
58268
69565
class CTypeInfo;
58269
69566
 
58270
69567
 
58271
 
#line 58272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69568
#line 69569 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
58272
69569
} // closed Puma
 
69570
class CCExprResolve;
 
69571
class CExprResolve;
58273
69572
class WinIfExists;
58274
69573
class WinImportHandler;
58275
69574
class WinMacros;
58276
 
class CMatchSyntax;
58277
 
class ExtGnu;
 
69575
class WinAsm;
 
69576
class WinDeclSpecs;
 
69577
class WinMemberExplSpec;
 
69578
class WinTypeKeywords;
 
69579
class WinFriend;
58278
69580
class ExtAC;
58279
69581
class ExtACBuilderCoupling;
58280
69582
class ExtACSyntaxCoupling;
58281
69583
class ExtACTree;
58282
69584
class ExtACKeywords;
58283
 
class WinAsm;
58284
 
class WinDeclSpecs;
58285
 
class WinMemberExplSpec;
58286
 
class WinTypeKeywords;
 
69585
class ExtGnu;
58287
69586
class PragmaOnceUnitState;
58288
69587
class PragmaOnce;
58289
 
class CCExprResolve;
58290
 
class CExprResolve;
 
69588
class CMatchSyntax;
58291
69589
namespace Puma {
58292
69590
 
58293
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
69591
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
58294
69592
class CSemVisitor : private CVisitor {
58295
 
#line 58296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69593
#line 69594 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
69594
  friend class ::CCExprResolve;
 
69595
  friend class ::CExprResolve;
58296
69596
  friend class ::WinIfExists;
58297
69597
  friend class ::WinImportHandler;
58298
69598
  friend class ::WinMacros;
58299
 
  friend class ::CMatchSyntax;
58300
 
  friend class ::ExtGnu;
 
69599
  friend class ::WinAsm;
 
69600
  friend class ::WinDeclSpecs;
 
69601
  friend class ::WinMemberExplSpec;
 
69602
  friend class ::WinTypeKeywords;
 
69603
  friend class ::WinFriend;
58301
69604
  friend class ::ExtAC;
58302
69605
  friend class ::ExtACBuilderCoupling;
58303
69606
  friend class ::ExtACSyntaxCoupling;
58304
69607
  friend class ::ExtACTree;
58305
69608
  friend class ::ExtACKeywords;
58306
 
  friend class ::WinAsm;
58307
 
  friend class ::WinDeclSpecs;
58308
 
  friend class ::WinMemberExplSpec;
58309
 
  friend class ::WinTypeKeywords;
 
69609
  friend class ::ExtGnu;
58310
69610
  friend class ::PragmaOnceUnitState;
58311
69611
  friend class ::PragmaOnce;
58312
 
  friend class ::CCExprResolve;
58313
 
  friend class ::CExprResolve;
 
69612
  friend class ::CMatchSyntax;
58314
69613
 
58315
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
 
69614
#line 35 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemVisitor.h"
58316
69615
 
58317
69616
protected:
58318
69617
  CStructure *current_scope;
58319
69618
  ErrorSink &err;
58320
69619
 
58321
69620
public:
58322
 
  CSemVisitor (ErrorSink &);
 
69621
  CSemVisitor (ErrorSink &, CStructure * = (CStructure*)0);
58323
69622
 
58324
69623
  void run (CTree *, CStructure * = (CStructure*)0);
58325
69624
  void configure (Config &) {}
 
69625
 
 
69626
  CTypeInfo *resolveExpr (CTree *, CTree *) const;
 
69627
  void resolveInit (CObjectInfo *info, CTree *, CTree *) const;
58326
69628
  
58327
69629
protected:
58328
69630
  void pre_visit (CTree *);
58366
69668
  void post_action (CT_WhileStmt *);
58367
69669
 
58368
69670
  CT_SimpleName *findName (CTree *) const;
58369
 
 
58370
 
public:
58371
 
  CTypeInfo *resolveExpr (CTree *, CTree *) const;
58372
 
  void resolveInit (CObjectInfo *info, CTree *, CTree *) const;
58373
 
 
58374
69671
};
58375
69672
 
58376
69673
} // namespace Puma
58377
69674
 
58378
69675
#endif /* __CSemVisitor_h__ */
58379
69676
 
58380
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
69677
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
58381
69678
 
58382
 
#line 58383 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69679
#line 69680 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
58383
69680
 
58384
69681
#ifndef __ac_fwd_ExtGnu__
58385
69682
#define __ac_fwd_ExtGnu__
58386
69683
class ExtGnu;
58387
69684
namespace AC {
58388
 
  template <class JoinPoint, class Binding>
58389
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp);
58390
 
  template <class JoinPoint, class Binding>
58391
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp);
58392
 
  template <class JoinPoint>
58393
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
58394
 
  template <class JoinPoint>
58395
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
58396
 
  template <class JoinPoint>
58397
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
58398
 
  template <class JoinPoint>
58399
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
58400
 
  template <class JoinPoint>
58401
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
58402
 
  template <class JoinPoint, class Binding>
58403
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
58404
 
  template <class JoinPoint, class Binding>
58405
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
58406
 
  template <class JoinPoint, class Binding>
58407
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
58408
 
  template <class JoinPoint, class Binding>
58409
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
58410
 
  template <class JoinPoint, class Binding>
58411
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
58412
 
  template <class JoinPoint, class Binding>
58413
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
58414
 
  template <class JoinPoint>
58415
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
58416
 
  template <class JoinPoint>
58417
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
58418
 
  template <class JoinPoint, class Binding>
58419
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
69685
  template <class JoinPoint>
 
69686
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp);
 
69687
  template <class JoinPoint>
 
69688
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp);
 
69689
  template <class JoinPoint>
 
69690
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp);
 
69691
  template <class JoinPoint>
 
69692
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp);
 
69693
  template <class JoinPoint>
 
69694
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp);
 
69695
  template <class JoinPoint>
 
69696
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp);
 
69697
  template <class JoinPoint>
 
69698
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp);
 
69699
  template <class JoinPoint>
 
69700
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp);
 
69701
  template <class JoinPoint>
 
69702
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp);
 
69703
  template <class JoinPoint>
 
69704
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp);
 
69705
  template <class JoinPoint>
 
69706
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp);
 
69707
  template <class JoinPoint>
 
69708
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp);
 
69709
  template <class JoinPoint>
 
69710
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp);
 
69711
  template <class JoinPoint>
 
69712
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp);
 
69713
  template <class JoinPoint>
 
69714
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp);
 
69715
  template <class JoinPoint>
 
69716
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp);
 
69717
  template <class JoinPoint>
 
69718
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp);
58420
69719
}
58421
69720
#endif
58422
69721
 
58423
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
58424
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
69722
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
69723
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
58425
69724
#endif
58426
69725
 
58427
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
58428
 
 
58429
 
#line 58430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
58430
 
 
58431
 
#line 4 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
58432
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
58433
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
58434
 
 
58435
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
69726
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
58436
69727
// This file is part of PUMA.
58437
69728
// Copyright (C) 1999-2003  The PUMA developer team.
58438
69729
//                                                                
58455
69746
#define __c_sem_decl_specs_h__
58456
69747
 
58457
69748
 
58458
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69749
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58459
69750
 
58460
 
#line 58461 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69751
#line 69752 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
58461
69752
 
58462
69753
#ifndef __ac_fwd_ExtACTree__
58463
69754
#define __ac_fwd_ExtACTree__
58464
69755
class ExtACTree;
58465
69756
namespace AC {
58466
69757
  template <class JoinPoint>
58467
 
  inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
 
69758
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a0_after (JoinPoint *tjp);
58468
69759
  template <class JoinPoint>
58469
 
  inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
 
69760
  __attribute((always_inline)) inline void invoke_ExtACTree_ExtACTree_a1_before (JoinPoint *tjp);
58470
69761
}
58471
69762
#endif
58472
69763
 
58473
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
58474
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
69764
#ifndef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
69765
#define __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
58475
69766
#endif
58476
69767
 
58477
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58478
 
 
58479
 
#line 58480 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
58480
 
 
58481
 
#line 6 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
58482
 
#ifndef __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
58483
 
#define __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
58484
 
 
58485
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69768
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58486
69769
// This file is part of PUMA.
58487
69770
// Copyright (C) 1999-2003  The PUMA developer team.
58488
69771
//                                                                
58527
69810
class     CT_DefaultStmt;
58528
69811
class     CT_TryStmt;
58529
69812
class   CT_Expression;
 
69813
class     CT_Call;
 
69814
class       CT_CallExpr;
 
69815
class       CT_ImplicitCall;
58530
69816
class     CT_ThrowExpr;
58531
69817
class     CT_NewExpr;
58532
69818
class     CT_DeleteExpr;
58547
69833
class     CT_IfThenExpr;
58548
69834
class     CT_CmpdLiteral;
58549
69835
class     CT_IndexExpr;
58550
 
class     CT_CallExpr;
58551
69836
class     CT_CastExpr;
58552
69837
class     CT_StaticCast;
58553
69838
class       CT_ConstCast;
58594
69879
class     CT_NamespaceDef;
58595
69880
class     CT_NamespaceAliasDef;
58596
69881
class     CT_UsingDirective;
 
69882
class     CT_Condition;
58597
69883
class   CT_List;
58598
69884
class     CT_CmpdStmt;
58599
69885
class     CT_DeclSpecSeq;
58624
69910
class     CT_TemplateArgList;
58625
69911
class   CT_Token;
58626
69912
class   CT_Error;
58627
 
class   CT_Condition;
58628
69913
class   CT_BaseSpec;
58629
69914
class   CT_AccessSpec;
58630
69915
class   CT_ArrayDelimiter;
58664
69949
/*                                                                           */
58665
69950
/*****************************************************************************/
58666
69951
 
58667
 
 
58668
 
#line 58669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
69952
/** \file
 
69953
 *  C/C++ syntax tree classes.
 
69954
 *  \see Puma::CTree */
 
69955
 
 
69956
/** \class CTree CTree.h Puma/CTree.h
 
69957
 *  Base class for all C/C++ syntax tree classes. */
 
69958
 
 
69959
#line 69960 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
58669
69960
} // closed Puma
 
69961
class CCExprResolve;
 
69962
class CExprResolve;
58670
69963
class WinIfExists;
58671
69964
class WinImportHandler;
58672
69965
class WinMacros;
58673
 
class CMatchSyntax;
58674
 
class ExtGnu;
 
69966
class WinAsm;
 
69967
class WinDeclSpecs;
 
69968
class WinMemberExplSpec;
 
69969
class WinTypeKeywords;
 
69970
class WinFriend;
58675
69971
class ExtAC;
58676
69972
class ExtACBuilderCoupling;
58677
69973
class ExtACSyntaxCoupling;
58678
69974
class ExtACTree;
58679
69975
class ExtACKeywords;
58680
 
class WinAsm;
58681
 
class WinDeclSpecs;
58682
 
class WinMemberExplSpec;
58683
 
class WinTypeKeywords;
 
69976
class ExtGnu;
58684
69977
class PragmaOnceUnitState;
58685
69978
class PragmaOnce;
58686
 
class CCExprResolve;
58687
 
class CExprResolve;
58688
 
namespace Puma {
58689
 
 
58690
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69979
class CMatchSyntax;
 
69980
namespace Puma {
 
69981
 
 
69982
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69983
 
 
69984
#line 69985 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
69985
} // closed Puma
 
69986
 
 
69987
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69988
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
69989
#include "CCExprResolveH.ah"
 
69990
#endif
 
69991
namespace Puma {
 
69992
 
 
69993
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
69994
 
 
69995
#line 69996 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
69996
} // closed Puma
 
69997
 
 
69998
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
69999
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
70000
#include "CExprResolveH.ah"
 
70001
#endif
 
70002
namespace Puma {
 
70003
 
 
70004
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58691
70005
class CTree {
58692
 
#line 58693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70006
#line 70007 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
70007
  friend class ::CCExprResolve;
 
70008
  friend class ::CExprResolve;
58693
70009
  friend class ::WinIfExists;
58694
70010
  friend class ::WinImportHandler;
58695
70011
  friend class ::WinMacros;
58696
 
  friend class ::CMatchSyntax;
58697
 
  friend class ::ExtGnu;
 
70012
  friend class ::WinAsm;
 
70013
  friend class ::WinDeclSpecs;
 
70014
  friend class ::WinMemberExplSpec;
 
70015
  friend class ::WinTypeKeywords;
 
70016
  friend class ::WinFriend;
58698
70017
  friend class ::ExtAC;
58699
70018
  friend class ::ExtACBuilderCoupling;
58700
70019
  friend class ::ExtACSyntaxCoupling;
58701
70020
  friend class ::ExtACTree;
58702
70021
  friend class ::ExtACKeywords;
58703
 
  friend class ::WinAsm;
58704
 
  friend class ::WinDeclSpecs;
58705
 
  friend class ::WinMemberExplSpec;
58706
 
  friend class ::WinTypeKeywords;
 
70022
  friend class ::ExtGnu;
58707
70023
  friend class ::PragmaOnceUnitState;
58708
70024
  friend class ::PragmaOnce;
58709
 
  friend class ::CCExprResolve;
58710
 
  friend class ::CExprResolve;
58711
 
 
58712
 
#line 182 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70025
  friend class ::CMatchSyntax;
 
70026
 
 
70027
#line 190 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70028
 
 
70029
  CTree * _parent;
58713
70030
 
58714
70031
public:
58715
70032
  /*DEBUG*/static int alloc;
58716
70033
  /*DEBUG*/static int release;
58717
70034
 
58718
70035
protected:
58719
 
  CTree *Son (CTree * const *, int, int) const;
58720
 
  int Sons (CTree * const *, int) const;
58721
 
  void ReplaceSon (CTree * const *, int, CTree *, CTree *) const;
 
70036
  /** Get the n-th son from given sons array. Skips empty (NULL) array items.
 
70037
   *  \param sons The sons array.
 
70038
   *  \param len Length of the sons array.
 
70039
   *  \param n Index of the son.
 
70040
   *  \return The n-th son or NULL. */
 
70041
  CTree *Son (CTree * const *sons, int len, int n) const;
 
70042
  /** Get the number of sons in the given sons array. Skips empty (NULL) array items.
 
70043
   *  \param sons The sons array.
 
70044
   *  \param len Length of the sons array. */
 
70045
  int Sons (CTree * const *sons, int len) const;
 
70046
  /** Replace a son.
 
70047
   *  \param sons The sons array.
 
70048
   *  \param len Length of the sons array.
 
70049
   *  \param old_son The son to replace.
 
70050
   *  \param new_son The new son. */
 
70051
  void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son);
 
70052
  /** Replace a son if it equals the given son.
 
70053
   *  \param son The actual son.
 
70054
   *  \param old_son The son to replace, must match the actual son.
 
70055
   *  \param new_son The new son, overwrites the actual son. */
 
70056
  void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son);
 
70057
  /** Add a new son.
 
70058
   *  \param son The actual son.
 
70059
   *  \param new_son The new son, overwrites the actual son. */
 
70060
  void AddSon (CTree *&son, CTree *new_son);
 
70061
  /** Set the parent tree node.
 
70062
   *  \param parent The new parent tree node. */
 
70063
  void SetParent (const CTree *parent) { _parent = (CTree*)parent; }
 
70064
  /** Set the parent tree node of the given tree node.
 
70065
   *  \param node The tree node.
 
70066
   *  \param parent The new parent. */
 
70067
  void SetParent (CTree *node, const CTree *parent) { node->_parent = (CTree*)parent; }
58722
70068
  
58723
70069
protected:
58724
 
  CTree () { /*DEBUG*/alloc++; }
 
70070
  /** Default constructor. */
 
70071
  CTree () : _parent(0) { /*DEBUG*/alloc++; }
58725
70072
 
58726
70073
public:
 
70074
  /** Destructor. */
58727
70075
  virtual ~CTree () { /*DEBUG*/release++; }
 
70076
  /** Get the number of sons. */
58728
70077
  virtual int Sons () const = 0;
 
70078
  /** Get the n-th son.
 
70079
   *  \param n The index of the son.
 
70080
   *  \return The n-th son or NULL. */
58729
70081
  virtual CTree *Son (int n) const { return (CTree*)0; }
 
70082
  /** Get the node name (node identifier). */
58730
70083
  virtual const char *NodeName () const = 0;
 
70084
  /** Get the first token of the syntactic construct represented by this sub-tree.
 
70085
   *  \return The token or NULL. */
58731
70086
  virtual Token *token () const;
 
70087
  /** Get the last token of the syntactic construct represented by this sub-tree.
 
70088
   *  \return The token or NULL. */
58732
70089
  virtual Token *end_token () const;
 
70090
  /** Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
70091
   *  \return The token node or NULL. */
58733
70092
  virtual CT_Token *token_node () const;
 
70093
  /** Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
70094
   *  \return The token node or NULL. */
58734
70095
  virtual CT_Token *end_token_node () const;
58735
 
  virtual void ReplaceSon (CTree *, CTree *) {}
 
70096
  /** Replace a son.
 
70097
   *  \param old_son The son to replace.
 
70098
   *  \param new_son The son with which to replace. */
 
70099
  virtual void ReplaceSon (CTree *old_son, CTree *new_son) {}
 
70100
  /** Get the parent node.
 
70101
   *  \return The parent node or NULL. */
 
70102
  virtual CTree *Parent () const { return (CTree*)_parent; }
58736
70103
 
58737
70104
public: // semantic information
 
70105
  /** Get the semantic type of the node.
 
70106
   *  \return The type object or NULL. */
58738
70107
  virtual CTypeInfo *Type () const { return (CTypeInfo*)0; }
 
70108
  /** Get the calculated value of the expression.
 
70109
   *  \return The value object or NULL. */
58739
70110
  virtual CExprValue *Value () const { return (CExprValue*)0; }
58740
70111
  
 
70112
  /** Get the semantic scope of the node.
 
70113
   *  \return The scope object or NULL. */
 
70114
  virtual CSemScope *SemScope () const { return (CSemScope*)0; }
 
70115
  /** Get the semantic value of the node.
 
70116
   *  \return The value object or NULL. */
58741
70117
  virtual CSemValue *SemValue () const { return (CSemValue*)0; }
 
70118
  /** Get the semantic object of the node.
 
70119
   *  \return The semantic object or NULL. */
58742
70120
  virtual CSemObject *SemObject () const { return (CSemObject*)0; }
58743
70121
  
58744
70122
public: // node classification function
 
70123
  /** Get a pointer to CT_SimpleName if the current node represents a name.
 
70124
   *  \return The CT_SimpleName node or NULL. */
58745
70125
  virtual CT_SimpleName *IsSimpleName () { return 0; }
 
70126
  /** Get a pointer to CT_String if the current node represents a string.
 
70127
   *  \return The CT_String node or NULL. */
 
70128
  virtual CT_String *IsString () { return 0; }
 
70129
  /** Get a pointer to CT_Declarator if the current node represents a declarator.
 
70130
   *  \return The CT_Declarator pointer or NULL. */
58746
70131
  virtual CT_Declarator *IsDeclarator () { return 0; }
 
70132
  /** Get a pointer to CT_Statement if the current node represents a statement.
 
70133
   *  \return The CT_Statement pointer or NULL. */
 
70134
  virtual CT_Statement *IsStatement () { return 0; }
 
70135
  /** Get a pointer to CT_Expression if the current node represents a expression.
 
70136
   *  \return The CT_Expression pointer or NULL. */
 
70137
  virtual CT_Expression *IsExpression () { return 0; }
 
70138
  /** Get a pointer to CT_Decl if the current node represents a declaration.
 
70139
   *  \return The CT_Decl pointer or NULL. */
 
70140
  virtual CT_Decl *IsDeclaration () { return 0; }
 
70141
  /** Get a pointer to CT_Call if the current node represents a call expression.
 
70142
   *  \return The CT_Call pointer or NULL. */
 
70143
  virtual CT_Call *IsCall () { return 0; }
58747
70144
   private:
58748
70145
  typedef CTree CCExprResolveCTree;
58749
70146
 
58750
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
70147
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
58751
70148
 public :
58752
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
70149
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
58753
70150
  typedef CTree CExprResolveCTree;
58754
70151
 
58755
 
#line 34 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
70152
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
58756
70153
 public :
58757
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
58758
 
#line 216 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70154
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
70155
#line 306 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58759
70156
};
58760
70157
 
 
70158
/** \class CT_Error CTree.h Puma/CTree.h
 
70159
 *  Error tree node that is inserted into the tree for syntactic constructs
 
70160
 *  that could not be parsed. */
58761
70161
 
58762
 
#line 58763 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70162
#line 70163 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
58763
70163
} // closed Puma
 
70164
class CCExprResolve;
 
70165
class CExprResolve;
58764
70166
class WinIfExists;
58765
70167
class WinImportHandler;
58766
70168
class WinMacros;
58767
 
class CMatchSyntax;
58768
 
class ExtGnu;
 
70169
class WinAsm;
 
70170
class WinDeclSpecs;
 
70171
class WinMemberExplSpec;
 
70172
class WinTypeKeywords;
 
70173
class WinFriend;
58769
70174
class ExtAC;
58770
70175
class ExtACBuilderCoupling;
58771
70176
class ExtACSyntaxCoupling;
58772
70177
class ExtACTree;
58773
70178
class ExtACKeywords;
58774
 
class WinAsm;
58775
 
class WinDeclSpecs;
58776
 
class WinMemberExplSpec;
58777
 
class WinTypeKeywords;
 
70179
class ExtGnu;
58778
70180
class PragmaOnceUnitState;
58779
70181
class PragmaOnce;
58780
 
class CCExprResolve;
58781
 
class CExprResolve;
 
70182
class CMatchSyntax;
58782
70183
namespace Puma {
58783
70184
 
58784
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70185
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58785
70186
class CT_Error : public CTree {
58786
 
#line 58787 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70187
#line 70188 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
70188
  friend class ::CCExprResolve;
 
70189
  friend class ::CExprResolve;
58787
70190
  friend class ::WinIfExists;
58788
70191
  friend class ::WinImportHandler;
58789
70192
  friend class ::WinMacros;
58790
 
  friend class ::CMatchSyntax;
58791
 
  friend class ::ExtGnu;
 
70193
  friend class ::WinAsm;
 
70194
  friend class ::WinDeclSpecs;
 
70195
  friend class ::WinMemberExplSpec;
 
70196
  friend class ::WinTypeKeywords;
 
70197
  friend class ::WinFriend;
58792
70198
  friend class ::ExtAC;
58793
70199
  friend class ::ExtACBuilderCoupling;
58794
70200
  friend class ::ExtACSyntaxCoupling;
58795
70201
  friend class ::ExtACTree;
58796
70202
  friend class ::ExtACKeywords;
58797
 
  friend class ::WinAsm;
58798
 
  friend class ::WinDeclSpecs;
58799
 
  friend class ::WinMemberExplSpec;
58800
 
  friend class ::WinTypeKeywords;
 
70203
  friend class ::ExtGnu;
58801
70204
  friend class ::PragmaOnceUnitState;
58802
70205
  friend class ::PragmaOnce;
58803
 
  friend class ::CCExprResolve;
58804
 
  friend class ::CExprResolve;
 
70206
  friend class ::CMatchSyntax;
58805
70207
 
58806
 
#line 218 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70208
#line 311 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58807
70209
 
58808
70210
public:
 
70211
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58809
70212
  static const char *NodeId ();
 
70213
  /** Get the name of the node. Can be compared with NodeId(). */
58810
70214
  const char *NodeName () const { return NodeId (); }
 
70215
  /** Get the number of sons. */
58811
70216
  int Sons () const { return 0; }
58812
70217
};
58813
70218
 
 
70219
/** \class CT_Token CTree.h Puma/CTree.h
 
70220
 *  Tree node representing a single token in the source code. */
58814
70221
 
58815
 
#line 58816 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70222
#line 70223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
58816
70223
} // closed Puma
 
70224
class CCExprResolve;
 
70225
class CExprResolve;
58817
70226
class WinIfExists;
58818
70227
class WinImportHandler;
58819
70228
class WinMacros;
58820
 
class CMatchSyntax;
58821
 
class ExtGnu;
 
70229
class WinAsm;
 
70230
class WinDeclSpecs;
 
70231
class WinMemberExplSpec;
 
70232
class WinTypeKeywords;
 
70233
class WinFriend;
58822
70234
class ExtAC;
58823
70235
class ExtACBuilderCoupling;
58824
70236
class ExtACSyntaxCoupling;
58825
70237
class ExtACTree;
58826
70238
class ExtACKeywords;
58827
 
class WinAsm;
58828
 
class WinDeclSpecs;
58829
 
class WinMemberExplSpec;
58830
 
class WinTypeKeywords;
 
70239
class ExtGnu;
58831
70240
class PragmaOnceUnitState;
58832
70241
class PragmaOnce;
58833
 
class CCExprResolve;
58834
 
class CExprResolve;
 
70242
class CMatchSyntax;
58835
70243
namespace Puma {
58836
70244
 
58837
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70245
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58838
70246
class CT_Token : public CTree {
58839
 
#line 58840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70247
#line 70248 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
70248
  friend class ::CCExprResolve;
 
70249
  friend class ::CExprResolve;
58840
70250
  friend class ::WinIfExists;
58841
70251
  friend class ::WinImportHandler;
58842
70252
  friend class ::WinMacros;
58843
 
  friend class ::CMatchSyntax;
58844
 
  friend class ::ExtGnu;
 
70253
  friend class ::WinAsm;
 
70254
  friend class ::WinDeclSpecs;
 
70255
  friend class ::WinMemberExplSpec;
 
70256
  friend class ::WinTypeKeywords;
 
70257
  friend class ::WinFriend;
58845
70258
  friend class ::ExtAC;
58846
70259
  friend class ::ExtACBuilderCoupling;
58847
70260
  friend class ::ExtACSyntaxCoupling;
58848
70261
  friend class ::ExtACTree;
58849
70262
  friend class ::ExtACKeywords;
58850
 
  friend class ::WinAsm;
58851
 
  friend class ::WinDeclSpecs;
58852
 
  friend class ::WinMemberExplSpec;
58853
 
  friend class ::WinTypeKeywords;
 
70263
  friend class ::ExtGnu;
58854
70264
  friend class ::PragmaOnceUnitState;
58855
70265
  friend class ::PragmaOnce;
58856
 
  friend class ::CCExprResolve;
58857
 
  friend class ::CExprResolve;
 
70266
  friend class ::CMatchSyntax;
58858
70267
 
58859
 
#line 225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70268
#line 323 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58860
70269
 
58861
70270
  Token *_token;
58862
70271
  unsigned long int _number;
58863
70272
  
58864
70273
public:
58865
 
  CT_Token (Token *t, unsigned long int n = 0) : 
58866
 
    _token (t), _number (n) {}
 
70274
  /** Constructor. 
 
70275
   *  \param token The represented token.
 
70276
   *  \param number The token number (a consecutive number). */
 
70277
  CT_Token (Token *token, unsigned long int number = 0) : 
 
70278
    _token (token), _number (number) {}
 
70279
  /** Get the identifier for this node type. Can be compared with NodeName(). */
58867
70280
  static const char *NodeId ();
 
70281
  /** Get the name of the node. Can be compared with NodeId(). */
58868
70282
  const char *NodeName () const { return NodeId (); }
 
70283
  /** Get the number of sons. */
58869
70284
  int Sons () const { return 0; }
 
70285
  /** Get the represented token. */
58870
70286
  Token *token () const { return _token; }
 
70287
  /** Get the represented token. */
58871
70288
  Token *end_token () const { return _token; }
 
70289
  /** Get this. */
58872
70290
  CT_Token *token_node () const { return (CT_Token*)this; }
 
70291
  /** Get this. */
58873
70292
  CT_Token *end_token_node () const { return (CT_Token*)this; }
58874
 
  void Number (unsigned long int n) { _number = n; }
 
70293
  /** Set the token number. 
 
70294
   *  \param number The token number. */ 
 
70295
  void Number (unsigned long int number) { _number = number; }
 
70296
  /** Get the token number. Can be used to indentify this token. */
58875
70297
  unsigned long int Number () const { return _number; }
58876
 
  // special new / delete with reusing memory
 
70298
  
 
70299
public:
 
70300
  /** Own new operator reusing memory. */
58877
70301
  void *operator new (size_t);
58878
 
  void  operator delete (void *);
 
70302
  /** Own delete operator. */
 
70303
  void operator delete (void *);
58879
70304
};
58880
70305
 
58881
70306
/*****************************************************************************/
58884
70309
/*                                                                           */
58885
70310
/*****************************************************************************/
58886
70311
 
 
70312
/** \class CT_List CTree.h Puma/CTree.h
 
70313
 *  Base class for tree nodes representing lists. */
58887
70314
 
58888
 
#line 58889 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70315
#line 70316 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
58889
70316
} // closed Puma
 
70317
class CCExprResolve;
 
70318
class CExprResolve;
58890
70319
class WinIfExists;
58891
70320
class WinImportHandler;
58892
70321
class WinMacros;
58893
 
class CMatchSyntax;
58894
 
class ExtGnu;
 
70322
class WinAsm;
 
70323
class WinDeclSpecs;
 
70324
class WinMemberExplSpec;
 
70325
class WinTypeKeywords;
 
70326
class WinFriend;
58895
70327
class ExtAC;
58896
70328
class ExtACBuilderCoupling;
58897
70329
class ExtACSyntaxCoupling;
58898
70330
class ExtACTree;
58899
70331
class ExtACKeywords;
58900
 
class WinAsm;
58901
 
class WinDeclSpecs;
58902
 
class WinMemberExplSpec;
58903
 
class WinTypeKeywords;
 
70332
class ExtGnu;
58904
70333
class PragmaOnceUnitState;
58905
70334
class PragmaOnce;
58906
 
class CCExprResolve;
58907
 
class CExprResolve;
 
70335
class CMatchSyntax;
58908
70336
namespace Puma {
58909
70337
 
58910
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70338
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58911
70339
class CT_List : public CTree {
58912
 
#line 58913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70340
#line 70341 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
70341
  friend class ::CCExprResolve;
 
70342
  friend class ::CExprResolve;
58913
70343
  friend class ::WinIfExists;
58914
70344
  friend class ::WinImportHandler;
58915
70345
  friend class ::WinMacros;
58916
 
  friend class ::CMatchSyntax;
58917
 
  friend class ::ExtGnu;
 
70346
  friend class ::WinAsm;
 
70347
  friend class ::WinDeclSpecs;
 
70348
  friend class ::WinMemberExplSpec;
 
70349
  friend class ::WinTypeKeywords;
 
70350
  friend class ::WinFriend;
58918
70351
  friend class ::ExtAC;
58919
70352
  friend class ::ExtACBuilderCoupling;
58920
70353
  friend class ::ExtACSyntaxCoupling;
58921
70354
  friend class ::ExtACTree;
58922
70355
  friend class ::ExtACKeywords;
58923
 
  friend class ::WinAsm;
58924
 
  friend class ::WinDeclSpecs;
58925
 
  friend class ::WinMemberExplSpec;
58926
 
  friend class ::WinTypeKeywords;
 
70356
  friend class ::ExtGnu;
58927
70357
  friend class ::PragmaOnceUnitState;
58928
70358
  friend class ::PragmaOnce;
58929
 
  friend class ::CCExprResolve;
58930
 
  friend class ::CExprResolve;
 
70359
  friend class ::CMatchSyntax;
58931
70360
 
58932
 
#line 252 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70361
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58933
70362
 
58934
70363
  Array<CTree*> _sons;
58935
70364
  int _properties;
58936
70365
 
58937
70366
protected:
 
70367
  /** Constructor.
 
70368
   *  \param size The initial list size.
 
70369
   *  \param incr The initial increment count. 
 
70370
   *  \param props The list properties (bit array). */
58938
70371
  CT_List(int size = 5, int incr = 5, int props = 0) : 
58939
70372
    _sons (size, incr), _properties (props) {}
58940
70373
 
58941
70374
public:
 
70375
  /** List properties. */
58942
70376
  enum {
58943
 
    OPEN = 1,         // has a start token like ':' in ":a(1),b(2)"
58944
 
    CLOSE = 2,
58945
 
    OPEN_CLOSE = 3,   // has opening and closing delimiters, e.g. '(' ')'
58946
 
    SEPARATORS = 4,   // the list has separators like ','
58947
 
    FORCE_EMPTY = 8,  // pretend to be empty, e.g. for "(void)"
58948
 
    END_SEP = 16,     // has separator after last element, e.g. "a,b,c,"
58949
 
    NO_LAST_SEP = 32, // no separator before last element, e.g. "(a,b...)"
58950
 
    INTRO = 64        // has an introduction char, e.g. "=" in "={a,b}"
 
70377
    OPEN = 1,         /** List has a start token, like ':' in ":a(1),b(2)" */
 
70378
    CLOSE = 2,        /** List has an end token */
 
70379
    OPEN_CLOSE = 3,   /** List has opening and closing delimiters, like '(' and ')' */
 
70380
    SEPARATORS = 4,   /** List has separators, like ',' */
 
70381
    FORCE_EMPTY = 8,  /** List pretend to be empty, e.g. for "(void)" */
 
70382
    END_SEP = 16,     /** List has trailing separator, e.g. "a,b,c," */
 
70383
    NO_LAST_SEP = 32, /** List has no separator before last element, e.g. "(a,b...)" */
 
70384
    INTRO = 64        /** List has an introduction chararacter, e.g. "=" in "={a,b}" */
58951
70385
  };
58952
70386
 
 
70387
  /** Get the number of list entries. */
58953
70388
  int Entries () const;
58954
 
  CTree *Entry (int no) const;
 
70389
  /** Get the n-th list entry.
 
70390
   *  \param n The index of the entry. 
 
70391
   *  \return The list entry or NULL. */
 
70392
  CTree *Entry (int n) const;
 
70393
  /** Get the number of sons. */
58955
70394
  int Sons () const { return _sons.length (); }
 
70395
  /** Get the n-th son.
 
70396
   *  \param n The index of the son. 
 
70397
   *  \return The n-th son or NULL. */
58956
70398
  CTree *Son (int n) const { return _sons.lookup (n); }
 
70399
  /** Get the list properties. */
58957
70400
  int GetProperties () const { return _properties; }
 
70401
  /** Add a list property.
 
70402
   *  \param p The property to add. */
58958
70403
  void AddProperties (int p) { _properties |= p; }
58959
 
  void AddSon (CTree *s) { if (s) _sons.append (s); }
58960
 
  void PrefixSon (CTree *s) { if (s) _sons.prepend (s); }
58961
 
  void InsertSon (CTree *, CTree *);  // before given son
58962
 
  void ReplaceSon (CTree *, CTree *);
58963
 
  void RemoveSon (CTree *);
 
70404
  /** Add a son.
 
70405
   *  \param s The son to add. */
 
70406
  void AddSon (CTree *s) { if (s) { _sons.append (s); SetParent (s, this); } }
 
70407
  /** Prepend a son.
 
70408
   *  \param s The son to prepend. */
 
70409
  void PrefixSon (CTree *s) { if (s) { _sons.prepend (s); SetParent (s, this); } }
 
70410
  /** Insert a son before another son.
 
70411
   *  \param before The son to insert the new son before.
 
70412
   *  \param son The son to insert. */
 
70413
  void InsertSon (CTree *before, CTree *son); 
 
70414
  /** Replace a son.
 
70415
   *  \param old_son The son to replace.
 
70416
   *  \param new_son The new son. */
 
70417
  void ReplaceSon (CTree *old_son, CTree *new_son);
 
70418
  /** Remove a son.
 
70419
   *  \param son The son to remove. */
 
70420
  void RemoveSon (CTree *son);
 
70421
  /** Insert a son at the given index. 
 
70422
   *  \param idx The index at which to insert.
 
70423
   *  \param s The son to insert. */
58964
70424
  void InsertSon (int idx, CTree *s)
58965
 
   { if (idx <= Sons ()) _sons.insert (idx, s); }
 
70425
   { if (s && idx <= Sons ()) { _sons.insert (idx, s); SetParent (s, this); } }
 
70426
  /** Replace the son at the given index.
 
70427
   *  \param idx The index of the son to replace.
 
70428
   *  \param s The new son. */
58966
70429
  void ReplaceSon (int idx, CTree *s) 
58967
 
   { if (idx < Sons ()) _sons[idx] = s; }
 
70430
   { if (s && idx < Sons ()) { SetParent (_sons[idx], 0); _sons[idx] = s; SetParent (s, this); } }
 
70431
  /** Remove the son at the given index. 
 
70432
   *  \param idx The index of the son to remove. */
58968
70433
  void RemoveSon (int idx) 
58969
 
   { if (idx < Sons ()) _sons.remove (idx); }
 
70434
   { if (idx < Sons ()) { SetParent (_sons[idx], 0); _sons.remove (idx); } }
58970
70435
};
58971
70436
 
 
70437
/** \class CT_ExprList CTree.h Puma/CTree.h
 
70438
 *  Tree node representing an expression list. */
58972
70439
 
58973
 
#line 58974 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70440
#line 70441 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
58974
70441
} // closed Puma
 
70442
class CCExprResolve;
 
70443
class CExprResolve;
58975
70444
class WinIfExists;
58976
70445
class WinImportHandler;
58977
70446
class WinMacros;
58978
 
class CMatchSyntax;
58979
 
class ExtGnu;
 
70447
class WinAsm;
 
70448
class WinDeclSpecs;
 
70449
class WinMemberExplSpec;
 
70450
class WinTypeKeywords;
 
70451
class WinFriend;
58980
70452
class ExtAC;
58981
70453
class ExtACBuilderCoupling;
58982
70454
class ExtACSyntaxCoupling;
58983
70455
class ExtACTree;
58984
70456
class ExtACKeywords;
58985
 
class WinAsm;
58986
 
class WinDeclSpecs;
58987
 
class WinMemberExplSpec;
58988
 
class WinTypeKeywords;
 
70457
class ExtGnu;
58989
70458
class PragmaOnceUnitState;
58990
70459
class PragmaOnce;
58991
 
class CCExprResolve;
58992
 
class CExprResolve;
 
70460
class CMatchSyntax;
58993
70461
namespace Puma {
58994
70462
 
58995
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70463
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
58996
70464
class CT_ExprList : public CT_List, public CSemValue, public CSemObject {
58997
 
#line 58998 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70465
#line 70466 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
70466
  friend class ::CCExprResolve;
 
70467
  friend class ::CExprResolve;
58998
70468
  friend class ::WinIfExists;
58999
70469
  friend class ::WinImportHandler;
59000
70470
  friend class ::WinMacros;
59001
 
  friend class ::CMatchSyntax;
59002
 
  friend class ::ExtGnu;
 
70471
  friend class ::WinAsm;
 
70472
  friend class ::WinDeclSpecs;
 
70473
  friend class ::WinMemberExplSpec;
 
70474
  friend class ::WinTypeKeywords;
 
70475
  friend class ::WinFriend;
59003
70476
  friend class ::ExtAC;
59004
70477
  friend class ::ExtACBuilderCoupling;
59005
70478
  friend class ::ExtACSyntaxCoupling;
59006
70479
  friend class ::ExtACTree;
59007
70480
  friend class ::ExtACKeywords;
59008
 
  friend class ::WinAsm;
59009
 
  friend class ::WinDeclSpecs;
59010
 
  friend class ::WinMemberExplSpec;
59011
 
  friend class ::WinTypeKeywords;
 
70481
  friend class ::ExtGnu;
59012
70482
  friend class ::PragmaOnceUnitState;
59013
70483
  friend class ::PragmaOnce;
59014
 
  friend class ::CCExprResolve;
59015
 
  friend class ::CExprResolve;
 
70484
  friend class ::CMatchSyntax;
59016
70485
 
59017
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70486
#line 445 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59018
70487
 
59019
70488
public:
 
70489
  /** Constructor. */
59020
70490
  CT_ExprList () { AddProperties (SEPARATORS); }
 
70491
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59021
70492
  static const char *NodeId ();
 
70493
  /** Get the name of the node. Can be compared with NodeId(). */
59022
70494
  const char *NodeName () const { return NodeId (); }
59023
70495
 
 
70496
  /** Get the type of the last expression in the expression list.
 
70497
   *  \return The type or NULL. */
59024
70498
  CTypeInfo *Type () const { return type; }
 
70499
  /** Get the value of the last expression in the expression list.
 
70500
   *  \return The value of NULL. */
59025
70501
  CExprValue *Value () const { return value; }
 
70502
  /** Get the semantic value of the node. */
59026
70503
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
70504
  /** Get the semantic object of the node. */
59027
70505
  CSemObject *SemObject () const { return (CSemObject*)this; }
59028
70506
};
59029
70507
 
 
70508
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
70509
 *  Tree node representing a list of declarators. */
59030
70510
 
59031
 
#line 59032 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70511
#line 70512 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59032
70512
} // closed Puma
 
70513
class CCExprResolve;
 
70514
class CExprResolve;
59033
70515
class WinIfExists;
59034
70516
class WinImportHandler;
59035
70517
class WinMacros;
59036
 
class CMatchSyntax;
59037
 
class ExtGnu;
 
70518
class WinAsm;
 
70519
class WinDeclSpecs;
 
70520
class WinMemberExplSpec;
 
70521
class WinTypeKeywords;
 
70522
class WinFriend;
59038
70523
class ExtAC;
59039
70524
class ExtACBuilderCoupling;
59040
70525
class ExtACSyntaxCoupling;
59041
70526
class ExtACTree;
59042
70527
class ExtACKeywords;
59043
 
class WinAsm;
59044
 
class WinDeclSpecs;
59045
 
class WinMemberExplSpec;
59046
 
class WinTypeKeywords;
 
70528
class ExtGnu;
59047
70529
class PragmaOnceUnitState;
59048
70530
class PragmaOnce;
59049
 
class CCExprResolve;
59050
 
class CExprResolve;
 
70531
class CMatchSyntax;
59051
70532
namespace Puma {
59052
70533
 
59053
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70534
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59054
70535
class CT_DeclaratorList : public CT_List {
59055
 
#line 59056 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70536
#line 70537 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
70537
  friend class ::CCExprResolve;
 
70538
  friend class ::CExprResolve;
59056
70539
  friend class ::WinIfExists;
59057
70540
  friend class ::WinImportHandler;
59058
70541
  friend class ::WinMacros;
59059
 
  friend class ::CMatchSyntax;
59060
 
  friend class ::ExtGnu;
 
70542
  friend class ::WinAsm;
 
70543
  friend class ::WinDeclSpecs;
 
70544
  friend class ::WinMemberExplSpec;
 
70545
  friend class ::WinTypeKeywords;
 
70546
  friend class ::WinFriend;
59061
70547
  friend class ::ExtAC;
59062
70548
  friend class ::ExtACBuilderCoupling;
59063
70549
  friend class ::ExtACSyntaxCoupling;
59064
70550
  friend class ::ExtACTree;
59065
70551
  friend class ::ExtACKeywords;
59066
 
  friend class ::WinAsm;
59067
 
  friend class ::WinDeclSpecs;
59068
 
  friend class ::WinMemberExplSpec;
59069
 
  friend class ::WinTypeKeywords;
 
70552
  friend class ::ExtGnu;
59070
70553
  friend class ::PragmaOnceUnitState;
59071
70554
  friend class ::PragmaOnce;
59072
 
  friend class ::CCExprResolve;
59073
 
  friend class ::CExprResolve;
 
70555
  friend class ::CMatchSyntax;
59074
70556
 
59075
 
#line 303 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70557
#line 468 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59076
70558
 
59077
70559
public:
 
70560
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59078
70561
  static const char *NodeId ();
 
70562
  /** Get the name of the node. Can be compared with NodeId(). */
59079
70563
  const char *NodeName () const { return NodeId (); }
59080
70564
};
59081
70565
 
 
70566
/** \class CT_DeclaratorList CTree.h Puma/CTree.h
 
70567
 *  Tree node representing a list of enumerator constants. */
59082
70568
 
59083
 
#line 59084 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70569
#line 70570 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59084
70570
} // closed Puma
 
70571
class CCExprResolve;
 
70572
class CExprResolve;
59085
70573
class WinIfExists;
59086
70574
class WinImportHandler;
59087
70575
class WinMacros;
59088
 
class CMatchSyntax;
59089
 
class ExtGnu;
 
70576
class WinAsm;
 
70577
class WinDeclSpecs;
 
70578
class WinMemberExplSpec;
 
70579
class WinTypeKeywords;
 
70580
class WinFriend;
59090
70581
class ExtAC;
59091
70582
class ExtACBuilderCoupling;
59092
70583
class ExtACSyntaxCoupling;
59093
70584
class ExtACTree;
59094
70585
class ExtACKeywords;
59095
 
class WinAsm;
59096
 
class WinDeclSpecs;
59097
 
class WinMemberExplSpec;
59098
 
class WinTypeKeywords;
 
70586
class ExtGnu;
59099
70587
class PragmaOnceUnitState;
59100
70588
class PragmaOnce;
59101
 
class CCExprResolve;
59102
 
class CExprResolve;
 
70589
class CMatchSyntax;
59103
70590
namespace Puma {
59104
70591
 
59105
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70592
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59106
70593
class CT_EnumeratorList : public CT_List {
59107
 
#line 59108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70594
#line 70595 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
70595
  friend class ::CCExprResolve;
 
70596
  friend class ::CExprResolve;
59108
70597
  friend class ::WinIfExists;
59109
70598
  friend class ::WinImportHandler;
59110
70599
  friend class ::WinMacros;
59111
 
  friend class ::CMatchSyntax;
59112
 
  friend class ::ExtGnu;
 
70600
  friend class ::WinAsm;
 
70601
  friend class ::WinDeclSpecs;
 
70602
  friend class ::WinMemberExplSpec;
 
70603
  friend class ::WinTypeKeywords;
 
70604
  friend class ::WinFriend;
59113
70605
  friend class ::ExtAC;
59114
70606
  friend class ::ExtACBuilderCoupling;
59115
70607
  friend class ::ExtACSyntaxCoupling;
59116
70608
  friend class ::ExtACTree;
59117
70609
  friend class ::ExtACKeywords;
59118
 
  friend class ::WinAsm;
59119
 
  friend class ::WinDeclSpecs;
59120
 
  friend class ::WinMemberExplSpec;
59121
 
  friend class ::WinTypeKeywords;
 
70610
  friend class ::ExtGnu;
59122
70611
  friend class ::PragmaOnceUnitState;
59123
70612
  friend class ::PragmaOnce;
59124
 
  friend class ::CCExprResolve;
59125
 
  friend class ::CExprResolve;
 
70613
  friend class ::CMatchSyntax;
59126
70614
 
59127
 
#line 309 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70615
#line 478 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59128
70616
 
59129
70617
public:
 
70618
  /** Constructor. */
59130
70619
  CT_EnumeratorList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
70620
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59131
70621
  static const char *NodeId ();
 
70622
  /** Get the name of the node. Can be compared with NodeId(). */
59132
70623
  const char *NodeName () const { return NodeId (); }
59133
70624
};
59134
70625
   
 
70626
/** \class CT_DeclList CTree.h Puma/CTree.h
 
70627
 *  Tree node representing a list of declarations. */
59135
70628
 
59136
 
#line 59137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70629
#line 70630 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59137
70630
} // closed Puma
 
70631
class CCExprResolve;
 
70632
class CExprResolve;
59138
70633
class WinIfExists;
59139
70634
class WinImportHandler;
59140
70635
class WinMacros;
59141
 
class CMatchSyntax;
59142
 
class ExtGnu;
 
70636
class WinAsm;
 
70637
class WinDeclSpecs;
 
70638
class WinMemberExplSpec;
 
70639
class WinTypeKeywords;
 
70640
class WinFriend;
59143
70641
class ExtAC;
59144
70642
class ExtACBuilderCoupling;
59145
70643
class ExtACSyntaxCoupling;
59146
70644
class ExtACTree;
59147
70645
class ExtACKeywords;
59148
 
class WinAsm;
59149
 
class WinDeclSpecs;
59150
 
class WinMemberExplSpec;
59151
 
class WinTypeKeywords;
 
70646
class ExtGnu;
59152
70647
class PragmaOnceUnitState;
59153
70648
class PragmaOnce;
59154
 
class CCExprResolve;
59155
 
class CExprResolve;
 
70649
class CMatchSyntax;
59156
70650
namespace Puma {
59157
70651
 
59158
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70652
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59159
70653
class CT_DeclList : public CT_List {
59160
 
#line 59161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70654
#line 70655 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
70655
  friend class ::CCExprResolve;
 
70656
  friend class ::CExprResolve;
59161
70657
  friend class ::WinIfExists;
59162
70658
  friend class ::WinImportHandler;
59163
70659
  friend class ::WinMacros;
59164
 
  friend class ::CMatchSyntax;
59165
 
  friend class ::ExtGnu;
 
70660
  friend class ::WinAsm;
 
70661
  friend class ::WinDeclSpecs;
 
70662
  friend class ::WinMemberExplSpec;
 
70663
  friend class ::WinTypeKeywords;
 
70664
  friend class ::WinFriend;
59166
70665
  friend class ::ExtAC;
59167
70666
  friend class ::ExtACBuilderCoupling;
59168
70667
  friend class ::ExtACSyntaxCoupling;
59169
70668
  friend class ::ExtACTree;
59170
70669
  friend class ::ExtACKeywords;
59171
 
  friend class ::WinAsm;
59172
 
  friend class ::WinDeclSpecs;
59173
 
  friend class ::WinMemberExplSpec;
59174
 
  friend class ::WinTypeKeywords;
 
70670
  friend class ::ExtGnu;
59175
70671
  friend class ::PragmaOnceUnitState;
59176
70672
  friend class ::PragmaOnce;
59177
 
  friend class ::CCExprResolve;
59178
 
  friend class ::CExprResolve;
 
70673
  friend class ::CMatchSyntax;
59179
70674
 
59180
 
#line 316 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70675
#line 490 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59181
70676
 
59182
70677
public:
 
70678
  /** Constructor. 
 
70679
   *  \param size The initial size of the list.
 
70680
   *  \param incr The initial increment count of the list. */
59183
70681
  CT_DeclList (int size = 20, int incr = 20) : CT_List (size, incr) {}
 
70682
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59184
70683
  static const char *NodeId ();
 
70684
  /** Get the name of the node. Can be compared with NodeId(). */
59185
70685
  const char *NodeName () const { return NodeId (); }
 
70686
  /** Set the linkage specifiers to each declaration in the list.
 
70687
   *  \param l The linkage specifiers node. */
59186
70688
  void Linkage (CT_LinkageSpec *l);
59187
70689
};
59188
70690
 
 
70691
/** \class CT_DeclSpecSeq CTree.h Puma/CTree.h
 
70692
 *  Tree node representing a sequence of declaration specifiers. */
59189
70693
 
59190
 
#line 59191 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70694
#line 70695 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59191
70695
} // closed Puma
 
70696
class CCExprResolve;
 
70697
class CExprResolve;
59192
70698
class WinIfExists;
59193
70699
class WinImportHandler;
59194
70700
class WinMacros;
59195
 
class CMatchSyntax;
59196
 
class ExtGnu;
 
70701
class WinAsm;
 
70702
class WinDeclSpecs;
 
70703
class WinMemberExplSpec;
 
70704
class WinTypeKeywords;
 
70705
class WinFriend;
59197
70706
class ExtAC;
59198
70707
class ExtACBuilderCoupling;
59199
70708
class ExtACSyntaxCoupling;
59200
70709
class ExtACTree;
59201
70710
class ExtACKeywords;
59202
 
class WinAsm;
59203
 
class WinDeclSpecs;
59204
 
class WinMemberExplSpec;
59205
 
class WinTypeKeywords;
 
70711
class ExtGnu;
59206
70712
class PragmaOnceUnitState;
59207
70713
class PragmaOnce;
59208
 
class CCExprResolve;
59209
 
class CExprResolve;
 
70714
class CMatchSyntax;
59210
70715
namespace Puma {
59211
70716
 
59212
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70717
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59213
70718
class CT_DeclSpecSeq : public CT_List {
59214
 
#line 59215 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70719
#line 70720 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
70720
  friend class ::CCExprResolve;
 
70721
  friend class ::CExprResolve;
59215
70722
  friend class ::WinIfExists;
59216
70723
  friend class ::WinImportHandler;
59217
70724
  friend class ::WinMacros;
59218
 
  friend class ::CMatchSyntax;
59219
 
  friend class ::ExtGnu;
 
70725
  friend class ::WinAsm;
 
70726
  friend class ::WinDeclSpecs;
 
70727
  friend class ::WinMemberExplSpec;
 
70728
  friend class ::WinTypeKeywords;
 
70729
  friend class ::WinFriend;
59220
70730
  friend class ::ExtAC;
59221
70731
  friend class ::ExtACBuilderCoupling;
59222
70732
  friend class ::ExtACSyntaxCoupling;
59223
70733
  friend class ::ExtACTree;
59224
70734
  friend class ::ExtACKeywords;
59225
 
  friend class ::WinAsm;
59226
 
  friend class ::WinDeclSpecs;
59227
 
  friend class ::WinMemberExplSpec;
59228
 
  friend class ::WinTypeKeywords;
 
70735
  friend class ::ExtGnu;
59229
70736
  friend class ::PragmaOnceUnitState;
59230
70737
  friend class ::PragmaOnce;
59231
 
  friend class ::CCExprResolve;
59232
 
  friend class ::CExprResolve;
 
70738
  friend class ::CMatchSyntax;
59233
70739
 
59234
 
#line 324 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70740
#line 507 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59235
70741
 
59236
70742
public:
 
70743
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59237
70744
  static const char *NodeId ();
 
70745
  /** Get the name of the node. Can be compared with NodeId(). */
59238
70746
  const char *NodeName () const { return NodeId (); }
59239
70747
};
59240
70748
 
 
70749
/** \class CT_CmpdStmt CTree.h Puma/CTree.h
 
70750
 *  Tree node representing a compound statement. */
59241
70751
 
59242
 
#line 59243 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70752
#line 70753 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59243
70753
} // closed Puma
 
70754
class CCExprResolve;
 
70755
class CExprResolve;
59244
70756
class WinIfExists;
59245
70757
class WinImportHandler;
59246
70758
class WinMacros;
59247
 
class CMatchSyntax;
59248
 
class ExtGnu;
 
70759
class WinAsm;
 
70760
class WinDeclSpecs;
 
70761
class WinMemberExplSpec;
 
70762
class WinTypeKeywords;
 
70763
class WinFriend;
59249
70764
class ExtAC;
59250
70765
class ExtACBuilderCoupling;
59251
70766
class ExtACSyntaxCoupling;
59252
70767
class ExtACTree;
59253
70768
class ExtACKeywords;
59254
 
class WinAsm;
59255
 
class WinDeclSpecs;
59256
 
class WinMemberExplSpec;
59257
 
class WinTypeKeywords;
 
70769
class ExtGnu;
59258
70770
class PragmaOnceUnitState;
59259
70771
class PragmaOnce;
59260
 
class CCExprResolve;
59261
 
class CExprResolve;
 
70772
class CMatchSyntax;
59262
70773
namespace Puma {
59263
70774
 
59264
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70775
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59265
70776
class CT_CmpdStmt : public CT_List, public CSemScope {
59266
 
#line 59267 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70777
#line 70778 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
70778
  friend class ::CCExprResolve;
 
70779
  friend class ::CExprResolve;
59267
70780
  friend class ::WinIfExists;
59268
70781
  friend class ::WinImportHandler;
59269
70782
  friend class ::WinMacros;
59270
 
  friend class ::CMatchSyntax;
59271
 
  friend class ::ExtGnu;
 
70783
  friend class ::WinAsm;
 
70784
  friend class ::WinDeclSpecs;
 
70785
  friend class ::WinMemberExplSpec;
 
70786
  friend class ::WinTypeKeywords;
 
70787
  friend class ::WinFriend;
59272
70788
  friend class ::ExtAC;
59273
70789
  friend class ::ExtACBuilderCoupling;
59274
70790
  friend class ::ExtACSyntaxCoupling;
59275
70791
  friend class ::ExtACTree;
59276
70792
  friend class ::ExtACKeywords;
59277
 
  friend class ::WinAsm;
59278
 
  friend class ::WinDeclSpecs;
59279
 
  friend class ::WinMemberExplSpec;
59280
 
  friend class ::WinTypeKeywords;
 
70793
  friend class ::ExtGnu;
59281
70794
  friend class ::PragmaOnceUnitState;
59282
70795
  friend class ::PragmaOnce;
59283
 
  friend class ::CCExprResolve;
59284
 
  friend class ::CExprResolve;
 
70796
  friend class ::CMatchSyntax;
59285
70797
 
59286
 
#line 330 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70798
#line 517 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59287
70799
 
59288
70800
public:
 
70801
  /* Constructor. */
59289
70802
  CT_CmpdStmt () { AddProperties (OPEN_CLOSE); }
 
70803
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59290
70804
  static const char *NodeId ();
 
70805
  /** Get the name of the node. Can be compared with NodeId(). */
59291
70806
  const char *NodeName () const { return NodeId (); }
 
70807
  /** Get the local scope of the compound statement. */
 
70808
  CSemScope *SemScope () const { return (CSemScope*)this; }
59292
70809
};
59293
70810
 
 
70811
/** \class CT_HandlerSeq CTree.h Puma/CTree.h
 
70812
 *  Tree node representing an exception handler sequence. */
59294
70813
 
59295
 
#line 59296 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70814
#line 70815 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59296
70815
} // closed Puma
 
70816
class CCExprResolve;
 
70817
class CExprResolve;
59297
70818
class WinIfExists;
59298
70819
class WinImportHandler;
59299
70820
class WinMacros;
59300
 
class CMatchSyntax;
59301
 
class ExtGnu;
 
70821
class WinAsm;
 
70822
class WinDeclSpecs;
 
70823
class WinMemberExplSpec;
 
70824
class WinTypeKeywords;
 
70825
class WinFriend;
59302
70826
class ExtAC;
59303
70827
class ExtACBuilderCoupling;
59304
70828
class ExtACSyntaxCoupling;
59305
70829
class ExtACTree;
59306
70830
class ExtACKeywords;
59307
 
class WinAsm;
59308
 
class WinDeclSpecs;
59309
 
class WinMemberExplSpec;
59310
 
class WinTypeKeywords;
 
70831
class ExtGnu;
59311
70832
class PragmaOnceUnitState;
59312
70833
class PragmaOnce;
59313
 
class CCExprResolve;
59314
 
class CExprResolve;
 
70834
class CMatchSyntax;
59315
70835
namespace Puma {
59316
70836
 
59317
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70837
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59318
70838
class CT_HandlerSeq : public CT_List {
59319
 
#line 59320 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70839
#line 70840 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
70840
  friend class ::CCExprResolve;
 
70841
  friend class ::CExprResolve;
59320
70842
  friend class ::WinIfExists;
59321
70843
  friend class ::WinImportHandler;
59322
70844
  friend class ::WinMacros;
59323
 
  friend class ::CMatchSyntax;
59324
 
  friend class ::ExtGnu;
 
70845
  friend class ::WinAsm;
 
70846
  friend class ::WinDeclSpecs;
 
70847
  friend class ::WinMemberExplSpec;
 
70848
  friend class ::WinTypeKeywords;
 
70849
  friend class ::WinFriend;
59325
70850
  friend class ::ExtAC;
59326
70851
  friend class ::ExtACBuilderCoupling;
59327
70852
  friend class ::ExtACSyntaxCoupling;
59328
70853
  friend class ::ExtACTree;
59329
70854
  friend class ::ExtACKeywords;
59330
 
  friend class ::WinAsm;
59331
 
  friend class ::WinDeclSpecs;
59332
 
  friend class ::WinMemberExplSpec;
59333
 
  friend class ::WinTypeKeywords;
 
70855
  friend class ::ExtGnu;
59334
70856
  friend class ::PragmaOnceUnitState;
59335
70857
  friend class ::PragmaOnce;
59336
 
  friend class ::CCExprResolve;
59337
 
  friend class ::CExprResolve;
 
70858
  friend class ::CMatchSyntax;
59338
70859
 
59339
 
#line 337 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70860
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59340
70861
 
59341
70862
public:
 
70863
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59342
70864
  static const char *NodeId ();
 
70865
  /** Get the name of the node. Can be compared with NodeId(). */
59343
70866
  const char *NodeName () const { return NodeId (); }
59344
70867
};
59345
70868
 
 
70869
/** \class CT_TemplateParamList CTree.h Puma/CTree.h
 
70870
 *  Tree node representing a template parameter list. */
59346
70871
 
59347
 
#line 59348 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70872
#line 70873 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59348
70873
} // closed Puma
 
70874
class CCExprResolve;
 
70875
class CExprResolve;
59349
70876
class WinIfExists;
59350
70877
class WinImportHandler;
59351
70878
class WinMacros;
59352
 
class CMatchSyntax;
59353
 
class ExtGnu;
 
70879
class WinAsm;
 
70880
class WinDeclSpecs;
 
70881
class WinMemberExplSpec;
 
70882
class WinTypeKeywords;
 
70883
class WinFriend;
59354
70884
class ExtAC;
59355
70885
class ExtACBuilderCoupling;
59356
70886
class ExtACSyntaxCoupling;
59357
70887
class ExtACTree;
59358
70888
class ExtACKeywords;
59359
 
class WinAsm;
59360
 
class WinDeclSpecs;
59361
 
class WinMemberExplSpec;
59362
 
class WinTypeKeywords;
 
70889
class ExtGnu;
59363
70890
class PragmaOnceUnitState;
59364
70891
class PragmaOnce;
59365
 
class CCExprResolve;
59366
 
class CExprResolve;
 
70892
class CMatchSyntax;
59367
70893
namespace Puma {
59368
70894
 
59369
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70895
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59370
70896
class CT_TemplateParamList : public CT_List, public CSemScope {
59371
 
#line 59372 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70897
#line 70898 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
70898
  friend class ::CCExprResolve;
 
70899
  friend class ::CExprResolve;
59372
70900
  friend class ::WinIfExists;
59373
70901
  friend class ::WinImportHandler;
59374
70902
  friend class ::WinMacros;
59375
 
  friend class ::CMatchSyntax;
59376
 
  friend class ::ExtGnu;
 
70903
  friend class ::WinAsm;
 
70904
  friend class ::WinDeclSpecs;
 
70905
  friend class ::WinMemberExplSpec;
 
70906
  friend class ::WinTypeKeywords;
 
70907
  friend class ::WinFriend;
59377
70908
  friend class ::ExtAC;
59378
70909
  friend class ::ExtACBuilderCoupling;
59379
70910
  friend class ::ExtACSyntaxCoupling;
59380
70911
  friend class ::ExtACTree;
59381
70912
  friend class ::ExtACKeywords;
59382
 
  friend class ::WinAsm;
59383
 
  friend class ::WinDeclSpecs;
59384
 
  friend class ::WinMemberExplSpec;
59385
 
  friend class ::WinTypeKeywords;
 
70913
  friend class ::ExtGnu;
59386
70914
  friend class ::PragmaOnceUnitState;
59387
70915
  friend class ::PragmaOnce;
59388
 
  friend class ::CCExprResolve;
59389
 
  friend class ::CExprResolve;
 
70916
  friend class ::CMatchSyntax;
59390
70917
 
59391
 
#line 343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70918
#line 541 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59392
70919
 
59393
70920
public:
59394
70921
  CT_TemplateParamList () { AddProperties (INTRO | SEPARATORS | OPEN_CLOSE); }
 
70922
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59395
70923
  static const char *NodeId ();
 
70924
  /** Get the name of the node. Can be compared with NodeId(). */
59396
70925
  const char *NodeName () const { return NodeId (); }
 
70926
  /** Get the scope of the template parameter list. */
 
70927
  CSemScope *SemScope () const { return (CSemScope*)this; }
59397
70928
};
59398
70929
 
 
70930
/** \class CT_TemplateArgList CTree.h Puma/CTree.h
 
70931
 *  Tree node representing a template argument list. */
59399
70932
 
59400
 
#line 59401 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70933
#line 70934 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59401
70934
} // closed Puma
 
70935
class CCExprResolve;
 
70936
class CExprResolve;
59402
70937
class WinIfExists;
59403
70938
class WinImportHandler;
59404
70939
class WinMacros;
59405
 
class CMatchSyntax;
59406
 
class ExtGnu;
 
70940
class WinAsm;
 
70941
class WinDeclSpecs;
 
70942
class WinMemberExplSpec;
 
70943
class WinTypeKeywords;
 
70944
class WinFriend;
59407
70945
class ExtAC;
59408
70946
class ExtACBuilderCoupling;
59409
70947
class ExtACSyntaxCoupling;
59410
70948
class ExtACTree;
59411
70949
class ExtACKeywords;
59412
 
class WinAsm;
59413
 
class WinDeclSpecs;
59414
 
class WinMemberExplSpec;
59415
 
class WinTypeKeywords;
 
70950
class ExtGnu;
59416
70951
class PragmaOnceUnitState;
59417
70952
class PragmaOnce;
59418
 
class CCExprResolve;
59419
 
class CExprResolve;
 
70953
class CMatchSyntax;
59420
70954
namespace Puma {
59421
70955
 
59422
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70956
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59423
70957
class CT_TemplateArgList : public CT_List {
59424
 
#line 59425 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70958
#line 70959 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
70959
  friend class ::CCExprResolve;
 
70960
  friend class ::CExprResolve;
59425
70961
  friend class ::WinIfExists;
59426
70962
  friend class ::WinImportHandler;
59427
70963
  friend class ::WinMacros;
59428
 
  friend class ::CMatchSyntax;
59429
 
  friend class ::ExtGnu;
 
70964
  friend class ::WinAsm;
 
70965
  friend class ::WinDeclSpecs;
 
70966
  friend class ::WinMemberExplSpec;
 
70967
  friend class ::WinTypeKeywords;
 
70968
  friend class ::WinFriend;
59430
70969
  friend class ::ExtAC;
59431
70970
  friend class ::ExtACBuilderCoupling;
59432
70971
  friend class ::ExtACSyntaxCoupling;
59433
70972
  friend class ::ExtACTree;
59434
70973
  friend class ::ExtACKeywords;
59435
 
  friend class ::WinAsm;
59436
 
  friend class ::WinDeclSpecs;
59437
 
  friend class ::WinMemberExplSpec;
59438
 
  friend class ::WinTypeKeywords;
 
70974
  friend class ::ExtGnu;
59439
70975
  friend class ::PragmaOnceUnitState;
59440
70976
  friend class ::PragmaOnce;
59441
 
  friend class ::CCExprResolve;
59442
 
  friend class ::CExprResolve;
 
70977
  friend class ::CMatchSyntax;
59443
70978
 
59444
 
#line 350 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
70979
#line 554 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59445
70980
 
59446
70981
public:
 
70982
  /** Constructor. */
59447
70983
  CT_TemplateArgList () { AddProperties (SEPARATORS | OPEN_CLOSE); }
 
70984
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59448
70985
  static const char *NodeId ();
 
70986
  /** Get the name of the node. Can be compared with NodeId(). */
59449
70987
  const char *NodeName () const { return NodeId (); }
59450
70988
};
59451
70989
 
59455
70993
/*                                                                           */
59456
70994
/*****************************************************************************/
59457
70995
 
 
70996
/** \class CT_Expression CTree.h Puma/CTree.h
 
70997
 *  Base class for all expression tree nodes. */
59458
70998
 
59459
 
#line 59460 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
70999
#line 71000 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59460
71000
} // closed Puma
 
71001
class CCExprResolve;
 
71002
class CExprResolve;
59461
71003
class WinIfExists;
59462
71004
class WinImportHandler;
59463
71005
class WinMacros;
59464
 
class CMatchSyntax;
59465
 
class ExtGnu;
 
71006
class WinAsm;
 
71007
class WinDeclSpecs;
 
71008
class WinMemberExplSpec;
 
71009
class WinTypeKeywords;
 
71010
class WinFriend;
59466
71011
class ExtAC;
59467
71012
class ExtACBuilderCoupling;
59468
71013
class ExtACSyntaxCoupling;
59469
71014
class ExtACTree;
59470
71015
class ExtACKeywords;
59471
 
class WinAsm;
59472
 
class WinDeclSpecs;
59473
 
class WinMemberExplSpec;
59474
 
class WinTypeKeywords;
 
71016
class ExtGnu;
59475
71017
class PragmaOnceUnitState;
59476
71018
class PragmaOnce;
59477
 
class CCExprResolve;
59478
 
class CExprResolve;
59479
 
namespace Puma {
59480
 
 
59481
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71019
class CMatchSyntax;
 
71020
namespace Puma {
 
71021
 
 
71022
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71023
 
 
71024
#line 71025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71025
} // closed Puma
 
71026
 
 
71027
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71028
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71029
#include "CCExprResolveH.ah"
 
71030
#endif
 
71031
namespace Puma {
 
71032
 
 
71033
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71034
 
 
71035
#line 71036 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71036
} // closed Puma
 
71037
 
 
71038
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71039
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71040
#include "CExprResolveH.ah"
 
71041
#endif
 
71042
namespace Puma {
 
71043
 
 
71044
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59482
71045
class CT_Expression : public CTree, public CSemValue {
59483
 
#line 59484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
71046
#line 71047 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71047
  friend class ::CCExprResolve;
 
71048
  friend class ::CExprResolve;
59484
71049
  friend class ::WinIfExists;
59485
71050
  friend class ::WinImportHandler;
59486
71051
  friend class ::WinMacros;
59487
 
  friend class ::CMatchSyntax;
59488
 
  friend class ::ExtGnu;
 
71052
  friend class ::WinAsm;
 
71053
  friend class ::WinDeclSpecs;
 
71054
  friend class ::WinMemberExplSpec;
 
71055
  friend class ::WinTypeKeywords;
 
71056
  friend class ::WinFriend;
59489
71057
  friend class ::ExtAC;
59490
71058
  friend class ::ExtACBuilderCoupling;
59491
71059
  friend class ::ExtACSyntaxCoupling;
59492
71060
  friend class ::ExtACTree;
59493
71061
  friend class ::ExtACKeywords;
59494
 
  friend class ::WinAsm;
59495
 
  friend class ::WinDeclSpecs;
59496
 
  friend class ::WinMemberExplSpec;
59497
 
  friend class ::WinTypeKeywords;
 
71062
  friend class ::ExtGnu;
59498
71063
  friend class ::PragmaOnceUnitState;
59499
71064
  friend class ::PragmaOnce;
59500
 
  friend class ::CCExprResolve;
59501
 
  friend class ::CExprResolve;
 
71065
  friend class ::CMatchSyntax;
59502
71066
 
59503
 
#line 363 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71067
#line 572 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59504
71068
 
59505
71069
protected:
 
71070
  /** Constructor. */
59506
71071
  CT_Expression () {}
59507
71072
 
59508
71073
public:
 
71074
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59509
71075
  static const char *NodeId ();
 
71076
  /** Get the name of the node. Can be compared with NodeId(). */
59510
71077
  const char *NodeName () const { return NodeId (); }
 
71078
  /** Get the type of the expression.
 
71079
   *  \return The type information object or NULL. */
59511
71080
  CTypeInfo *Type () const { return type; }
 
71081
  /** Get the value of the expression.
 
71082
   *  \return The value object or NULL. */
59512
71083
  CExprValue *Value () const { return value; }
 
71084
  /** Get the semantic value information of the expression.
 
71085
   *  \return The value object or NULL. */
59513
71086
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
71087
  /** Get this. */
 
71088
  virtual CT_Expression *IsExpression () { return this; }
59514
71089
   private:
59515
71090
  typedef CT_Expression CCExprResolveExpr;
59516
71091
 
59517
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71092
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59518
71093
 public :
59519
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71094
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59520
71095
  typedef CT_Expression CExprResolveExpr;
59521
71096
 
59522
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59523
 
 public :
59524
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59525
 
#line 373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59526
 
};
59527
 
 
59528
 
 
59529
 
#line 59530 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
59530
 
} // closed Puma
59531
 
class WinIfExists;
59532
 
class WinImportHandler;
59533
 
class WinMacros;
59534
 
class CMatchSyntax;
59535
 
class ExtGnu;
59536
 
class ExtAC;
59537
 
class ExtACBuilderCoupling;
59538
 
class ExtACSyntaxCoupling;
59539
 
class ExtACTree;
59540
 
class ExtACKeywords;
59541
 
class WinAsm;
59542
 
class WinDeclSpecs;
59543
 
class WinMemberExplSpec;
59544
 
class WinTypeKeywords;
59545
 
class PragmaOnceUnitState;
59546
 
class PragmaOnce;
59547
 
class CCExprResolve;
59548
 
class CExprResolve;
59549
 
namespace Puma {
59550
 
 
59551
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71097
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71098
 public :
 
71099
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71100
#line 593 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71101
};
 
71102
 
 
71103
/** \class CT_Call CTree.h Puma/CTree.h
 
71104
 *  Tree node representing explicit or implicit function calls 
 
71105
 *  including built-in or user-defined functions and overloaded
 
71106
 *  operators. */
 
71107
 
 
71108
#line 71109 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71109
} // closed Puma
 
71110
class CCExprResolve;
 
71111
class CExprResolve;
 
71112
class WinIfExists;
 
71113
class WinImportHandler;
 
71114
class WinMacros;
 
71115
class WinAsm;
 
71116
class WinDeclSpecs;
 
71117
class WinMemberExplSpec;
 
71118
class WinTypeKeywords;
 
71119
class WinFriend;
 
71120
class ExtAC;
 
71121
class ExtACBuilderCoupling;
 
71122
class ExtACSyntaxCoupling;
 
71123
class ExtACTree;
 
71124
class ExtACKeywords;
 
71125
class ExtGnu;
 
71126
class PragmaOnceUnitState;
 
71127
class PragmaOnce;
 
71128
class CMatchSyntax;
 
71129
namespace Puma {
 
71130
 
 
71131
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71132
 
 
71133
#line 71134 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71134
} // closed Puma
 
71135
 
 
71136
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71137
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71138
#include "CCExprResolveH.ah"
 
71139
#endif
 
71140
namespace Puma {
 
71141
 
 
71142
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71143
 
 
71144
#line 71145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71145
} // closed Puma
 
71146
 
 
71147
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71148
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71149
#include "CExprResolveH.ah"
 
71150
#endif
 
71151
namespace Puma {
 
71152
 
 
71153
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71154
class CT_Call : public CT_Expression, public CSemObject {
 
71155
#line 71156 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71156
  friend class ::CCExprResolve;
 
71157
  friend class ::CExprResolve;
 
71158
  friend class ::WinIfExists;
 
71159
  friend class ::WinImportHandler;
 
71160
  friend class ::WinMacros;
 
71161
  friend class ::WinAsm;
 
71162
  friend class ::WinDeclSpecs;
 
71163
  friend class ::WinMemberExplSpec;
 
71164
  friend class ::WinTypeKeywords;
 
71165
  friend class ::WinFriend;
 
71166
  friend class ::ExtAC;
 
71167
  friend class ::ExtACBuilderCoupling;
 
71168
  friend class ::ExtACSyntaxCoupling;
 
71169
  friend class ::ExtACTree;
 
71170
  friend class ::ExtACKeywords;
 
71171
  friend class ::ExtGnu;
 
71172
  friend class ::PragmaOnceUnitState;
 
71173
  friend class ::PragmaOnce;
 
71174
  friend class ::CMatchSyntax;
 
71175
 
 
71176
#line 599 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71177
 
 
71178
protected:
 
71179
  /** Constructor. */
 
71180
  CT_Call () {}
 
71181
  
 
71182
public:
 
71183
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
71184
  static const char *NodeId ();
 
71185
  /** Get the name of the node. Can be compared with NodeId(). */
 
71186
  const char *NodeName () const { return NodeId (); }
 
71187
  /** Get the semantic information of the call.
 
71188
   *  \return The semantic information or NULL. */
 
71189
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
71190
  /** Get this. */
 
71191
  CT_Call *IsCall () { return this; }
 
71192
   private:
 
71193
  typedef CT_Call CCExprResolveExpr;
 
71194
 
 
71195
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71196
 public :
 
71197
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
71198
  typedef CT_Call CExprResolveExpr;
 
71199
 
 
71200
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71201
 public :
 
71202
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71203
#line 614 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71204
};
 
71205
 
 
71206
/** \class CT_ImplicitCall CTree.h Puma/CTree.h
 
71207
 *  Tree node representing implicit function calls detected by
 
71208
 *  the semantic analysis. */
 
71209
 
 
71210
#line 71211 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71211
} // closed Puma
 
71212
class CCExprResolve;
 
71213
class CExprResolve;
 
71214
class WinIfExists;
 
71215
class WinImportHandler;
 
71216
class WinMacros;
 
71217
class WinAsm;
 
71218
class WinDeclSpecs;
 
71219
class WinMemberExplSpec;
 
71220
class WinTypeKeywords;
 
71221
class WinFriend;
 
71222
class ExtAC;
 
71223
class ExtACBuilderCoupling;
 
71224
class ExtACSyntaxCoupling;
 
71225
class ExtACTree;
 
71226
class ExtACKeywords;
 
71227
class ExtGnu;
 
71228
class PragmaOnceUnitState;
 
71229
class PragmaOnce;
 
71230
class CMatchSyntax;
 
71231
namespace Puma {
 
71232
 
 
71233
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71234
 
 
71235
#line 71236 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71236
} // closed Puma
 
71237
 
 
71238
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71239
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71240
#include "CCExprResolveH.ah"
 
71241
#endif
 
71242
namespace Puma {
 
71243
 
 
71244
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71245
 
 
71246
#line 71247 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71247
} // closed Puma
 
71248
 
 
71249
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71250
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71251
#include "CExprResolveH.ah"
 
71252
#endif
 
71253
namespace Puma {
 
71254
 
 
71255
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71256
class CT_ImplicitCall : public CT_Call {
 
71257
#line 71258 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71258
  friend class ::CCExprResolve;
 
71259
  friend class ::CExprResolve;
 
71260
  friend class ::WinIfExists;
 
71261
  friend class ::WinImportHandler;
 
71262
  friend class ::WinMacros;
 
71263
  friend class ::WinAsm;
 
71264
  friend class ::WinDeclSpecs;
 
71265
  friend class ::WinMemberExplSpec;
 
71266
  friend class ::WinTypeKeywords;
 
71267
  friend class ::WinFriend;
 
71268
  friend class ::ExtAC;
 
71269
  friend class ::ExtACBuilderCoupling;
 
71270
  friend class ::ExtACSyntaxCoupling;
 
71271
  friend class ::ExtACTree;
 
71272
  friend class ::ExtACKeywords;
 
71273
  friend class ::ExtGnu;
 
71274
  friend class ::PragmaOnceUnitState;
 
71275
  friend class ::PragmaOnce;
 
71276
  friend class ::CMatchSyntax;
 
71277
 
 
71278
#line 619 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71279
 
 
71280
  CTree *_arg;
 
71281
 
 
71282
public:
 
71283
  /** Constructor.
 
71284
   *  \param arg The call argument. */
 
71285
  CT_ImplicitCall (CTree *arg) { AddSon (_arg, arg); }
 
71286
  /** Get the identifier for this node type. Can be compared with NodeName(). */
 
71287
  static const char *NodeId ();
 
71288
  /** Get the name of the node. Can be compared with NodeId(). */
 
71289
  const char *NodeName () const { return NodeId (); }
 
71290
  /** Get the number of sons. */
 
71291
  int Sons () const { return 1; }
 
71292
  /** Get the n-th son.
 
71293
   *  \param n The index of the son.
 
71294
   *  \return The n-th son or NULL. */
 
71295
  CTree *Son (int n) const { return (n == 0) ? _arg : (CTree*)0; }
 
71296
  /** Replace a son.
 
71297
   *  \param old_son The son to replace.
 
71298
   *  \param new_son The new son. */
 
71299
  void ReplaceSon (CTree *old_son, CTree *new_son) 
 
71300
   { CTree::ReplaceSon (_arg, old_son, new_son); }
 
71301
   private:
 
71302
  typedef CT_ImplicitCall CCExprResolveExpr;
 
71303
 
 
71304
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71305
 public :
 
71306
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
 
71307
  typedef CT_ImplicitCall CExprResolveExpr;
 
71308
 
 
71309
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71310
 public :
 
71311
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71312
#line 641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71313
};
 
71314
 
 
71315
/** \class CT_String CTree.h Puma/CTree.h
 
71316
 *  Tree node representing a string literal. */
 
71317
 
 
71318
#line 71319 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71319
} // closed Puma
 
71320
class CCExprResolve;
 
71321
class CExprResolve;
 
71322
class WinIfExists;
 
71323
class WinImportHandler;
 
71324
class WinMacros;
 
71325
class WinAsm;
 
71326
class WinDeclSpecs;
 
71327
class WinMemberExplSpec;
 
71328
class WinTypeKeywords;
 
71329
class WinFriend;
 
71330
class ExtAC;
 
71331
class ExtACBuilderCoupling;
 
71332
class ExtACSyntaxCoupling;
 
71333
class ExtACTree;
 
71334
class ExtACKeywords;
 
71335
class ExtGnu;
 
71336
class PragmaOnceUnitState;
 
71337
class PragmaOnce;
 
71338
class CMatchSyntax;
 
71339
namespace Puma {
 
71340
 
 
71341
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71342
 
 
71343
#line 71344 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71344
} // closed Puma
 
71345
 
 
71346
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71347
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71348
#include "CCExprResolveH.ah"
 
71349
#endif
 
71350
namespace Puma {
 
71351
 
 
71352
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71353
 
 
71354
#line 71355 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71355
} // closed Puma
 
71356
 
 
71357
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71358
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71359
#include "CExprResolveH.ah"
 
71360
#endif
 
71361
namespace Puma {
 
71362
 
 
71363
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59552
71364
class CT_String : public CT_List, public CSemValue {
59553
 
#line 59554 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
71365
#line 71366 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71366
  friend class ::CCExprResolve;
 
71367
  friend class ::CExprResolve;
59554
71368
  friend class ::WinIfExists;
59555
71369
  friend class ::WinImportHandler;
59556
71370
  friend class ::WinMacros;
59557
 
  friend class ::CMatchSyntax;
59558
 
  friend class ::ExtGnu;
 
71371
  friend class ::WinAsm;
 
71372
  friend class ::WinDeclSpecs;
 
71373
  friend class ::WinMemberExplSpec;
 
71374
  friend class ::WinTypeKeywords;
 
71375
  friend class ::WinFriend;
59559
71376
  friend class ::ExtAC;
59560
71377
  friend class ::ExtACBuilderCoupling;
59561
71378
  friend class ::ExtACSyntaxCoupling;
59562
71379
  friend class ::ExtACTree;
59563
71380
  friend class ::ExtACKeywords;
59564
 
  friend class ::WinAsm;
59565
 
  friend class ::WinDeclSpecs;
59566
 
  friend class ::WinMemberExplSpec;
59567
 
  friend class ::WinTypeKeywords;
 
71381
  friend class ::ExtGnu;
59568
71382
  friend class ::PragmaOnceUnitState;
59569
71383
  friend class ::PragmaOnce;
59570
 
  friend class ::CCExprResolve;
59571
 
  friend class ::CExprResolve;
 
71384
  friend class ::CMatchSyntax;
59572
71385
 
59573
 
#line 375 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71386
#line 645 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59574
71387
 
59575
71388
public:
 
71389
  /** Constructor. 
 
71390
   *  \param size The number of sub-strings. */
59576
71391
  CT_String (int size) : CT_List (size, 1) {}
 
71392
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59577
71393
  static const char *NodeId ();
 
71394
  /** Get the name of the node. Can be compared with NodeId(). */
59578
71395
  const char *NodeName () const { return NodeId (); }
59579
71396
 
 
71397
  /** Get the type of the string. 
 
71398
   *  \return The type or NULL. */
59580
71399
  CTypeInfo *Type () const { return type; }
 
71400
  /** Get the string value.
 
71401
   *  \return The value or NULL. */
59581
71402
  CExprValue *Value () const { return value; }
 
71403
  /** Get the semantic value info object.
 
71404
   *  \return The semantic value object or NULL. */
59582
71405
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
71406
  /** Get this. */
 
71407
  virtual CT_String *IsString () { return this; }
59583
71408
   private:
59584
71409
  typedef CT_String CCExprResolveExpr;
59585
71410
 
59586
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71411
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59587
71412
 public :
59588
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71413
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59589
71414
  typedef CT_String CExprResolveExpr;
59590
71415
 
59591
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71416
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59592
71417
 public :
59593
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59594
 
#line 384 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71418
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71419
#line 666 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59595
71420
};
59596
71421
 
 
71422
/** \class CT_WideString CTree.h Puma/CTree.h
 
71423
 *  Tree node representing a wide string literal. */
59597
71424
 
59598
 
#line 59599 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
71425
#line 71426 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59599
71426
} // closed Puma
 
71427
class CCExprResolve;
 
71428
class CExprResolve;
59600
71429
class WinIfExists;
59601
71430
class WinImportHandler;
59602
71431
class WinMacros;
59603
 
class CMatchSyntax;
59604
 
class ExtGnu;
 
71432
class WinAsm;
 
71433
class WinDeclSpecs;
 
71434
class WinMemberExplSpec;
 
71435
class WinTypeKeywords;
 
71436
class WinFriend;
59605
71437
class ExtAC;
59606
71438
class ExtACBuilderCoupling;
59607
71439
class ExtACSyntaxCoupling;
59608
71440
class ExtACTree;
59609
71441
class ExtACKeywords;
59610
 
class WinAsm;
59611
 
class WinDeclSpecs;
59612
 
class WinMemberExplSpec;
59613
 
class WinTypeKeywords;
 
71442
class ExtGnu;
59614
71443
class PragmaOnceUnitState;
59615
71444
class PragmaOnce;
59616
 
class CCExprResolve;
59617
 
class CExprResolve;
59618
 
namespace Puma {
59619
 
 
59620
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71445
class CMatchSyntax;
 
71446
namespace Puma {
 
71447
 
 
71448
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71449
 
 
71450
#line 71451 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71451
} // closed Puma
 
71452
 
 
71453
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71454
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71455
#include "CCExprResolveH.ah"
 
71456
#endif
 
71457
namespace Puma {
 
71458
 
 
71459
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71460
 
 
71461
#line 71462 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71462
} // closed Puma
 
71463
 
 
71464
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71465
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71466
#include "CExprResolveH.ah"
 
71467
#endif
 
71468
namespace Puma {
 
71469
 
 
71470
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59621
71471
class CT_WideString : public CT_String {
59622
 
#line 59623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
71472
#line 71473 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71473
  friend class ::CCExprResolve;
 
71474
  friend class ::CExprResolve;
59623
71475
  friend class ::WinIfExists;
59624
71476
  friend class ::WinImportHandler;
59625
71477
  friend class ::WinMacros;
59626
 
  friend class ::CMatchSyntax;
59627
 
  friend class ::ExtGnu;
 
71478
  friend class ::WinAsm;
 
71479
  friend class ::WinDeclSpecs;
 
71480
  friend class ::WinMemberExplSpec;
 
71481
  friend class ::WinTypeKeywords;
 
71482
  friend class ::WinFriend;
59628
71483
  friend class ::ExtAC;
59629
71484
  friend class ::ExtACBuilderCoupling;
59630
71485
  friend class ::ExtACSyntaxCoupling;
59631
71486
  friend class ::ExtACTree;
59632
71487
  friend class ::ExtACKeywords;
59633
 
  friend class ::WinAsm;
59634
 
  friend class ::WinDeclSpecs;
59635
 
  friend class ::WinMemberExplSpec;
59636
 
  friend class ::WinTypeKeywords;
 
71488
  friend class ::ExtGnu;
59637
71489
  friend class ::PragmaOnceUnitState;
59638
71490
  friend class ::PragmaOnce;
59639
 
  friend class ::CCExprResolve;
59640
 
  friend class ::CExprResolve;
 
71491
  friend class ::CMatchSyntax;
59641
71492
 
59642
 
#line 386 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71493
#line 670 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59643
71494
 
59644
71495
public:
 
71496
  /** Constructor.
 
71497
   *  \param size The number of sub-strings. */
59645
71498
  CT_WideString (int size) : CT_String (size) {}
 
71499
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59646
71500
  static const char *NodeId ();
 
71501
  /** Get the name of the node. Can be compared with NodeId(). */
59647
71502
  const char *NodeName () const { return NodeId (); }
59648
71503
   private:
59649
71504
  typedef CT_WideString CCExprResolveExpr;
59650
71505
 
59651
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71506
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59652
71507
 public :
59653
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71508
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59654
71509
  typedef CT_WideString CExprResolveExpr;
59655
71510
 
59656
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71511
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59657
71512
 public :
59658
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59659
 
#line 391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71513
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71514
#line 679 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59660
71515
};
59661
71516
 
 
71517
/** \class CT_Integer CTree.h Puma/CTree.h
 
71518
 *  Tree node representing an integer constant. */
59662
71519
 
59663
 
#line 59664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
71520
#line 71521 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59664
71521
} // closed Puma
 
71522
class CCExprResolve;
 
71523
class CExprResolve;
59665
71524
class WinIfExists;
59666
71525
class WinImportHandler;
59667
71526
class WinMacros;
59668
 
class CMatchSyntax;
59669
 
class ExtGnu;
 
71527
class WinAsm;
 
71528
class WinDeclSpecs;
 
71529
class WinMemberExplSpec;
 
71530
class WinTypeKeywords;
 
71531
class WinFriend;
59670
71532
class ExtAC;
59671
71533
class ExtACBuilderCoupling;
59672
71534
class ExtACSyntaxCoupling;
59673
71535
class ExtACTree;
59674
71536
class ExtACKeywords;
59675
 
class WinAsm;
59676
 
class WinDeclSpecs;
59677
 
class WinMemberExplSpec;
59678
 
class WinTypeKeywords;
 
71537
class ExtGnu;
59679
71538
class PragmaOnceUnitState;
59680
71539
class PragmaOnce;
59681
 
class CCExprResolve;
59682
 
class CExprResolve;
59683
 
namespace Puma {
59684
 
 
59685
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71540
class CMatchSyntax;
 
71541
namespace Puma {
 
71542
 
 
71543
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71544
 
 
71545
#line 71546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71546
} // closed Puma
 
71547
 
 
71548
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71549
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71550
#include "CCExprResolveH.ah"
 
71551
#endif
 
71552
namespace Puma {
 
71553
 
 
71554
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71555
 
 
71556
#line 71557 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71557
} // closed Puma
 
71558
 
 
71559
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71560
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71561
#include "CExprResolveH.ah"
 
71562
#endif
 
71563
namespace Puma {
 
71564
 
 
71565
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59686
71566
class CT_Integer : public CT_Expression {
59687
 
#line 59688 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
71567
#line 71568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71568
  friend class ::CCExprResolve;
 
71569
  friend class ::CExprResolve;
59688
71570
  friend class ::WinIfExists;
59689
71571
  friend class ::WinImportHandler;
59690
71572
  friend class ::WinMacros;
59691
 
  friend class ::CMatchSyntax;
59692
 
  friend class ::ExtGnu;
 
71573
  friend class ::WinAsm;
 
71574
  friend class ::WinDeclSpecs;
 
71575
  friend class ::WinMemberExplSpec;
 
71576
  friend class ::WinTypeKeywords;
 
71577
  friend class ::WinFriend;
59693
71578
  friend class ::ExtAC;
59694
71579
  friend class ::ExtACBuilderCoupling;
59695
71580
  friend class ::ExtACSyntaxCoupling;
59696
71581
  friend class ::ExtACTree;
59697
71582
  friend class ::ExtACKeywords;
59698
 
  friend class ::WinAsm;
59699
 
  friend class ::WinDeclSpecs;
59700
 
  friend class ::WinMemberExplSpec;
59701
 
  friend class ::WinTypeKeywords;
 
71583
  friend class ::ExtGnu;
59702
71584
  friend class ::PragmaOnceUnitState;
59703
71585
  friend class ::PragmaOnce;
59704
 
  friend class ::CCExprResolve;
59705
 
  friend class ::CExprResolve;
 
71586
  friend class ::CMatchSyntax;
59706
71587
 
59707
 
#line 393 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71588
#line 683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59708
71589
 
59709
71590
  CTree *_value;  // CT_Token
59710
71591
 
59711
71592
public:
59712
 
  CT_Integer (CTree *t) : _value (t) {}
 
71593
  /** Constructor.
 
71594
   *  \param token The token containing the integer value. */
 
71595
  CT_Integer (CTree *token) { AddSon (_value, token); }
 
71596
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59713
71597
  static const char *NodeId ();
 
71598
  /** Get the name of the node. Can be compared with NodeId(). */
59714
71599
  const char *NodeName () const { return NodeId (); }
 
71600
  /** Get the number of sons. */
59715
71601
  int Sons () const { return _value ? 1 : 0; }
 
71602
  /** Get the n-th son.
 
71603
   *  \param n The index of the son.
 
71604
   *  \return The n-th son or NULL. */
59716
71605
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
71606
  /** Replace a son.
 
71607
   *  \param old_son The son to replace.
 
71608
   *  \param new_son The new son. */
59717
71609
  void ReplaceSon (CTree *old_son, CTree *new_son) 
59718
 
   { if (old_son == _value) _value = new_son; }
 
71610
   { CTree::ReplaceSon (_value, old_son, new_son); }
59719
71611
   private:
59720
71612
  typedef CT_Integer CCExprResolveExpr;
59721
71613
 
59722
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71614
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59723
71615
 public :
59724
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71616
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59725
71617
  typedef CT_Integer CExprResolveExpr;
59726
71618
 
59727
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71619
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59728
71620
 public :
59729
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59730
 
#line 404 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71621
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71622
#line 705 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59731
71623
};
59732
71624
 
 
71625
/** \class CT_Character CTree.h Puma/CTree.h
 
71626
 *  Tree node representing a single character constant. */
59733
71627
 
59734
 
#line 59735 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
71628
#line 71629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59735
71629
} // closed Puma
 
71630
class CCExprResolve;
 
71631
class CExprResolve;
59736
71632
class WinIfExists;
59737
71633
class WinImportHandler;
59738
71634
class WinMacros;
59739
 
class CMatchSyntax;
59740
 
class ExtGnu;
 
71635
class WinAsm;
 
71636
class WinDeclSpecs;
 
71637
class WinMemberExplSpec;
 
71638
class WinTypeKeywords;
 
71639
class WinFriend;
59741
71640
class ExtAC;
59742
71641
class ExtACBuilderCoupling;
59743
71642
class ExtACSyntaxCoupling;
59744
71643
class ExtACTree;
59745
71644
class ExtACKeywords;
59746
 
class WinAsm;
59747
 
class WinDeclSpecs;
59748
 
class WinMemberExplSpec;
59749
 
class WinTypeKeywords;
 
71645
class ExtGnu;
59750
71646
class PragmaOnceUnitState;
59751
71647
class PragmaOnce;
59752
 
class CCExprResolve;
59753
 
class CExprResolve;
59754
 
namespace Puma {
59755
 
 
59756
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71648
class CMatchSyntax;
 
71649
namespace Puma {
 
71650
 
 
71651
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71652
 
 
71653
#line 71654 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71654
} // closed Puma
 
71655
 
 
71656
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71657
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71658
#include "CCExprResolveH.ah"
 
71659
#endif
 
71660
namespace Puma {
 
71661
 
 
71662
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71663
 
 
71664
#line 71665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71665
} // closed Puma
 
71666
 
 
71667
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71668
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71669
#include "CExprResolveH.ah"
 
71670
#endif
 
71671
namespace Puma {
 
71672
 
 
71673
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59757
71674
class CT_Character : public CT_Expression {
59758
 
#line 59759 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
71675
#line 71676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71676
  friend class ::CCExprResolve;
 
71677
  friend class ::CExprResolve;
59759
71678
  friend class ::WinIfExists;
59760
71679
  friend class ::WinImportHandler;
59761
71680
  friend class ::WinMacros;
59762
 
  friend class ::CMatchSyntax;
59763
 
  friend class ::ExtGnu;
 
71681
  friend class ::WinAsm;
 
71682
  friend class ::WinDeclSpecs;
 
71683
  friend class ::WinMemberExplSpec;
 
71684
  friend class ::WinTypeKeywords;
 
71685
  friend class ::WinFriend;
59764
71686
  friend class ::ExtAC;
59765
71687
  friend class ::ExtACBuilderCoupling;
59766
71688
  friend class ::ExtACSyntaxCoupling;
59767
71689
  friend class ::ExtACTree;
59768
71690
  friend class ::ExtACKeywords;
59769
 
  friend class ::WinAsm;
59770
 
  friend class ::WinDeclSpecs;
59771
 
  friend class ::WinMemberExplSpec;
59772
 
  friend class ::WinTypeKeywords;
 
71691
  friend class ::ExtGnu;
59773
71692
  friend class ::PragmaOnceUnitState;
59774
71693
  friend class ::PragmaOnce;
59775
 
  friend class ::CCExprResolve;
59776
 
  friend class ::CExprResolve;
 
71694
  friend class ::CMatchSyntax;
59777
71695
 
59778
 
#line 406 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71696
#line 709 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59779
71697
 
59780
71698
  CTree *_value;  // CT_Token
59781
71699
 
59782
71700
public:
59783
 
  CT_Character (CTree *t) : _value (t) {}
 
71701
  /** Constructor.
 
71702
   *  \param token The token containing the character value. */
 
71703
  CT_Character (CTree *token) { AddSon (_value, token); }
 
71704
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59784
71705
  static const char *NodeId ();
 
71706
  /** Get the name of the node. Can be compared with NodeId(). */
59785
71707
  const char *NodeName () const { return NodeId (); }
 
71708
  /** Get the number of sons. */
59786
71709
  int Sons () const { return 1; }
 
71710
  /** Get the n-th son.
 
71711
   *  \param n The index of the son.
 
71712
   *  \return The n-th son or NULL. */
59787
71713
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
71714
  /** Replace a son.
 
71715
   *  \param old_son The son to replace.
 
71716
   *  \param new_son The new son. */
59788
71717
  void ReplaceSon (CTree *old_son, CTree *new_son) 
59789
 
   { if (old_son == _value) _value = new_son; }
 
71718
   { CTree::ReplaceSon (_value, old_son, new_son); }
59790
71719
   private:
59791
71720
  typedef CT_Character CCExprResolveExpr;
59792
71721
 
59793
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71722
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59794
71723
 public :
59795
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71724
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59796
71725
  typedef CT_Character CExprResolveExpr;
59797
71726
 
59798
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71727
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59799
71728
 public :
59800
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59801
 
#line 417 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71729
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71730
#line 731 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59802
71731
};
59803
71732
 
 
71733
/** \class CT_WideCharacter CTree.h Puma/CTree.h
 
71734
 *  Tree node representing a wide character constant. */
59804
71735
 
59805
 
#line 59806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
71736
#line 71737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59806
71737
} // closed Puma
 
71738
class CCExprResolve;
 
71739
class CExprResolve;
59807
71740
class WinIfExists;
59808
71741
class WinImportHandler;
59809
71742
class WinMacros;
59810
 
class CMatchSyntax;
59811
 
class ExtGnu;
 
71743
class WinAsm;
 
71744
class WinDeclSpecs;
 
71745
class WinMemberExplSpec;
 
71746
class WinTypeKeywords;
 
71747
class WinFriend;
59812
71748
class ExtAC;
59813
71749
class ExtACBuilderCoupling;
59814
71750
class ExtACSyntaxCoupling;
59815
71751
class ExtACTree;
59816
71752
class ExtACKeywords;
59817
 
class WinAsm;
59818
 
class WinDeclSpecs;
59819
 
class WinMemberExplSpec;
59820
 
class WinTypeKeywords;
 
71753
class ExtGnu;
59821
71754
class PragmaOnceUnitState;
59822
71755
class PragmaOnce;
59823
 
class CCExprResolve;
59824
 
class CExprResolve;
59825
 
namespace Puma {
59826
 
 
59827
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71756
class CMatchSyntax;
 
71757
namespace Puma {
 
71758
 
 
71759
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71760
 
 
71761
#line 71762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71762
} // closed Puma
 
71763
 
 
71764
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71765
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71766
#include "CCExprResolveH.ah"
 
71767
#endif
 
71768
namespace Puma {
 
71769
 
 
71770
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71771
 
 
71772
#line 71773 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71773
} // closed Puma
 
71774
 
 
71775
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71776
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71777
#include "CExprResolveH.ah"
 
71778
#endif
 
71779
namespace Puma {
 
71780
 
 
71781
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59828
71782
class CT_WideCharacter : public CT_Character {
59829
 
#line 59830 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
71783
#line 71784 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71784
  friend class ::CCExprResolve;
 
71785
  friend class ::CExprResolve;
59830
71786
  friend class ::WinIfExists;
59831
71787
  friend class ::WinImportHandler;
59832
71788
  friend class ::WinMacros;
59833
 
  friend class ::CMatchSyntax;
59834
 
  friend class ::ExtGnu;
 
71789
  friend class ::WinAsm;
 
71790
  friend class ::WinDeclSpecs;
 
71791
  friend class ::WinMemberExplSpec;
 
71792
  friend class ::WinTypeKeywords;
 
71793
  friend class ::WinFriend;
59835
71794
  friend class ::ExtAC;
59836
71795
  friend class ::ExtACBuilderCoupling;
59837
71796
  friend class ::ExtACSyntaxCoupling;
59838
71797
  friend class ::ExtACTree;
59839
71798
  friend class ::ExtACKeywords;
59840
 
  friend class ::WinAsm;
59841
 
  friend class ::WinDeclSpecs;
59842
 
  friend class ::WinMemberExplSpec;
59843
 
  friend class ::WinTypeKeywords;
 
71799
  friend class ::ExtGnu;
59844
71800
  friend class ::PragmaOnceUnitState;
59845
71801
  friend class ::PragmaOnce;
59846
 
  friend class ::CCExprResolve;
59847
 
  friend class ::CExprResolve;
59848
 
 
59849
 
#line 419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
59850
 
 
59851
 
  CTree *_value;  // CT_Token
 
71802
  friend class ::CMatchSyntax;
 
71803
 
 
71804
#line 735 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59852
71805
 
59853
71806
public:
59854
 
  CT_WideCharacter (CTree *t) : CT_Character (t) {}
 
71807
  /** Constructor.
 
71808
   *  \param token The token containing the wide character value. */
 
71809
  CT_WideCharacter (CTree *token) : CT_Character (token) {}
 
71810
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59855
71811
  static const char *NodeId ();
 
71812
  /** Get the name of the node. Can be compared with NodeId(). */
59856
71813
  const char *NodeName () const { return NodeId (); }
59857
 
  void ReplaceSon (CTree *old_son, CTree *new_son) 
59858
 
   { if (old_son == _value) _value = new_son; }
59859
71814
   private:
59860
71815
  typedef CT_WideCharacter CCExprResolveExpr;
59861
71816
 
59862
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71817
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59863
71818
 public :
59864
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71819
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59865
71820
  typedef CT_WideCharacter CExprResolveExpr;
59866
71821
 
59867
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71822
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59868
71823
 public :
59869
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59870
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71824
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71825
#line 744 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59871
71826
};
59872
71827
 
 
71828
/** \class CT_Float CTree.h Puma/CTree.h
 
71829
 *  Tree node representing a floating point constant. */
59873
71830
 
59874
 
#line 59875 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
71831
#line 71832 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59875
71832
} // closed Puma
 
71833
class CCExprResolve;
 
71834
class CExprResolve;
59876
71835
class WinIfExists;
59877
71836
class WinImportHandler;
59878
71837
class WinMacros;
59879
 
class CMatchSyntax;
59880
 
class ExtGnu;
 
71838
class WinAsm;
 
71839
class WinDeclSpecs;
 
71840
class WinMemberExplSpec;
 
71841
class WinTypeKeywords;
 
71842
class WinFriend;
59881
71843
class ExtAC;
59882
71844
class ExtACBuilderCoupling;
59883
71845
class ExtACSyntaxCoupling;
59884
71846
class ExtACTree;
59885
71847
class ExtACKeywords;
59886
 
class WinAsm;
59887
 
class WinDeclSpecs;
59888
 
class WinMemberExplSpec;
59889
 
class WinTypeKeywords;
 
71848
class ExtGnu;
59890
71849
class PragmaOnceUnitState;
59891
71850
class PragmaOnce;
59892
 
class CCExprResolve;
59893
 
class CExprResolve;
59894
 
namespace Puma {
59895
 
 
59896
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71851
class CMatchSyntax;
 
71852
namespace Puma {
 
71853
 
 
71854
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71855
 
 
71856
#line 71857 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71857
} // closed Puma
 
71858
 
 
71859
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71860
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71861
#include "CCExprResolveH.ah"
 
71862
#endif
 
71863
namespace Puma {
 
71864
 
 
71865
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71866
 
 
71867
#line 71868 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71868
} // closed Puma
 
71869
 
 
71870
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71871
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71872
#include "CExprResolveH.ah"
 
71873
#endif
 
71874
namespace Puma {
 
71875
 
 
71876
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59897
71877
class CT_Float : public CT_Expression {
59898
 
#line 59899 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
71878
#line 71879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71879
  friend class ::CCExprResolve;
 
71880
  friend class ::CExprResolve;
59899
71881
  friend class ::WinIfExists;
59900
71882
  friend class ::WinImportHandler;
59901
71883
  friend class ::WinMacros;
59902
 
  friend class ::CMatchSyntax;
59903
 
  friend class ::ExtGnu;
 
71884
  friend class ::WinAsm;
 
71885
  friend class ::WinDeclSpecs;
 
71886
  friend class ::WinMemberExplSpec;
 
71887
  friend class ::WinTypeKeywords;
 
71888
  friend class ::WinFriend;
59904
71889
  friend class ::ExtAC;
59905
71890
  friend class ::ExtACBuilderCoupling;
59906
71891
  friend class ::ExtACSyntaxCoupling;
59907
71892
  friend class ::ExtACTree;
59908
71893
  friend class ::ExtACKeywords;
59909
 
  friend class ::WinAsm;
59910
 
  friend class ::WinDeclSpecs;
59911
 
  friend class ::WinMemberExplSpec;
59912
 
  friend class ::WinTypeKeywords;
 
71894
  friend class ::ExtGnu;
59913
71895
  friend class ::PragmaOnceUnitState;
59914
71896
  friend class ::PragmaOnce;
59915
 
  friend class ::CCExprResolve;
59916
 
  friend class ::CExprResolve;
 
71897
  friend class ::CMatchSyntax;
59917
71898
 
59918
 
#line 430 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71899
#line 748 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59919
71900
 
59920
71901
  CTree *_value;  // CT_Token
59921
71902
 
59922
71903
public:
59923
 
  CT_Float (CTree *t) : _value (t) {}
 
71904
  /** Constructor.
 
71905
   *  \param token The token containing the floating point value. */
 
71906
  CT_Float (CTree *token) { AddSon (_value, token); }
 
71907
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59924
71908
  static const char *NodeId ();
 
71909
  /** Get the name of the node. Can be compared with NodeId(). */
59925
71910
  const char *NodeName () const { return NodeId (); }
 
71911
  /** Get the number of sons. */
59926
71912
  int Sons () const { return 1; }
 
71913
  /** Get the n-th son.
 
71914
   *  \param n The index of the son.
 
71915
   *  \return The n-th son or NULL. */
59927
71916
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
71917
  /** Replace a son.
 
71918
   *  \param old_son The son to replace.
 
71919
   *  \param new_son The new son. */
59928
71920
  void ReplaceSon (CTree *old_son, CTree *new_son) 
59929
 
   { if (old_son == _value) _value = new_son; }
 
71921
   { CTree::ReplaceSon (_value, old_son, new_son); }
59930
71922
   private:
59931
71923
  typedef CT_Float CCExprResolveExpr;
59932
71924
 
59933
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
71925
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
59934
71926
 public :
59935
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
71927
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
59936
71928
  typedef CT_Float CExprResolveExpr;
59937
71929
 
59938
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
71930
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
59939
71931
 public :
59940
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
59941
 
#line 441 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71932
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
71933
#line 770 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59942
71934
};
59943
71935
 
 
71936
/** \class CT_Bool CTree.h Puma/CTree.h
 
71937
 *  Tree node representing a boolean literal, i.e. 'true' or 'false'. */
59944
71938
 
59945
 
#line 59946 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
71939
#line 71940 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
59946
71940
} // closed Puma
 
71941
class CCExprResolve;
 
71942
class CExprResolve;
59947
71943
class WinIfExists;
59948
71944
class WinImportHandler;
59949
71945
class WinMacros;
59950
 
class CMatchSyntax;
59951
 
class ExtGnu;
 
71946
class WinAsm;
 
71947
class WinDeclSpecs;
 
71948
class WinMemberExplSpec;
 
71949
class WinTypeKeywords;
 
71950
class WinFriend;
59952
71951
class ExtAC;
59953
71952
class ExtACBuilderCoupling;
59954
71953
class ExtACSyntaxCoupling;
59955
71954
class ExtACTree;
59956
71955
class ExtACKeywords;
59957
 
class WinAsm;
59958
 
class WinDeclSpecs;
59959
 
class WinMemberExplSpec;
59960
 
class WinTypeKeywords;
 
71956
class ExtGnu;
59961
71957
class PragmaOnceUnitState;
59962
71958
class PragmaOnce;
59963
 
class CCExprResolve;
59964
 
class CExprResolve;
59965
 
namespace Puma {
59966
 
 
59967
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71959
class CMatchSyntax;
 
71960
namespace Puma {
 
71961
 
 
71962
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71963
 
 
71964
#line 71965 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71965
} // closed Puma
 
71966
 
 
71967
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71968
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
71969
#include "CCExprResolveH.ah"
 
71970
#endif
 
71971
namespace Puma {
 
71972
 
 
71973
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
71974
 
 
71975
#line 71976 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71976
} // closed Puma
 
71977
 
 
71978
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71979
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
71980
#include "CExprResolveH.ah"
 
71981
#endif
 
71982
namespace Puma {
 
71983
 
 
71984
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59968
71985
class CT_Bool : public CT_Expression {
59969
 
#line 59970 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
71986
#line 71987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
71987
  friend class ::CCExprResolve;
 
71988
  friend class ::CExprResolve;
59970
71989
  friend class ::WinIfExists;
59971
71990
  friend class ::WinImportHandler;
59972
71991
  friend class ::WinMacros;
59973
 
  friend class ::CMatchSyntax;
59974
 
  friend class ::ExtGnu;
 
71992
  friend class ::WinAsm;
 
71993
  friend class ::WinDeclSpecs;
 
71994
  friend class ::WinMemberExplSpec;
 
71995
  friend class ::WinTypeKeywords;
 
71996
  friend class ::WinFriend;
59975
71997
  friend class ::ExtAC;
59976
71998
  friend class ::ExtACBuilderCoupling;
59977
71999
  friend class ::ExtACSyntaxCoupling;
59978
72000
  friend class ::ExtACTree;
59979
72001
  friend class ::ExtACKeywords;
59980
 
  friend class ::WinAsm;
59981
 
  friend class ::WinDeclSpecs;
59982
 
  friend class ::WinMemberExplSpec;
59983
 
  friend class ::WinTypeKeywords;
 
72002
  friend class ::ExtGnu;
59984
72003
  friend class ::PragmaOnceUnitState;
59985
72004
  friend class ::PragmaOnce;
59986
 
  friend class ::CCExprResolve;
59987
 
  friend class ::CExprResolve;
 
72005
  friend class ::CMatchSyntax;
59988
72006
 
59989
 
#line 443 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72007
#line 774 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
59990
72008
 
59991
72009
  CTree *_value;  // CT_Token
59992
72010
 
59993
72011
public:
59994
 
  CT_Bool (CTree *t) : _value (t) {}
 
72012
  /** Constructor.
 
72013
   *  \param token The token containing the boolean value. */
 
72014
  CT_Bool (CTree *token) { AddSon (_value, token); }
 
72015
  /** Get the identifier for this node type. Can be compared with NodeName(). */
59995
72016
  static const char *NodeId ();
 
72017
  /** Get the name of the node. Can be compared with NodeId(). */
59996
72018
  const char *NodeName () const { return NodeId (); }
 
72019
  /** Get the number of sons. */
59997
72020
  int Sons () const { return 1; }
 
72021
  /** Get the n-th son.
 
72022
   *  \param n The index of the son.
 
72023
   *  \return The n-th son or NULL. */
59998
72024
  CTree *Son (int n) const { return (n == 0) ? _value : (CTree*)0; }
 
72025
  /** Replace a son.
 
72026
   *  \param old_son The son to replace.
 
72027
   *  \param new_son The new son. */
59999
72028
  void ReplaceSon (CTree *old_son, CTree *new_son) 
60000
 
   { if (old_son == _value) _value = new_son; }
 
72029
   { CTree::ReplaceSon (_value, old_son, new_son); }
60001
72030
   private:
60002
72031
  typedef CT_Bool CCExprResolveExpr;
60003
72032
 
60004
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72033
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
60005
72034
 public :
60006
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72035
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
60007
72036
  typedef CT_Bool CExprResolveExpr;
60008
72037
 
60009
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72038
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
60010
72039
 public :
60011
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
60012
 
#line 454 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72040
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72041
#line 796 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60013
72042
};
60014
72043
 
 
72044
/** \class CT_BracedExpr CTree.h Puma/CTree.h
 
72045
 *  Tree node representing a braced expression, e.g. (a+b). */
60015
72046
 
60016
 
#line 60017 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72047
#line 72048 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
60017
72048
} // closed Puma
 
72049
class CCExprResolve;
 
72050
class CExprResolve;
60018
72051
class WinIfExists;
60019
72052
class WinImportHandler;
60020
72053
class WinMacros;
60021
 
class CMatchSyntax;
60022
 
class ExtGnu;
 
72054
class WinAsm;
 
72055
class WinDeclSpecs;
 
72056
class WinMemberExplSpec;
 
72057
class WinTypeKeywords;
 
72058
class WinFriend;
60023
72059
class ExtAC;
60024
72060
class ExtACBuilderCoupling;
60025
72061
class ExtACSyntaxCoupling;
60026
72062
class ExtACTree;
60027
72063
class ExtACKeywords;
60028
 
class WinAsm;
60029
 
class WinDeclSpecs;
60030
 
class WinMemberExplSpec;
60031
 
class WinTypeKeywords;
 
72064
class ExtGnu;
60032
72065
class PragmaOnceUnitState;
60033
72066
class PragmaOnce;
60034
 
class CCExprResolve;
60035
 
class CExprResolve;
60036
 
namespace Puma {
60037
 
 
60038
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72067
class CMatchSyntax;
 
72068
namespace Puma {
 
72069
 
 
72070
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72071
 
 
72072
#line 72073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72073
} // closed Puma
 
72074
 
 
72075
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72076
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72077
#include "CCExprResolveH.ah"
 
72078
#endif
 
72079
namespace Puma {
 
72080
 
 
72081
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72082
 
 
72083
#line 72084 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72084
} // closed Puma
 
72085
 
 
72086
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72087
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72088
#include "CExprResolveH.ah"
 
72089
#endif
 
72090
namespace Puma {
 
72091
 
 
72092
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60039
72093
class CT_BracedExpr : public CT_Expression {
60040
 
#line 60041 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72094
#line 72095 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72095
  friend class ::CCExprResolve;
 
72096
  friend class ::CExprResolve;
60041
72097
  friend class ::WinIfExists;
60042
72098
  friend class ::WinImportHandler;
60043
72099
  friend class ::WinMacros;
60044
 
  friend class ::CMatchSyntax;
60045
 
  friend class ::ExtGnu;
 
72100
  friend class ::WinAsm;
 
72101
  friend class ::WinDeclSpecs;
 
72102
  friend class ::WinMemberExplSpec;
 
72103
  friend class ::WinTypeKeywords;
 
72104
  friend class ::WinFriend;
60046
72105
  friend class ::ExtAC;
60047
72106
  friend class ::ExtACBuilderCoupling;
60048
72107
  friend class ::ExtACSyntaxCoupling;
60049
72108
  friend class ::ExtACTree;
60050
72109
  friend class ::ExtACKeywords;
60051
 
  friend class ::WinAsm;
60052
 
  friend class ::WinDeclSpecs;
60053
 
  friend class ::WinMemberExplSpec;
60054
 
  friend class ::WinTypeKeywords;
 
72110
  friend class ::ExtGnu;
60055
72111
  friend class ::PragmaOnceUnitState;
60056
72112
  friend class ::PragmaOnce;
60057
 
  friend class ::CCExprResolve;
60058
 
  friend class ::CExprResolve;
 
72113
  friend class ::CMatchSyntax;
60059
72114
 
60060
 
#line 456 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72115
#line 800 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60061
72116
 
60062
72117
  CTree *sons[3]; // open, expr, close
60063
72118
 
60064
72119
public:
 
72120
  /** Constructor.
 
72121
   *  \param o The opening brace.
 
72122
   *  \param e The enclosed expression.
 
72123
   *  \param c The closing brace. */
60065
72124
  CT_BracedExpr (CTree *o, CTree *e, CTree *c) { 
60066
 
    sons[0] = o; sons[1] = e; sons[2] = c; 
 
72125
    AddSon (sons[0], o); AddSon (sons[1], e); AddSon (sons[2], c); 
60067
72126
  }
 
72127
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60068
72128
  static const char *NodeId ();
 
72129
  /** Get the name of the node. Can be compared with NodeId(). */
60069
72130
  const char *NodeName () const { return NodeId (); }
 
72131
  /** Get the number of sons. */
60070
72132
  int Sons () const { return 3; }
 
72133
  /** Get the n-th son.
 
72134
   *  \param n The index of the son.
 
72135
   *  \return The n-th son or NULL. */
60071
72136
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
72137
  /** Get the enclosed expression. */
60072
72138
  CTree *Expr () const { return sons[1]; }
 
72139
  /** Get the type of the enclosed expression. */
60073
72140
  CTypeInfo *Type () const { return Expr ()->Type (); }
 
72141
  /** Get the value of the enclosed expression. */
60074
72142
  CExprValue *Value () const { return Expr ()->Value (); }
 
72143
  /** Get the semantic value object. */
60075
72144
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
72145
  /** Replace a son.
 
72146
   *  \param old_son The son to replace.
 
72147
   *  \param new_son The new son. */
60076
72148
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60077
72149
    CTree::ReplaceSon (sons, 3, old_son, new_son);
60078
72150
  }
60079
72151
   private:
60080
72152
  typedef CT_BracedExpr CCExprResolveExpr;
60081
72153
 
60082
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72154
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
60083
72155
 public :
60084
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72156
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
60085
72157
  typedef CT_BracedExpr CExprResolveExpr;
60086
72158
 
60087
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72159
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
60088
72160
 public :
60089
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
60090
 
#line 474 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72161
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72162
#line 835 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60091
72163
};
60092
72164
 
 
72165
/** \class CT_SimpleName CTree.h Puma/CTree.h
 
72166
 *  Base class for all tree nodes representing a name. */
60093
72167
 
60094
 
#line 60095 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72168
#line 72169 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
60095
72169
} // closed Puma
 
72170
class CCExprResolve;
 
72171
class CExprResolve;
60096
72172
class WinIfExists;
60097
72173
class WinImportHandler;
60098
72174
class WinMacros;
60099
 
class CMatchSyntax;
60100
 
class ExtGnu;
 
72175
class WinAsm;
 
72176
class WinDeclSpecs;
 
72177
class WinMemberExplSpec;
 
72178
class WinTypeKeywords;
 
72179
class WinFriend;
60101
72180
class ExtAC;
60102
72181
class ExtACBuilderCoupling;
60103
72182
class ExtACSyntaxCoupling;
60104
72183
class ExtACTree;
60105
72184
class ExtACKeywords;
60106
 
class WinAsm;
60107
 
class WinDeclSpecs;
60108
 
class WinMemberExplSpec;
60109
 
class WinTypeKeywords;
 
72185
class ExtGnu;
60110
72186
class PragmaOnceUnitState;
60111
72187
class PragmaOnce;
60112
 
class CCExprResolve;
60113
 
class CExprResolve;
60114
 
namespace Puma {
60115
 
 
60116
 
#line 476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72188
class CMatchSyntax;
 
72189
namespace Puma {
 
72190
 
 
72191
#line 839 "/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/Parser.cc"
 
72194
} // closed Puma
 
72195
 
 
72196
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72197
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72198
#include "CCExprResolveH.ah"
 
72199
#endif
 
72200
namespace Puma {
 
72201
 
 
72202
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72203
 
 
72204
#line 72205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72205
} // closed Puma
 
72206
 
 
72207
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72208
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72209
#include "CExprResolveH.ah"
 
72210
#endif
 
72211
namespace Puma {
 
72212
 
 
72213
#line 839 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60117
72214
class CT_SimpleName : public CT_List, public Printable, 
60118
72215
                      public CSemValue, public CSemObject {
60119
 
#line 60120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72216
#line 72217 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72217
  friend class ::CCExprResolve;
 
72218
  friend class ::CExprResolve;
60120
72219
  friend class ::WinIfExists;
60121
72220
  friend class ::WinImportHandler;
60122
72221
  friend class ::WinMacros;
60123
 
  friend class ::CMatchSyntax;
60124
 
  friend class ::ExtGnu;
 
72222
  friend class ::WinAsm;
 
72223
  friend class ::WinDeclSpecs;
 
72224
  friend class ::WinMemberExplSpec;
 
72225
  friend class ::WinTypeKeywords;
 
72226
  friend class ::WinFriend;
60125
72227
  friend class ::ExtAC;
60126
72228
  friend class ::ExtACBuilderCoupling;
60127
72229
  friend class ::ExtACSyntaxCoupling;
60128
72230
  friend class ::ExtACTree;
60129
72231
  friend class ::ExtACKeywords;
60130
 
  friend class ::WinAsm;
60131
 
  friend class ::WinDeclSpecs;
60132
 
  friend class ::WinMemberExplSpec;
60133
 
  friend class ::WinTypeKeywords;
 
72232
  friend class ::ExtGnu;
60134
72233
  friend class ::PragmaOnceUnitState;
60135
72234
  friend class ::PragmaOnce;
60136
 
  friend class ::CCExprResolve;
60137
 
  friend class ::CExprResolve;
 
72235
  friend class ::CMatchSyntax;
60138
72236
 
60139
 
#line 477 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72237
#line 840 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60140
72238
 
60141
72239
protected:
 
72240
  /** Constructor.
 
72241
   *  \param size The number of sub-names (for qualified names). */
60142
72242
  CT_SimpleName (int size) : CT_List (size, 1) {}
 
72243
  /** Constructor.
 
72244
   *  \param size The number of sub-names (for qualified names). 
 
72245
   *  \param properties Additional name list properties (for root qualified names). */
60143
72246
  CT_SimpleName (int size, int properties) : 
60144
72247
    CT_List (size, 2, properties) {}
60145
72248
  
60146
72249
public:
 
72250
  /** Constructor.
 
72251
   *  \param n The sub-tree containing the name. */
60147
72252
  CT_SimpleName (CTree *n) : CT_List (1, 1) { AddSon (n); }
 
72253
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60148
72254
  static const char *NodeId ();
 
72255
  /** Get the name of the node. Can be compared with NodeId(). */
60149
72256
  const char *NodeName () const { return NodeId (); }
 
72257
  /** Get the string containing the name. */
60150
72258
  virtual const char *Text () const 
60151
72259
   { return Son (Sons ()-1)->token ()->text (); }
 
72260
  /** Print the name on the given stream. 
 
72261
   *  \param os The output stream. */
60152
72262
  virtual void print (ostream &os) const { os << Text (); }
 
72263
  /** Get this. */
60153
72264
  virtual CT_SimpleName *Name () const { return (CT_SimpleName*)this; }
 
72265
  /** Get the type of the entity represented by the name. */
60154
72266
  CTypeInfo *Type () const { return type; }
 
72267
  /** Get the value of the entity represented by the name. */ 
60155
72268
  CExprValue *Value () const { return value; }
 
72269
  /** Get the sematic value information object. */
60156
72270
  CSemValue *SemValue () const { return (CSemValue*)this; }
 
72271
  /** Get the sematic information object. */
60157
72272
  CSemObject *SemObject () const { return (CSemObject*)this; }
60158
 
  // special new / delete with reusing memory
60159
 
  void *operator new (size_t);
60160
 
  void  operator delete (void *);
60161
 
  // classification function
 
72273
  /** Get this. */
60162
72274
  virtual CT_SimpleName *IsSimpleName () { return this; }  
 
72275
 
 
72276
public:
 
72277
  /** Own new operator reusing memory. */
 
72278
  void *operator new (size_t);
 
72279
  /** Own delete operator. */
 
72280
  void operator delete (void *);
60163
72281
   private:
60164
72282
  typedef CT_SimpleName CCExprResolveExpr;
60165
72283
 
60166
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72284
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
60167
72285
 public :
60168
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72286
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
60169
72287
  typedef CT_SimpleName CExprResolveExpr;
60170
72288
 
60171
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72289
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
60172
72290
 public :
60173
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
60174
 
#line 500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72291
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72292
#line 883 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60175
72293
};
60176
72294
 
 
72295
/** \class CT_SpecialName CTree.h Puma/CTree.h
 
72296
 *  Base class for tree nodes representing a special name, like destructor names. */
60177
72297
 
60178
 
#line 60179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72298
#line 72299 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
60179
72299
} // closed Puma
 
72300
class CCExprResolve;
 
72301
class CExprResolve;
60180
72302
class WinIfExists;
60181
72303
class WinImportHandler;
60182
72304
class WinMacros;
60183
 
class CMatchSyntax;
60184
 
class ExtGnu;
 
72305
class WinAsm;
 
72306
class WinDeclSpecs;
 
72307
class WinMemberExplSpec;
 
72308
class WinTypeKeywords;
 
72309
class WinFriend;
60185
72310
class ExtAC;
60186
72311
class ExtACBuilderCoupling;
60187
72312
class ExtACSyntaxCoupling;
60188
72313
class ExtACTree;
60189
72314
class ExtACKeywords;
60190
 
class WinAsm;
60191
 
class WinDeclSpecs;
60192
 
class WinMemberExplSpec;
60193
 
class WinTypeKeywords;
 
72315
class ExtGnu;
60194
72316
class PragmaOnceUnitState;
60195
72317
class PragmaOnce;
60196
 
class CCExprResolve;
60197
 
class CExprResolve;
60198
 
namespace Puma {
60199
 
 
60200
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72318
class CMatchSyntax;
 
72319
namespace Puma {
 
72320
 
 
72321
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72322
 
 
72323
#line 72324 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72324
} // closed Puma
 
72325
 
 
72326
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72327
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72328
#include "CCExprResolveH.ah"
 
72329
#endif
 
72330
namespace Puma {
 
72331
 
 
72332
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72333
 
 
72334
#line 72335 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72335
} // closed Puma
 
72336
 
 
72337
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72338
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72339
#include "CExprResolveH.ah"
 
72340
#endif
 
72341
namespace Puma {
 
72342
 
 
72343
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60201
72344
class CT_SpecialName : public CT_SimpleName {
60202
 
#line 60203 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72345
#line 72346 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72346
  friend class ::CCExprResolve;
 
72347
  friend class ::CExprResolve;
60203
72348
  friend class ::WinIfExists;
60204
72349
  friend class ::WinImportHandler;
60205
72350
  friend class ::WinMacros;
60206
 
  friend class ::CMatchSyntax;
60207
 
  friend class ::ExtGnu;
 
72351
  friend class ::WinAsm;
 
72352
  friend class ::WinDeclSpecs;
 
72353
  friend class ::WinMemberExplSpec;
 
72354
  friend class ::WinTypeKeywords;
 
72355
  friend class ::WinFriend;
60208
72356
  friend class ::ExtAC;
60209
72357
  friend class ::ExtACBuilderCoupling;
60210
72358
  friend class ::ExtACSyntaxCoupling;
60211
72359
  friend class ::ExtACTree;
60212
72360
  friend class ::ExtACKeywords;
60213
 
  friend class ::WinAsm;
60214
 
  friend class ::WinDeclSpecs;
60215
 
  friend class ::WinMemberExplSpec;
60216
 
  friend class ::WinTypeKeywords;
 
72361
  friend class ::ExtGnu;
60217
72362
  friend class ::PragmaOnceUnitState;
60218
72363
  friend class ::PragmaOnce;
60219
 
  friend class ::CCExprResolve;
60220
 
  friend class ::CExprResolve;
 
72364
  friend class ::CMatchSyntax;
60221
72365
 
60222
 
#line 502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72366
#line 887 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60223
72367
 
60224
72368
  char *_name;
60225
72369
  
60226
72370
protected:
 
72371
  /** Constructor.
 
72372
   *  \param size The number of sub-names (for qualified names). */
60227
72373
  CT_SpecialName (int size = 1) : CT_SimpleName (size), _name (0) {}
60228
72374
  
60229
72375
public:
 
72376
  /** Destructor. Deletes the name string. */
60230
72377
  ~CT_SpecialName () { if (_name) delete[] _name; }
 
72378
  /** Get the string containing the name. */
60231
72379
  const char *Text () const { return _name; }
 
72380
  /** Set the name. The name is copied.
 
72381
   *  \param n The name. */
60232
72382
  void Name (const char *n) { 
60233
72383
    if (n) { 
60234
72384
      _name = new char[strlen(n) + 1];
60235
72385
      strcpy (_name,n);
60236
72386
    }
60237
72387
  }
60238
 
  // special new / delete with reusing memory
 
72388
 
 
72389
public:
 
72390
  /** Own new operator reusing memory. */
60239
72391
  void *operator new (size_t);
60240
 
  void  operator delete (void *);
 
72392
  /** Own delete operator. */
 
72393
  void operator delete (void *);
60241
72394
   private:
60242
72395
  typedef CT_SpecialName CCExprResolveExpr;
60243
72396
 
60244
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72397
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
60245
72398
 public :
60246
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72399
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
60247
72400
  typedef CT_SpecialName CExprResolveExpr;
60248
72401
 
60249
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72402
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
60250
72403
 public :
60251
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
60252
 
#line 520 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72404
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72405
#line 914 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60253
72406
};
60254
72407
 
 
72408
/** \class CT_PrivateName CTree.h Puma/CTree.h
 
72409
 *  Tree node representing a private name. Private names 
 
72410
 *  are generated names for abstract declarators etc. */
60255
72411
 
60256
 
#line 60257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72412
#line 72413 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
60257
72413
} // closed Puma
 
72414
class CCExprResolve;
 
72415
class CExprResolve;
60258
72416
class WinIfExists;
60259
72417
class WinImportHandler;
60260
72418
class WinMacros;
60261
 
class CMatchSyntax;
60262
 
class ExtGnu;
 
72419
class WinAsm;
 
72420
class WinDeclSpecs;
 
72421
class WinMemberExplSpec;
 
72422
class WinTypeKeywords;
 
72423
class WinFriend;
60263
72424
class ExtAC;
60264
72425
class ExtACBuilderCoupling;
60265
72426
class ExtACSyntaxCoupling;
60266
72427
class ExtACTree;
60267
72428
class ExtACKeywords;
60268
 
class WinAsm;
60269
 
class WinDeclSpecs;
60270
 
class WinMemberExplSpec;
60271
 
class WinTypeKeywords;
 
72429
class ExtGnu;
60272
72430
class PragmaOnceUnitState;
60273
72431
class PragmaOnce;
60274
 
class CCExprResolve;
60275
 
class CExprResolve;
60276
 
namespace Puma {
60277
 
 
60278
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72432
class CMatchSyntax;
 
72433
namespace Puma {
 
72434
 
 
72435
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72436
 
 
72437
#line 72438 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72438
} // closed Puma
 
72439
 
 
72440
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72441
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72442
#include "CCExprResolveH.ah"
 
72443
#endif
 
72444
namespace Puma {
 
72445
 
 
72446
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72447
 
 
72448
#line 72449 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72449
} // closed Puma
 
72450
 
 
72451
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72452
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72453
#include "CExprResolveH.ah"
 
72454
#endif
 
72455
namespace Puma {
 
72456
 
 
72457
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60279
72458
class CT_PrivateName : public CT_SpecialName {
60280
 
#line 60281 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72459
#line 72460 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72460
  friend class ::CCExprResolve;
 
72461
  friend class ::CExprResolve;
60281
72462
  friend class ::WinIfExists;
60282
72463
  friend class ::WinImportHandler;
60283
72464
  friend class ::WinMacros;
60284
 
  friend class ::CMatchSyntax;
60285
 
  friend class ::ExtGnu;
 
72465
  friend class ::WinAsm;
 
72466
  friend class ::WinDeclSpecs;
 
72467
  friend class ::WinMemberExplSpec;
 
72468
  friend class ::WinTypeKeywords;
 
72469
  friend class ::WinFriend;
60286
72470
  friend class ::ExtAC;
60287
72471
  friend class ::ExtACBuilderCoupling;
60288
72472
  friend class ::ExtACSyntaxCoupling;
60289
72473
  friend class ::ExtACTree;
60290
72474
  friend class ::ExtACKeywords;
60291
 
  friend class ::WinAsm;
60292
 
  friend class ::WinDeclSpecs;
60293
 
  friend class ::WinMemberExplSpec;
60294
 
  friend class ::WinTypeKeywords;
 
72475
  friend class ::ExtGnu;
60295
72476
  friend class ::PragmaOnceUnitState;
60296
72477
  friend class ::PragmaOnce;
60297
 
  friend class ::CCExprResolve;
60298
 
  friend class ::CExprResolve;
 
72478
  friend class ::CMatchSyntax;
60299
72479
 
60300
 
#line 522 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72480
#line 919 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60301
72481
 
60302
72482
public:
 
72483
  /** Constructor.
 
72484
   *  \param n The private (generated) name. */
60303
72485
  CT_PrivateName (const char *n) { Name (n); }
 
72486
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60304
72487
  static const char *NodeId ();
 
72488
  /** Get the name of the node. Can be compared with NodeId(). */
60305
72489
  const char *NodeName () const { return NodeId (); }
 
72490
  /** Get the number of sons. */
60306
72491
  int Sons () const { return 0; }
 
72492
  /** Get the n-th son.
 
72493
   *  \param n The index of the son.
 
72494
   *  \return The n-th son or NULL. */
60307
72495
  CTree *Son (int n) const { return (CTree*)0; }
60308
 
  // special new / delete with reusing memory
 
72496
 
 
72497
public:
 
72498
  /** Own new operator reusing memory. */
60309
72499
  void *operator new (size_t);
60310
 
  void  operator delete (void *);
 
72500
  /** Own delete operator. */
 
72501
  void operator delete (void *);
60311
72502
   private:
60312
72503
  typedef CT_PrivateName CCExprResolveExpr;
60313
72504
 
60314
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72505
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
60315
72506
 public :
60316
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72507
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
60317
72508
  typedef CT_PrivateName CExprResolveExpr;
60318
72509
 
60319
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72510
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
60320
72511
 public :
60321
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
60322
 
#line 532 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72512
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72513
#line 940 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60323
72514
};
60324
72515
 
 
72516
/** \class CT_DestructorName CTree.h Puma/CTree.h
 
72517
 *  Tree node representing a destructor name. */
60325
72518
 
60326
 
#line 60327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72519
#line 72520 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
60327
72520
} // closed Puma
 
72521
class CCExprResolve;
 
72522
class CExprResolve;
60328
72523
class WinIfExists;
60329
72524
class WinImportHandler;
60330
72525
class WinMacros;
60331
 
class CMatchSyntax;
60332
 
class ExtGnu;
 
72526
class WinAsm;
 
72527
class WinDeclSpecs;
 
72528
class WinMemberExplSpec;
 
72529
class WinTypeKeywords;
 
72530
class WinFriend;
60333
72531
class ExtAC;
60334
72532
class ExtACBuilderCoupling;
60335
72533
class ExtACSyntaxCoupling;
60336
72534
class ExtACTree;
60337
72535
class ExtACKeywords;
60338
 
class WinAsm;
60339
 
class WinDeclSpecs;
60340
 
class WinMemberExplSpec;
60341
 
class WinTypeKeywords;
 
72536
class ExtGnu;
60342
72537
class PragmaOnceUnitState;
60343
72538
class PragmaOnce;
60344
 
class CCExprResolve;
60345
 
class CExprResolve;
60346
 
namespace Puma {
60347
 
 
60348
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72539
class CMatchSyntax;
 
72540
namespace Puma {
 
72541
 
 
72542
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72543
 
 
72544
#line 72545 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72545
} // closed Puma
 
72546
 
 
72547
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72548
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72549
#include "CCExprResolveH.ah"
 
72550
#endif
 
72551
namespace Puma {
 
72552
 
 
72553
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72554
 
 
72555
#line 72556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72556
} // closed Puma
 
72557
 
 
72558
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72559
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72560
#include "CExprResolveH.ah"
 
72561
#endif
 
72562
namespace Puma {
 
72563
 
 
72564
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60349
72565
class CT_DestructorName : public CT_SpecialName {
60350
 
#line 60351 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72566
#line 72567 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72567
  friend class ::CCExprResolve;
 
72568
  friend class ::CExprResolve;
60351
72569
  friend class ::WinIfExists;
60352
72570
  friend class ::WinImportHandler;
60353
72571
  friend class ::WinMacros;
60354
 
  friend class ::CMatchSyntax;
60355
 
  friend class ::ExtGnu;
 
72572
  friend class ::WinAsm;
 
72573
  friend class ::WinDeclSpecs;
 
72574
  friend class ::WinMemberExplSpec;
 
72575
  friend class ::WinTypeKeywords;
 
72576
  friend class ::WinFriend;
60356
72577
  friend class ::ExtAC;
60357
72578
  friend class ::ExtACBuilderCoupling;
60358
72579
  friend class ::ExtACSyntaxCoupling;
60359
72580
  friend class ::ExtACTree;
60360
72581
  friend class ::ExtACKeywords;
60361
 
  friend class ::WinAsm;
60362
 
  friend class ::WinDeclSpecs;
60363
 
  friend class ::WinMemberExplSpec;
60364
 
  friend class ::WinTypeKeywords;
 
72582
  friend class ::ExtGnu;
60365
72583
  friend class ::PragmaOnceUnitState;
60366
72584
  friend class ::PragmaOnce;
60367
 
  friend class ::CCExprResolve;
60368
 
  friend class ::CExprResolve;
 
72585
  friend class ::CMatchSyntax;
60369
72586
 
60370
 
#line 534 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72587
#line 944 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60371
72588
 
60372
72589
public:
60373
 
  CT_DestructorName (CTree *, CTree *);
 
72590
  /** Constructor.
 
72591
   *  \param t The tilde operator.
 
72592
   *  \param n The class name. */
 
72593
  CT_DestructorName (CTree *t, CTree *n);
 
72594
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60374
72595
  static const char *NodeId ();
 
72596
  /** Get the name of the node. Can be compared with NodeId(). */
60375
72597
  const char *NodeName () const { return NodeId (); }
60376
 
  // special new / delete with reusing memory
 
72598
 
 
72599
public:
 
72600
  /** Own new operator reusing memory. */
60377
72601
  void *operator new (size_t);
60378
 
  void  operator delete (void *);
 
72602
  /** Own delete operator. */
 
72603
  void operator delete (void *);
60379
72604
   private:
60380
72605
  typedef CT_DestructorName CCExprResolveExpr;
60381
72606
 
60382
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72607
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
60383
72608
 public :
60384
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72609
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
60385
72610
  typedef CT_DestructorName CExprResolveExpr;
60386
72611
 
60387
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72612
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
60388
72613
 public :
60389
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
60390
 
#line 542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72614
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72615
#line 960 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60391
72616
};
60392
72617
 
 
72618
/** \class CT_TemplateName CTree.h Puma/CTree.h
 
72619
 *  Tree node representing a template name. */
60393
72620
 
60394
 
#line 60395 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72621
#line 72622 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
60395
72622
} // closed Puma
 
72623
class CCExprResolve;
 
72624
class CExprResolve;
60396
72625
class WinIfExists;
60397
72626
class WinImportHandler;
60398
72627
class WinMacros;
60399
 
class CMatchSyntax;
60400
 
class ExtGnu;
 
72628
class WinAsm;
 
72629
class WinDeclSpecs;
 
72630
class WinMemberExplSpec;
 
72631
class WinTypeKeywords;
 
72632
class WinFriend;
60401
72633
class ExtAC;
60402
72634
class ExtACBuilderCoupling;
60403
72635
class ExtACSyntaxCoupling;
60404
72636
class ExtACTree;
60405
72637
class ExtACKeywords;
60406
 
class WinAsm;
60407
 
class WinDeclSpecs;
60408
 
class WinMemberExplSpec;
60409
 
class WinTypeKeywords;
 
72638
class ExtGnu;
60410
72639
class PragmaOnceUnitState;
60411
72640
class PragmaOnce;
60412
 
class CCExprResolve;
60413
 
class CExprResolve;
60414
 
namespace Puma {
60415
 
 
60416
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72641
class CMatchSyntax;
 
72642
namespace Puma {
 
72643
 
 
72644
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72645
 
 
72646
#line 72647 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72647
} // closed Puma
 
72648
 
 
72649
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72650
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72651
#include "CCExprResolveH.ah"
 
72652
#endif
 
72653
namespace Puma {
 
72654
 
 
72655
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72656
 
 
72657
#line 72658 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72658
} // closed Puma
 
72659
 
 
72660
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72661
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72662
#include "CExprResolveH.ah"
 
72663
#endif
 
72664
namespace Puma {
 
72665
 
 
72666
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60417
72667
class CT_TemplateName : public CT_SpecialName {
60418
 
#line 60419 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72668
#line 72669 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72669
  friend class ::CCExprResolve;
 
72670
  friend class ::CExprResolve;
60419
72671
  friend class ::WinIfExists;
60420
72672
  friend class ::WinImportHandler;
60421
72673
  friend class ::WinMacros;
60422
 
  friend class ::CMatchSyntax;
60423
 
  friend class ::ExtGnu;
 
72674
  friend class ::WinAsm;
 
72675
  friend class ::WinDeclSpecs;
 
72676
  friend class ::WinMemberExplSpec;
 
72677
  friend class ::WinTypeKeywords;
 
72678
  friend class ::WinFriend;
60424
72679
  friend class ::ExtAC;
60425
72680
  friend class ::ExtACBuilderCoupling;
60426
72681
  friend class ::ExtACSyntaxCoupling;
60427
72682
  friend class ::ExtACTree;
60428
72683
  friend class ::ExtACKeywords;
60429
 
  friend class ::WinAsm;
60430
 
  friend class ::WinDeclSpecs;
60431
 
  friend class ::WinMemberExplSpec;
60432
 
  friend class ::WinTypeKeywords;
 
72684
  friend class ::ExtGnu;
60433
72685
  friend class ::PragmaOnceUnitState;
60434
72686
  friend class ::PragmaOnce;
60435
 
  friend class ::CCExprResolve;
60436
 
  friend class ::CExprResolve;
 
72687
  friend class ::CMatchSyntax;
60437
72688
 
60438
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72689
#line 964 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60439
72690
 
60440
72691
public:
 
72692
  /** Constructor.
 
72693
   *  \param n The template class or function name.
 
72694
   *  \param a The template argument list. */
60441
72695
  CT_TemplateName (CTree *n, CTree *a) 
60442
72696
   { AddSon (n); AddSon (a); }
 
72697
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60443
72698
  static const char *NodeId ();
 
72699
  /** Get the name of the node. Can be compared with NodeId(). */
60444
72700
  const char *NodeName () const { return NodeId (); }
 
72701
  /** Get the template argument list. */
60445
72702
  CT_TemplateArgList *Arguments () const 
60446
72703
   { return (CT_TemplateArgList*)Son (Sons ()-1); }
 
72704
  /** Get the template class or function name. */
60447
72705
  CT_SimpleName *TemplateName () const 
60448
72706
   { return (CT_SimpleName*)Son (Sons ()-2); }
60449
72707
  // may change in the future
60450
72708
  const char *Text () const { return TemplateName ()->Text (); }
60451
 
  // special new / delete with reusing memory
 
72709
 
 
72710
public:
 
72711
  /** Own new operator reusing memory. */
60452
72712
  void *operator new (size_t);
60453
 
  void  operator delete (void *);
 
72713
  /** Own delete operator. */
 
72714
  void operator delete (void *);
60454
72715
   private:
60455
72716
  typedef CT_TemplateName CCExprResolveExpr;
60456
72717
 
60457
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72718
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
60458
72719
 public :
60459
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72720
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
60460
72721
  typedef CT_TemplateName CExprResolveExpr;
60461
72722
 
60462
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72723
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
60463
72724
 public :
60464
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
60465
 
#line 559 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72725
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72726
#line 989 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60466
72727
};
60467
72728
 
 
72729
/** \class CT_OperatorName CTree.h Puma/CTree.h
 
72730
 *  Tree node representing the name of an overloaded operator. */
60468
72731
 
60469
 
#line 60470 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72732
#line 72733 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
60470
72733
} // closed Puma
 
72734
class CCExprResolve;
 
72735
class CExprResolve;
60471
72736
class WinIfExists;
60472
72737
class WinImportHandler;
60473
72738
class WinMacros;
60474
 
class CMatchSyntax;
60475
 
class ExtGnu;
 
72739
class WinAsm;
 
72740
class WinDeclSpecs;
 
72741
class WinMemberExplSpec;
 
72742
class WinTypeKeywords;
 
72743
class WinFriend;
60476
72744
class ExtAC;
60477
72745
class ExtACBuilderCoupling;
60478
72746
class ExtACSyntaxCoupling;
60479
72747
class ExtACTree;
60480
72748
class ExtACKeywords;
60481
 
class WinAsm;
60482
 
class WinDeclSpecs;
60483
 
class WinMemberExplSpec;
60484
 
class WinTypeKeywords;
 
72749
class ExtGnu;
60485
72750
class PragmaOnceUnitState;
60486
72751
class PragmaOnce;
60487
 
class CCExprResolve;
60488
 
class CExprResolve;
60489
 
namespace Puma {
60490
 
 
60491
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72752
class CMatchSyntax;
 
72753
namespace Puma {
 
72754
 
 
72755
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72756
 
 
72757
#line 72758 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72758
} // closed Puma
 
72759
 
 
72760
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72761
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72762
#include "CCExprResolveH.ah"
 
72763
#endif
 
72764
namespace Puma {
 
72765
 
 
72766
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72767
 
 
72768
#line 72769 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72769
} // closed Puma
 
72770
 
 
72771
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72772
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72773
#include "CExprResolveH.ah"
 
72774
#endif
 
72775
namespace Puma {
 
72776
 
 
72777
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60492
72778
class CT_OperatorName : public CT_SpecialName {
60493
 
#line 60494 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72779
#line 72780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72780
  friend class ::CCExprResolve;
 
72781
  friend class ::CExprResolve;
60494
72782
  friend class ::WinIfExists;
60495
72783
  friend class ::WinImportHandler;
60496
72784
  friend class ::WinMacros;
60497
 
  friend class ::CMatchSyntax;
60498
 
  friend class ::ExtGnu;
 
72785
  friend class ::WinAsm;
 
72786
  friend class ::WinDeclSpecs;
 
72787
  friend class ::WinMemberExplSpec;
 
72788
  friend class ::WinTypeKeywords;
 
72789
  friend class ::WinFriend;
60499
72790
  friend class ::ExtAC;
60500
72791
  friend class ::ExtACBuilderCoupling;
60501
72792
  friend class ::ExtACSyntaxCoupling;
60502
72793
  friend class ::ExtACTree;
60503
72794
  friend class ::ExtACKeywords;
60504
 
  friend class ::WinAsm;
60505
 
  friend class ::WinDeclSpecs;
60506
 
  friend class ::WinMemberExplSpec;
60507
 
  friend class ::WinTypeKeywords;
 
72795
  friend class ::ExtGnu;
60508
72796
  friend class ::PragmaOnceUnitState;
60509
72797
  friend class ::PragmaOnce;
60510
 
  friend class ::CCExprResolve;
60511
 
  friend class ::CExprResolve;
 
72798
  friend class ::CMatchSyntax;
60512
72799
 
60513
 
#line 561 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72800
#line 993 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60514
72801
 
60515
72802
  int _oper;
60516
72803
 
60517
72804
public:
60518
 
  enum { // complex operators
60519
 
    FCT_CALL = -100,
60520
 
    SUBSCRIPT,
60521
 
    NEW_ARRAY,
60522
 
    DEL_ARRAY
 
72805
  /** Complex operator types. */
 
72806
  enum { 
 
72807
    FCT_CALL = -100,  /** Function call operator, i.e. (). */
 
72808
    SUBSCRIPT,        /** Array subscript operator, i.e. []. */
 
72809
    NEW_ARRAY,        /** New array operator, i.e. new[]. */
 
72810
    DEL_ARRAY         /** Delete array operator, i.e. delete[]. */
60523
72811
  };
60524
72812
 
60525
72813
public:
60526
 
  CT_OperatorName (CTree *);
60527
 
  CT_OperatorName (CTree *, CTree *, CTree *, CTree *);
 
72814
  /** Constructor.
 
72815
   *  \param op The token containing the operator. */
 
72816
  CT_OperatorName (CTree *op);
 
72817
  /** Constructor.
 
72818
   *  \param f The operator function keyword 'operator'.
 
72819
   *  \param op The token containing the operator. 
 
72820
   *  \param o The token of '[' or '('.
 
72821
   *  \param c The token of ']' or ')'. */
 
72822
  CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c);
 
72823
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60528
72824
  static const char *NodeId ();
 
72825
  /** Get the name of the node. Can be compared with NodeId(). */
60529
72826
  const char *NodeName () const { return NodeId (); }
 
72827
  /** Get the operator type (either the token type or one of 
 
72828
   *  the complex operator types). */
60530
72829
  int Operator () const { return _oper; }
60531
 
  // special new / delete with reusing memory
 
72830
 
 
72831
public:
 
72832
  /** Own new operator reusing memory. */
60532
72833
  void *operator new (size_t);
60533
 
  void  operator delete (void *);
 
72834
  /** Own delete operator. */
 
72835
  void operator delete (void *);
60534
72836
   private:
60535
72837
  typedef CT_OperatorName CCExprResolveExpr;
60536
72838
 
60537
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72839
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
60538
72840
 public :
60539
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72841
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
60540
72842
  typedef CT_OperatorName CExprResolveExpr;
60541
72843
 
60542
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72844
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
60543
72845
 public :
60544
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
60545
 
#line 581 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72846
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72847
#line 1028 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60546
72848
};
60547
72849
 
 
72850
/** \class CT_ConversionName CTree.h Puma/CTree.h
 
72851
 *  Tree node representing the name of a conversion function. */
60548
72852
 
60549
 
#line 60550 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72853
#line 72854 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
60550
72854
} // closed Puma
 
72855
class CCExprResolve;
 
72856
class CExprResolve;
60551
72857
class WinIfExists;
60552
72858
class WinImportHandler;
60553
72859
class WinMacros;
60554
 
class CMatchSyntax;
60555
 
class ExtGnu;
 
72860
class WinAsm;
 
72861
class WinDeclSpecs;
 
72862
class WinMemberExplSpec;
 
72863
class WinTypeKeywords;
 
72864
class WinFriend;
60556
72865
class ExtAC;
60557
72866
class ExtACBuilderCoupling;
60558
72867
class ExtACSyntaxCoupling;
60559
72868
class ExtACTree;
60560
72869
class ExtACKeywords;
60561
 
class WinAsm;
60562
 
class WinDeclSpecs;
60563
 
class WinMemberExplSpec;
60564
 
class WinTypeKeywords;
 
72870
class ExtGnu;
60565
72871
class PragmaOnceUnitState;
60566
72872
class PragmaOnce;
60567
 
class CCExprResolve;
60568
 
class CExprResolve;
60569
 
namespace Puma {
60570
 
 
60571
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72873
class CMatchSyntax;
 
72874
namespace Puma {
 
72875
 
 
72876
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72877
 
 
72878
#line 72879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72879
} // closed Puma
 
72880
 
 
72881
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72882
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72883
#include "CCExprResolveH.ah"
 
72884
#endif
 
72885
namespace Puma {
 
72886
 
 
72887
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72888
 
 
72889
#line 72890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72890
} // closed Puma
 
72891
 
 
72892
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72893
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72894
#include "CExprResolveH.ah"
 
72895
#endif
 
72896
namespace Puma {
 
72897
 
 
72898
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60572
72899
class CT_ConversionName : public CT_SpecialName {
60573
 
#line 60574 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72900
#line 72901 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72901
  friend class ::CCExprResolve;
 
72902
  friend class ::CExprResolve;
60574
72903
  friend class ::WinIfExists;
60575
72904
  friend class ::WinImportHandler;
60576
72905
  friend class ::WinMacros;
60577
 
  friend class ::CMatchSyntax;
60578
 
  friend class ::ExtGnu;
 
72906
  friend class ::WinAsm;
 
72907
  friend class ::WinDeclSpecs;
 
72908
  friend class ::WinMemberExplSpec;
 
72909
  friend class ::WinTypeKeywords;
 
72910
  friend class ::WinFriend;
60579
72911
  friend class ::ExtAC;
60580
72912
  friend class ::ExtACBuilderCoupling;
60581
72913
  friend class ::ExtACSyntaxCoupling;
60582
72914
  friend class ::ExtACTree;
60583
72915
  friend class ::ExtACKeywords;
60584
 
  friend class ::WinAsm;
60585
 
  friend class ::WinDeclSpecs;
60586
 
  friend class ::WinMemberExplSpec;
60587
 
  friend class ::WinTypeKeywords;
 
72916
  friend class ::ExtGnu;
60588
72917
  friend class ::PragmaOnceUnitState;
60589
72918
  friend class ::PragmaOnce;
60590
 
  friend class ::CCExprResolve;
60591
 
  friend class ::CExprResolve;
 
72919
  friend class ::CMatchSyntax;
60592
72920
 
60593
 
#line 583 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72921
#line 1032 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60594
72922
 
60595
72923
public:
60596
 
  CT_ConversionName (CTree *, CTree *);
 
72924
  /** Constructor.
 
72925
   *  \param f The operator function keyword 'operator'.
 
72926
   *  \param t The sub-tree containing the conversion type. */
 
72927
  CT_ConversionName (CTree *f, CTree *t);
 
72928
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60597
72929
  static const char *NodeId ();
 
72930
  /** Get the name of the node. Can be compared with NodeId(). */
60598
72931
  const char *NodeName () const { return NodeId (); }
 
72932
  /** Get the conversion type. */
60599
72933
  CT_NamedType *TypeName () const { return (CT_NamedType*)Son (Sons ()-1); }
60600
 
  // special new / delete with reusing memory
 
72934
 
 
72935
public:
 
72936
  /** Own new operator reusing memory. */
60601
72937
  void *operator new (size_t);
60602
 
  void  operator delete (void *);
 
72938
  /** Own delete operator. */
 
72939
  void operator delete (void *);
60603
72940
   private:
60604
72941
  typedef CT_ConversionName CCExprResolveExpr;
60605
72942
 
60606
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
72943
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
60607
72944
 public :
60608
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
72945
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
60609
72946
  typedef CT_ConversionName CExprResolveExpr;
60610
72947
 
60611
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
72948
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
60612
72949
 public :
60613
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
60614
 
#line 592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72950
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
72951
#line 1050 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60615
72952
};
60616
72953
 
 
72954
/** \class CT_QualName CTree.h Puma/CTree.h
 
72955
 *  Tree node representing a qualified name, e.g. X::Y::Z. */
60617
72956
 
60618
 
#line 60619 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
72957
#line 72958 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
60619
72958
} // closed Puma
 
72959
class CCExprResolve;
 
72960
class CExprResolve;
60620
72961
class WinIfExists;
60621
72962
class WinImportHandler;
60622
72963
class WinMacros;
60623
 
class CMatchSyntax;
60624
 
class ExtGnu;
 
72964
class WinAsm;
 
72965
class WinDeclSpecs;
 
72966
class WinMemberExplSpec;
 
72967
class WinTypeKeywords;
 
72968
class WinFriend;
60625
72969
class ExtAC;
60626
72970
class ExtACBuilderCoupling;
60627
72971
class ExtACSyntaxCoupling;
60628
72972
class ExtACTree;
60629
72973
class ExtACKeywords;
60630
 
class WinAsm;
60631
 
class WinDeclSpecs;
60632
 
class WinMemberExplSpec;
60633
 
class WinTypeKeywords;
 
72974
class ExtGnu;
60634
72975
class PragmaOnceUnitState;
60635
72976
class PragmaOnce;
60636
 
class CCExprResolve;
60637
 
class CExprResolve;
60638
 
namespace Puma {
60639
 
 
60640
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72977
class CMatchSyntax;
 
72978
namespace Puma {
 
72979
 
 
72980
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72981
 
 
72982
#line 72983 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72983
} // closed Puma
 
72984
 
 
72985
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72986
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
72987
#include "CCExprResolveH.ah"
 
72988
#endif
 
72989
namespace Puma {
 
72990
 
 
72991
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
72992
 
 
72993
#line 72994 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
72994
} // closed Puma
 
72995
 
 
72996
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72997
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
72998
#include "CExprResolveH.ah"
 
72999
#endif
 
73000
namespace Puma {
 
73001
 
 
73002
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60641
73003
class CT_QualName : public CT_SimpleName {
60642
 
#line 60643 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73004
#line 73005 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73005
  friend class ::CCExprResolve;
 
73006
  friend class ::CExprResolve;
60643
73007
  friend class ::WinIfExists;
60644
73008
  friend class ::WinImportHandler;
60645
73009
  friend class ::WinMacros;
60646
 
  friend class ::CMatchSyntax;
60647
 
  friend class ::ExtGnu;
 
73010
  friend class ::WinAsm;
 
73011
  friend class ::WinDeclSpecs;
 
73012
  friend class ::WinMemberExplSpec;
 
73013
  friend class ::WinTypeKeywords;
 
73014
  friend class ::WinFriend;
60648
73015
  friend class ::ExtAC;
60649
73016
  friend class ::ExtACBuilderCoupling;
60650
73017
  friend class ::ExtACSyntaxCoupling;
60651
73018
  friend class ::ExtACTree;
60652
73019
  friend class ::ExtACKeywords;
60653
 
  friend class ::WinAsm;
60654
 
  friend class ::WinDeclSpecs;
60655
 
  friend class ::WinMemberExplSpec;
60656
 
  friend class ::WinTypeKeywords;
 
73020
  friend class ::ExtGnu;
60657
73021
  friend class ::PragmaOnceUnitState;
60658
73022
  friend class ::PragmaOnce;
60659
 
  friend class ::CCExprResolve;
60660
 
  friend class ::CExprResolve;
 
73023
  friend class ::CMatchSyntax;
60661
73024
 
60662
 
#line 594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73025
#line 1054 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60663
73026
 
60664
73027
public:
 
73028
  /** Constructor.
 
73029
   *  \param size The initial number sub-names plus separators. */
60665
73030
  CT_QualName (int size = 3) : 
60666
73031
    CT_SimpleName (size, CT_List::SEPARATORS) {}
 
73032
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60667
73033
  static const char *NodeId ();
 
73034
  /** Get the name of the node. Can be compared with NodeId(). */
60668
73035
  const char *NodeName () const { return NodeId (); }
60669
 
  void print (ostream &) const;
 
73036
  /** Print the qualified name on the given stream. 
 
73037
   *  \param os The output stream. */
 
73038
  void print (ostream &os) const;
 
73039
  /** Get the last name of the qualified name, e.g. Z of qualified name X::Y::Z. */
60670
73040
  CT_SimpleName *Name () const { return (CT_SimpleName*)Son (Sons ()-1); }
 
73041
  /** Get the string containing the last name of the qualified name. */
60671
73042
  const char *Text () const { return Name ()->Text (); }
 
73043
  /** Get the type of the last name. */
60672
73044
  CTypeInfo *Type () const { return Name ()->Type (); }
 
73045
  /** Get the value of the last name. */
60673
73046
  CExprValue *Value () const { return Name ()->Value (); }
 
73047
  /** Get the semantic value object of the last name. */
60674
73048
  CSemValue *SemValue () const { return Name ()->SemValue (); }
 
73049
  /** Get the semantic information object of the last name. */
60675
73050
  CSemObject *SemObject () const { return Name ()->SemObject (); }
60676
 
  // special new / delete with reusing memory
 
73051
 
 
73052
public:
 
73053
  /** Own new operator reusing memory. */
60677
73054
  void *operator new (size_t);
60678
 
  void  operator delete (void *);
 
73055
  /** Own delete operator. */
 
73056
  void operator delete (void *);
60679
73057
   private:
60680
73058
  typedef CT_QualName CCExprResolveExpr;
60681
73059
 
60682
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73060
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
60683
73061
 public :
60684
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73062
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
60685
73063
  typedef CT_QualName CExprResolveExpr;
60686
73064
 
60687
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73065
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
60688
73066
 public :
60689
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
60690
 
#line 610 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73067
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73068
#line 1085 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60691
73069
};
60692
73070
 
 
73071
/** \class CT_RootQualName CTree.h Puma/CTree.h
 
73072
 *  Tree node representing a qualified name with introducing name separator,
 
73073
 *  e.g. ::X::Y::Z. */
60693
73074
 
60694
 
#line 60695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73075
#line 73076 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
60695
73076
} // closed Puma
 
73077
class CCExprResolve;
 
73078
class CExprResolve;
60696
73079
class WinIfExists;
60697
73080
class WinImportHandler;
60698
73081
class WinMacros;
60699
 
class CMatchSyntax;
60700
 
class ExtGnu;
 
73082
class WinAsm;
 
73083
class WinDeclSpecs;
 
73084
class WinMemberExplSpec;
 
73085
class WinTypeKeywords;
 
73086
class WinFriend;
60701
73087
class ExtAC;
60702
73088
class ExtACBuilderCoupling;
60703
73089
class ExtACSyntaxCoupling;
60704
73090
class ExtACTree;
60705
73091
class ExtACKeywords;
60706
 
class WinAsm;
60707
 
class WinDeclSpecs;
60708
 
class WinMemberExplSpec;
60709
 
class WinTypeKeywords;
 
73092
class ExtGnu;
60710
73093
class PragmaOnceUnitState;
60711
73094
class PragmaOnce;
60712
 
class CCExprResolve;
60713
 
class CExprResolve;
60714
 
namespace Puma {
60715
 
 
60716
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73095
class CMatchSyntax;
 
73096
namespace Puma {
 
73097
 
 
73098
#line 1090 "/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/Parser.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 1090 "/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/Parser.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 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60717
73121
class CT_RootQualName : public CT_QualName {
60718
 
#line 60719 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73122
#line 73123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73123
  friend class ::CCExprResolve;
 
73124
  friend class ::CExprResolve;
60719
73125
  friend class ::WinIfExists;
60720
73126
  friend class ::WinImportHandler;
60721
73127
  friend class ::WinMacros;
60722
 
  friend class ::CMatchSyntax;
60723
 
  friend class ::ExtGnu;
 
73128
  friend class ::WinAsm;
 
73129
  friend class ::WinDeclSpecs;
 
73130
  friend class ::WinMemberExplSpec;
 
73131
  friend class ::WinTypeKeywords;
 
73132
  friend class ::WinFriend;
60724
73133
  friend class ::ExtAC;
60725
73134
  friend class ::ExtACBuilderCoupling;
60726
73135
  friend class ::ExtACSyntaxCoupling;
60727
73136
  friend class ::ExtACTree;
60728
73137
  friend class ::ExtACKeywords;
60729
 
  friend class ::WinAsm;
60730
 
  friend class ::WinDeclSpecs;
60731
 
  friend class ::WinMemberExplSpec;
60732
 
  friend class ::WinTypeKeywords;
 
73138
  friend class ::ExtGnu;
60733
73139
  friend class ::PragmaOnceUnitState;
60734
73140
  friend class ::PragmaOnce;
60735
 
  friend class ::CCExprResolve;
60736
 
  friend class ::CExprResolve;
 
73141
  friend class ::CMatchSyntax;
60737
73142
 
60738
 
#line 612 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73143
#line 1090 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60739
73144
 
60740
73145
public:
 
73146
  /** Constructor.
 
73147
   *  \param size Initial number of sub-name plus separator. */
60741
73148
  CT_RootQualName (int size = 2) : 
60742
73149
    CT_QualName (size) { AddProperties (INTRO); }
 
73150
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60743
73151
  static const char *NodeId ();
 
73152
  /** Get the name of the node. Can be compared with NodeId(). */
60744
73153
  const char *NodeName () const { return NodeId (); }
60745
 
  // special new / delete with reusing memory
 
73154
 
 
73155
public:
 
73156
  /** Own new operator reusing memory. */
60746
73157
  void *operator new (size_t);
60747
 
  void  operator delete (void *);
 
73158
  /** Own delete operator. */
 
73159
  void operator delete (void *);
60748
73160
   private:
60749
73161
  typedef CT_RootQualName CCExprResolveExpr;
60750
73162
 
60751
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73163
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
60752
73164
 public :
60753
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73165
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
60754
73166
  typedef CT_RootQualName CExprResolveExpr;
60755
73167
 
60756
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73168
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
60757
73169
 public :
60758
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
60759
 
#line 621 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73170
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73171
#line 1106 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60760
73172
};
60761
73173
 
 
73174
/** \class CT_BinaryExpr CTree.h Puma/CTree.h
 
73175
 *  Tree node representing a binary expression, e.g. a+b. */
60762
73176
 
60763
 
#line 60764 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73177
#line 73178 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
60764
73178
} // closed Puma
 
73179
class CCExprResolve;
 
73180
class CExprResolve;
60765
73181
class WinIfExists;
60766
73182
class WinImportHandler;
60767
73183
class WinMacros;
60768
 
class CMatchSyntax;
60769
 
class ExtGnu;
 
73184
class WinAsm;
 
73185
class WinDeclSpecs;
 
73186
class WinMemberExplSpec;
 
73187
class WinTypeKeywords;
 
73188
class WinFriend;
60770
73189
class ExtAC;
60771
73190
class ExtACBuilderCoupling;
60772
73191
class ExtACSyntaxCoupling;
60773
73192
class ExtACTree;
60774
73193
class ExtACKeywords;
60775
 
class WinAsm;
60776
 
class WinDeclSpecs;
60777
 
class WinMemberExplSpec;
60778
 
class WinTypeKeywords;
 
73194
class ExtGnu;
60779
73195
class PragmaOnceUnitState;
60780
73196
class PragmaOnce;
60781
 
class CCExprResolve;
60782
 
class CExprResolve;
60783
 
namespace Puma {
60784
 
 
60785
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60786
 
class CT_BinaryExpr : public CT_Expression {
60787
 
#line 60788 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73197
class CMatchSyntax;
 
73198
namespace Puma {
 
73199
 
 
73200
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73201
 
 
73202
#line 73203 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73203
} // closed Puma
 
73204
 
 
73205
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73206
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73207
#include "CCExprResolveH.ah"
 
73208
#endif
 
73209
namespace Puma {
 
73210
 
 
73211
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73212
 
 
73213
#line 73214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73214
} // closed Puma
 
73215
 
 
73216
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73217
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73218
#include "CExprResolveH.ah"
 
73219
#endif
 
73220
namespace Puma {
 
73221
 
 
73222
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73223
class CT_BinaryExpr : public CT_Call {
 
73224
#line 73225 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73225
  friend class ::CCExprResolve;
 
73226
  friend class ::CExprResolve;
60788
73227
  friend class ::WinIfExists;
60789
73228
  friend class ::WinImportHandler;
60790
73229
  friend class ::WinMacros;
60791
 
  friend class ::CMatchSyntax;
60792
 
  friend class ::ExtGnu;
 
73230
  friend class ::WinAsm;
 
73231
  friend class ::WinDeclSpecs;
 
73232
  friend class ::WinMemberExplSpec;
 
73233
  friend class ::WinTypeKeywords;
 
73234
  friend class ::WinFriend;
60793
73235
  friend class ::ExtAC;
60794
73236
  friend class ::ExtACBuilderCoupling;
60795
73237
  friend class ::ExtACSyntaxCoupling;
60796
73238
  friend class ::ExtACTree;
60797
73239
  friend class ::ExtACKeywords;
60798
 
  friend class ::WinAsm;
60799
 
  friend class ::WinDeclSpecs;
60800
 
  friend class ::WinMemberExplSpec;
60801
 
  friend class ::WinTypeKeywords;
 
73240
  friend class ::ExtGnu;
60802
73241
  friend class ::PragmaOnceUnitState;
60803
73242
  friend class ::PragmaOnce;
60804
 
  friend class ::CCExprResolve;
60805
 
  friend class ::CExprResolve;
 
73243
  friend class ::CMatchSyntax;
60806
73244
 
60807
 
#line 623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73245
#line 1110 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60808
73246
 
60809
73247
  CTree *sons[3]; // expr, oper, expr
60810
73248
 
60811
73249
public:
 
73250
  /** Constructor. 
 
73251
   *  \param l Left hand side of the expression. 
 
73252
   *  \param o The operator token. 
 
73253
   *  \param r Right hand side of the expression. */
60812
73254
  CT_BinaryExpr (CTree *l, CTree *o, CTree *r) {
60813
 
    sons[0] = l; sons[1] = o; sons[2] = r;
 
73255
    AddSon (sons[0], l); AddSon (sons[1], o); AddSon (sons[2], r);
60814
73256
  }
 
73257
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60815
73258
  static const char *NodeId ();
 
73259
  /** Get the name of the node. Can be compared with NodeId(). */
60816
73260
  const char *NodeName () const { return NodeId (); }
 
73261
  /** Get the number of sons. */
60817
73262
  int Sons () const { return 3; }
 
73263
  /** Get the n-th son.
 
73264
   *  \param n The index of the son.
 
73265
   *  \return The n-th son or NULL. */
60818
73266
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
73267
  /** Replace a son.
 
73268
   *  \param old_son The son to replace.
 
73269
   *  \param new_son The new son. */
60819
73270
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
60820
73271
    CTree::ReplaceSon (sons, 3, old_son, new_son);
60821
73272
  }
60822
73273
   private:
60823
73274
  typedef CT_BinaryExpr CCExprResolveExpr;
60824
73275
 
60825
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73276
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
60826
73277
 public :
60827
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73278
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
60828
73279
  typedef CT_BinaryExpr CExprResolveExpr;
60829
73280
 
60830
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73281
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
60831
73282
 public :
60832
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
60833
 
#line 637 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73283
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73284
#line 1137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60834
73285
};
60835
73286
 
 
73287
/** \class CT_MembPtrExpr CTree.h Puma/CTree.h
 
73288
 *  Tree node representing a member pointer expression, e.g. a->b. */
60836
73289
 
60837
 
#line 60838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73290
#line 73291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
60838
73291
} // closed Puma
 
73292
class CCExprResolve;
 
73293
class CExprResolve;
60839
73294
class WinIfExists;
60840
73295
class WinImportHandler;
60841
73296
class WinMacros;
60842
 
class CMatchSyntax;
60843
 
class ExtGnu;
 
73297
class WinAsm;
 
73298
class WinDeclSpecs;
 
73299
class WinMemberExplSpec;
 
73300
class WinTypeKeywords;
 
73301
class WinFriend;
60844
73302
class ExtAC;
60845
73303
class ExtACBuilderCoupling;
60846
73304
class ExtACSyntaxCoupling;
60847
73305
class ExtACTree;
60848
73306
class ExtACKeywords;
60849
 
class WinAsm;
60850
 
class WinDeclSpecs;
60851
 
class WinMemberExplSpec;
60852
 
class WinTypeKeywords;
 
73307
class ExtGnu;
60853
73308
class PragmaOnceUnitState;
60854
73309
class PragmaOnce;
60855
 
class CCExprResolve;
60856
 
class CExprResolve;
60857
 
namespace Puma {
60858
 
 
60859
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60860
 
class CT_MembPtrExpr : public CT_BinaryExpr, public CSemObject {
60861
 
#line 60862 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73310
class CMatchSyntax;
 
73311
namespace Puma {
 
73312
 
 
73313
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73314
 
 
73315
#line 73316 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73316
} // closed Puma
 
73317
 
 
73318
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73319
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73320
#include "CCExprResolveH.ah"
 
73321
#endif
 
73322
namespace Puma {
 
73323
 
 
73324
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73325
 
 
73326
#line 73327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73327
} // closed Puma
 
73328
 
 
73329
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73330
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73331
#include "CExprResolveH.ah"
 
73332
#endif
 
73333
namespace Puma {
 
73334
 
 
73335
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73336
class CT_MembPtrExpr : public CT_Expression, public CSemObject {
 
73337
#line 73338 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73338
  friend class ::CCExprResolve;
 
73339
  friend class ::CExprResolve;
60862
73340
  friend class ::WinIfExists;
60863
73341
  friend class ::WinImportHandler;
60864
73342
  friend class ::WinMacros;
60865
 
  friend class ::CMatchSyntax;
60866
 
  friend class ::ExtGnu;
 
73343
  friend class ::WinAsm;
 
73344
  friend class ::WinDeclSpecs;
 
73345
  friend class ::WinMemberExplSpec;
 
73346
  friend class ::WinTypeKeywords;
 
73347
  friend class ::WinFriend;
60867
73348
  friend class ::ExtAC;
60868
73349
  friend class ::ExtACBuilderCoupling;
60869
73350
  friend class ::ExtACSyntaxCoupling;
60870
73351
  friend class ::ExtACTree;
60871
73352
  friend class ::ExtACKeywords;
60872
 
  friend class ::WinAsm;
60873
 
  friend class ::WinDeclSpecs;
60874
 
  friend class ::WinMemberExplSpec;
60875
 
  friend class ::WinTypeKeywords;
 
73353
  friend class ::ExtGnu;
60876
73354
  friend class ::PragmaOnceUnitState;
60877
73355
  friend class ::PragmaOnce;
60878
 
  friend class ::CCExprResolve;
60879
 
  friend class ::CExprResolve;
60880
 
 
60881
 
#line 639 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60882
 
 
 
73356
  friend class ::CMatchSyntax;
 
73357
 
 
73358
#line 1141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73359
 
 
73360
  CTree *sons[3]; // expr, oper, expr
 
73361
  
60883
73362
public:
60884
 
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) :
60885
 
    CT_BinaryExpr (e, o, i) {}
 
73363
  /** Constructor.
 
73364
   *  \param e Expression on which to call the member.
 
73365
   *  \param o The arrow operator token.
 
73366
   *  \param i The member name. */
 
73367
  CT_MembPtrExpr (CTree *e, CTree *o, CTree *i) {
 
73368
    AddSon (sons[0], e); AddSon (sons[1], o); AddSon (sons[2], i);
 
73369
  }
 
73370
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60886
73371
  static const char *NodeId ();
 
73372
  /** Get the name of the node. Can be compared with NodeId(). */
60887
73373
  const char *NodeName () const { return NodeId (); }
60888
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
73374
  /** Get the number of sons. */
 
73375
  int Sons () const { return 3; }
 
73376
  /** Get the n-th son.
 
73377
   *  \param n The index of the son.
 
73378
   *  \return The n-th son or NULL. */
 
73379
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
73380
  /** Replace a son.
 
73381
   *  \param old_son The son to replace.
 
73382
   *  \param new_son The new son. */
 
73383
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
73384
    CTree::ReplaceSon (sons, 3, old_son, new_son);
 
73385
  }
60889
73386
   private:
60890
73387
  typedef CT_MembPtrExpr CCExprResolveExpr;
60891
73388
 
60892
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73389
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
60893
73390
 public :
60894
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73391
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
60895
73392
  typedef CT_MembPtrExpr CExprResolveExpr;
60896
73393
 
60897
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73394
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
60898
73395
 public :
60899
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
60900
 
#line 646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73396
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73397
#line 1168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60901
73398
};
60902
73399
 
 
73400
/** \class CT_MembRefExpr CTree.h Puma/CTree.h
 
73401
 *  Tree node representing a member reference expression, e.g. a.b. */
60903
73402
 
60904
 
#line 60905 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73403
#line 73404 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
60905
73404
} // closed Puma
 
73405
class CCExprResolve;
 
73406
class CExprResolve;
60906
73407
class WinIfExists;
60907
73408
class WinImportHandler;
60908
73409
class WinMacros;
60909
 
class CMatchSyntax;
60910
 
class ExtGnu;
 
73410
class WinAsm;
 
73411
class WinDeclSpecs;
 
73412
class WinMemberExplSpec;
 
73413
class WinTypeKeywords;
 
73414
class WinFriend;
60911
73415
class ExtAC;
60912
73416
class ExtACBuilderCoupling;
60913
73417
class ExtACSyntaxCoupling;
60914
73418
class ExtACTree;
60915
73419
class ExtACKeywords;
60916
 
class WinAsm;
60917
 
class WinDeclSpecs;
60918
 
class WinMemberExplSpec;
60919
 
class WinTypeKeywords;
 
73420
class ExtGnu;
60920
73421
class PragmaOnceUnitState;
60921
73422
class PragmaOnce;
60922
 
class CCExprResolve;
60923
 
class CExprResolve;
60924
 
namespace Puma {
60925
 
 
60926
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73423
class CMatchSyntax;
 
73424
namespace Puma {
 
73425
 
 
73426
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73427
 
 
73428
#line 73429 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73429
} // closed Puma
 
73430
 
 
73431
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73432
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73433
#include "CCExprResolveH.ah"
 
73434
#endif
 
73435
namespace Puma {
 
73436
 
 
73437
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73438
 
 
73439
#line 73440 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73440
} // closed Puma
 
73441
 
 
73442
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73443
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73444
#include "CExprResolveH.ah"
 
73445
#endif
 
73446
namespace Puma {
 
73447
 
 
73448
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60927
73449
class CT_MembRefExpr : public CT_MembPtrExpr {
60928
 
#line 60929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73450
#line 73451 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73451
  friend class ::CCExprResolve;
 
73452
  friend class ::CExprResolve;
60929
73453
  friend class ::WinIfExists;
60930
73454
  friend class ::WinImportHandler;
60931
73455
  friend class ::WinMacros;
60932
 
  friend class ::CMatchSyntax;
60933
 
  friend class ::ExtGnu;
 
73456
  friend class ::WinAsm;
 
73457
  friend class ::WinDeclSpecs;
 
73458
  friend class ::WinMemberExplSpec;
 
73459
  friend class ::WinTypeKeywords;
 
73460
  friend class ::WinFriend;
60934
73461
  friend class ::ExtAC;
60935
73462
  friend class ::ExtACBuilderCoupling;
60936
73463
  friend class ::ExtACSyntaxCoupling;
60937
73464
  friend class ::ExtACTree;
60938
73465
  friend class ::ExtACKeywords;
60939
 
  friend class ::WinAsm;
60940
 
  friend class ::WinDeclSpecs;
60941
 
  friend class ::WinMemberExplSpec;
60942
 
  friend class ::WinTypeKeywords;
 
73466
  friend class ::ExtGnu;
60943
73467
  friend class ::PragmaOnceUnitState;
60944
73468
  friend class ::PragmaOnce;
60945
 
  friend class ::CCExprResolve;
60946
 
  friend class ::CExprResolve;
 
73469
  friend class ::CMatchSyntax;
60947
73470
 
60948
 
#line 648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73471
#line 1172 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60949
73472
 
60950
73473
public:
 
73474
  /** Constructor.
 
73475
   *  \param e Expression on which to call the member.
 
73476
   *  \param o The dot operator.
 
73477
   *  \param i The member name. */
60951
73478
  CT_MembRefExpr (CTree *e, CTree *o, CTree *i) :
60952
73479
    CT_MembPtrExpr (e, o, i) {}
 
73480
  /** Get the identifier for this node type. Can be compared with NodeName(). */
60953
73481
  static const char *NodeId ();
 
73482
  /** Get the name of the node. Can be compared with NodeId(). */
60954
73483
  const char *NodeName () const { return NodeId (); }
60955
73484
   private:
60956
73485
  typedef CT_MembRefExpr CCExprResolveExpr;
60957
73486
 
60958
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73487
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
60959
73488
 public :
60960
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73489
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
60961
73490
  typedef CT_MembRefExpr CExprResolveExpr;
60962
73491
 
60963
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73492
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
60964
73493
 public :
60965
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
60966
 
#line 654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73494
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73495
#line 1184 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
60967
73496
};
60968
73497
 
 
73498
/** \class CT_UnaryExpr CTree.h Puma/CTree.h
 
73499
 *  Base class for tree nodes representing unary expressions. */
60969
73500
 
60970
 
#line 60971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73501
#line 73502 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
60971
73502
} // closed Puma
 
73503
class CCExprResolve;
 
73504
class CExprResolve;
60972
73505
class WinIfExists;
60973
73506
class WinImportHandler;
60974
73507
class WinMacros;
60975
 
class CMatchSyntax;
60976
 
class ExtGnu;
 
73508
class WinAsm;
 
73509
class WinDeclSpecs;
 
73510
class WinMemberExplSpec;
 
73511
class WinTypeKeywords;
 
73512
class WinFriend;
60977
73513
class ExtAC;
60978
73514
class ExtACBuilderCoupling;
60979
73515
class ExtACSyntaxCoupling;
60980
73516
class ExtACTree;
60981
73517
class ExtACKeywords;
60982
 
class WinAsm;
60983
 
class WinDeclSpecs;
60984
 
class WinMemberExplSpec;
60985
 
class WinTypeKeywords;
 
73518
class ExtGnu;
60986
73519
class PragmaOnceUnitState;
60987
73520
class PragmaOnce;
60988
 
class CCExprResolve;
60989
 
class CExprResolve;
60990
 
namespace Puma {
60991
 
 
60992
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
60993
 
class CT_UnaryExpr : public CT_Expression {
60994
 
#line 60995 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73521
class CMatchSyntax;
 
73522
namespace Puma {
 
73523
 
 
73524
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73525
 
 
73526
#line 73527 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73527
} // closed Puma
 
73528
 
 
73529
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73530
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73531
#include "CCExprResolveH.ah"
 
73532
#endif
 
73533
namespace Puma {
 
73534
 
 
73535
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73536
 
 
73537
#line 73538 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73538
} // closed Puma
 
73539
 
 
73540
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73541
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73542
#include "CExprResolveH.ah"
 
73543
#endif
 
73544
namespace Puma {
 
73545
 
 
73546
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73547
class CT_UnaryExpr : public CT_Call {
 
73548
#line 73549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73549
  friend class ::CCExprResolve;
 
73550
  friend class ::CExprResolve;
60995
73551
  friend class ::WinIfExists;
60996
73552
  friend class ::WinImportHandler;
60997
73553
  friend class ::WinMacros;
60998
 
  friend class ::CMatchSyntax;
60999
 
  friend class ::ExtGnu;
 
73554
  friend class ::WinAsm;
 
73555
  friend class ::WinDeclSpecs;
 
73556
  friend class ::WinMemberExplSpec;
 
73557
  friend class ::WinTypeKeywords;
 
73558
  friend class ::WinFriend;
61000
73559
  friend class ::ExtAC;
61001
73560
  friend class ::ExtACBuilderCoupling;
61002
73561
  friend class ::ExtACSyntaxCoupling;
61003
73562
  friend class ::ExtACTree;
61004
73563
  friend class ::ExtACKeywords;
61005
 
  friend class ::WinAsm;
61006
 
  friend class ::WinDeclSpecs;
61007
 
  friend class ::WinMemberExplSpec;
61008
 
  friend class ::WinTypeKeywords;
 
73564
  friend class ::ExtGnu;
61009
73565
  friend class ::PragmaOnceUnitState;
61010
73566
  friend class ::PragmaOnce;
61011
 
  friend class ::CCExprResolve;
61012
 
  friend class ::CExprResolve;
 
73567
  friend class ::CMatchSyntax;
61013
73568
 
61014
 
#line 656 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73569
#line 1188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61015
73570
 
61016
73571
  CTree *sons[2]; // oper, expr
61017
73572
 
61018
73573
public:
61019
 
  CT_UnaryExpr (CTree *o, CTree *e) { sons[0] = o; sons[1] = e; }
 
73574
  /** Constructor.
 
73575
   *  \param o The unary operator.
 
73576
   *  \param e The expression on which the operator is invoked. */
 
73577
  CT_UnaryExpr (CTree *o, CTree *e) { AddSon (sons[0], o); AddSon (sons[1], e); }
 
73578
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61020
73579
  static const char *NodeId ();
 
73580
  /** Get the name of the node. Can be compared with NodeId(). */
61021
73581
  const char *NodeName () const { return NodeId (); }
 
73582
  /** Get the number of sons. */
61022
73583
  int Sons () const { return 2; }
 
73584
  /** Get the n-th son.
 
73585
   *  \param n The index of the son.
 
73586
   *  \return The n-th son or NULL. */
61023
73587
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
73588
  /** Replace a son.
 
73589
   *  \param old_son The son to replace.
 
73590
   *  \param new_son The new son. */
61024
73591
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61025
73592
    CTree::ReplaceSon (sons, 2, old_son, new_son);
61026
73593
  }
 
73594
  /** Get the expression node. */
61027
73595
  CTree *Expr () const { return sons[1]; }
61028
73596
   private:
61029
73597
  typedef CT_UnaryExpr CCExprResolveExpr;
61030
73598
 
61031
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73599
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
61032
73600
 public :
61033
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73601
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
61034
73602
  typedef CT_UnaryExpr CExprResolveExpr;
61035
73603
 
61036
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73604
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
61037
73605
 public :
61038
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
61039
 
#line 669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73606
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73607
#line 1214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61040
73608
};
61041
73609
 
 
73610
/** \class CT_PostfixExpr CTree.h Puma/CTree.h
 
73611
 *  Tree node representing a postfix expression, e.g. a++. */
61042
73612
 
61043
 
#line 61044 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73613
#line 73614 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
61044
73614
} // closed Puma
 
73615
class CCExprResolve;
 
73616
class CExprResolve;
61045
73617
class WinIfExists;
61046
73618
class WinImportHandler;
61047
73619
class WinMacros;
61048
 
class CMatchSyntax;
61049
 
class ExtGnu;
 
73620
class WinAsm;
 
73621
class WinDeclSpecs;
 
73622
class WinMemberExplSpec;
 
73623
class WinTypeKeywords;
 
73624
class WinFriend;
61050
73625
class ExtAC;
61051
73626
class ExtACBuilderCoupling;
61052
73627
class ExtACSyntaxCoupling;
61053
73628
class ExtACTree;
61054
73629
class ExtACKeywords;
61055
 
class WinAsm;
61056
 
class WinDeclSpecs;
61057
 
class WinMemberExplSpec;
61058
 
class WinTypeKeywords;
 
73630
class ExtGnu;
61059
73631
class PragmaOnceUnitState;
61060
73632
class PragmaOnce;
61061
 
class CCExprResolve;
61062
 
class CExprResolve;
61063
 
namespace Puma {
61064
 
 
61065
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73633
class CMatchSyntax;
 
73634
namespace Puma {
 
73635
 
 
73636
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73637
 
 
73638
#line 73639 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73639
} // closed Puma
 
73640
 
 
73641
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73642
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73643
#include "CCExprResolveH.ah"
 
73644
#endif
 
73645
namespace Puma {
 
73646
 
 
73647
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73648
 
 
73649
#line 73650 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73650
} // closed Puma
 
73651
 
 
73652
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73653
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73654
#include "CExprResolveH.ah"
 
73655
#endif
 
73656
namespace Puma {
 
73657
 
 
73658
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61066
73659
class CT_PostfixExpr : public CT_UnaryExpr {
61067
 
#line 61068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73660
#line 73661 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73661
  friend class ::CCExprResolve;
 
73662
  friend class ::CExprResolve;
61068
73663
  friend class ::WinIfExists;
61069
73664
  friend class ::WinImportHandler;
61070
73665
  friend class ::WinMacros;
61071
 
  friend class ::CMatchSyntax;
61072
 
  friend class ::ExtGnu;
 
73666
  friend class ::WinAsm;
 
73667
  friend class ::WinDeclSpecs;
 
73668
  friend class ::WinMemberExplSpec;
 
73669
  friend class ::WinTypeKeywords;
 
73670
  friend class ::WinFriend;
61073
73671
  friend class ::ExtAC;
61074
73672
  friend class ::ExtACBuilderCoupling;
61075
73673
  friend class ::ExtACSyntaxCoupling;
61076
73674
  friend class ::ExtACTree;
61077
73675
  friend class ::ExtACKeywords;
61078
 
  friend class ::WinAsm;
61079
 
  friend class ::WinDeclSpecs;
61080
 
  friend class ::WinMemberExplSpec;
61081
 
  friend class ::WinTypeKeywords;
 
73676
  friend class ::ExtGnu;
61082
73677
  friend class ::PragmaOnceUnitState;
61083
73678
  friend class ::PragmaOnce;
61084
 
  friend class ::CCExprResolve;
61085
 
  friend class ::CExprResolve;
 
73679
  friend class ::CMatchSyntax;
61086
73680
 
61087
 
#line 671 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73681
#line 1218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61088
73682
 
61089
73683
public:
 
73684
  /** Constructor.
 
73685
   *  \param e The expression on which to invoke the operator. 
 
73686
   *  \param o The postfix operator. */
61090
73687
  CT_PostfixExpr (CTree *e, CTree *o) :
61091
73688
    CT_UnaryExpr (e, o) {}
 
73689
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61092
73690
  static const char *NodeId ();
 
73691
  /** Get the name of the node. Can be compared with NodeId(). */
61093
73692
  const char *NodeName () const { return NodeId (); }
61094
73693
   private:
61095
73694
  typedef CT_PostfixExpr CCExprResolveExpr;
61096
73695
 
61097
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73696
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
61098
73697
 public :
61099
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73698
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
61100
73699
  typedef CT_PostfixExpr CExprResolveExpr;
61101
73700
 
61102
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73701
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
61103
73702
 public :
61104
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
61105
 
#line 677 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73703
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73704
#line 1229 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61106
73705
};
61107
73706
 
 
73707
/** \class CT_AddrExpr CTree.h Puma/CTree.h
 
73708
 *  Tree node representing an address expression, e.g. &a. */
61108
73709
 
61109
 
#line 61110 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73710
#line 73711 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
61110
73711
} // closed Puma
 
73712
class CCExprResolve;
 
73713
class CExprResolve;
61111
73714
class WinIfExists;
61112
73715
class WinImportHandler;
61113
73716
class WinMacros;
61114
 
class CMatchSyntax;
61115
 
class ExtGnu;
 
73717
class WinAsm;
 
73718
class WinDeclSpecs;
 
73719
class WinMemberExplSpec;
 
73720
class WinTypeKeywords;
 
73721
class WinFriend;
61116
73722
class ExtAC;
61117
73723
class ExtACBuilderCoupling;
61118
73724
class ExtACSyntaxCoupling;
61119
73725
class ExtACTree;
61120
73726
class ExtACKeywords;
61121
 
class WinAsm;
61122
 
class WinDeclSpecs;
61123
 
class WinMemberExplSpec;
61124
 
class WinTypeKeywords;
 
73727
class ExtGnu;
61125
73728
class PragmaOnceUnitState;
61126
73729
class PragmaOnce;
61127
 
class CCExprResolve;
61128
 
class CExprResolve;
61129
 
namespace Puma {
61130
 
 
61131
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73730
class CMatchSyntax;
 
73731
namespace Puma {
 
73732
 
 
73733
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73734
 
 
73735
#line 73736 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73736
} // closed Puma
 
73737
 
 
73738
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73739
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73740
#include "CCExprResolveH.ah"
 
73741
#endif
 
73742
namespace Puma {
 
73743
 
 
73744
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73745
 
 
73746
#line 73747 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73747
} // closed Puma
 
73748
 
 
73749
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73750
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73751
#include "CExprResolveH.ah"
 
73752
#endif
 
73753
namespace Puma {
 
73754
 
 
73755
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61132
73756
class CT_AddrExpr : public CT_UnaryExpr {
61133
 
#line 61134 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73757
#line 73758 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73758
  friend class ::CCExprResolve;
 
73759
  friend class ::CExprResolve;
61134
73760
  friend class ::WinIfExists;
61135
73761
  friend class ::WinImportHandler;
61136
73762
  friend class ::WinMacros;
61137
 
  friend class ::CMatchSyntax;
61138
 
  friend class ::ExtGnu;
 
73763
  friend class ::WinAsm;
 
73764
  friend class ::WinDeclSpecs;
 
73765
  friend class ::WinMemberExplSpec;
 
73766
  friend class ::WinTypeKeywords;
 
73767
  friend class ::WinFriend;
61139
73768
  friend class ::ExtAC;
61140
73769
  friend class ::ExtACBuilderCoupling;
61141
73770
  friend class ::ExtACSyntaxCoupling;
61142
73771
  friend class ::ExtACTree;
61143
73772
  friend class ::ExtACKeywords;
61144
 
  friend class ::WinAsm;
61145
 
  friend class ::WinDeclSpecs;
61146
 
  friend class ::WinMemberExplSpec;
61147
 
  friend class ::WinTypeKeywords;
 
73773
  friend class ::ExtGnu;
61148
73774
  friend class ::PragmaOnceUnitState;
61149
73775
  friend class ::PragmaOnce;
61150
 
  friend class ::CCExprResolve;
61151
 
  friend class ::CExprResolve;
 
73776
  friend class ::CMatchSyntax;
61152
73777
 
61153
 
#line 679 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73778
#line 1233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61154
73779
 
61155
73780
public:
 
73781
  /** Constructor.
 
73782
   *  \param o The address operator, i.e. '&'.
 
73783
   *  \param e The expression from which to take the address. */
61156
73784
  CT_AddrExpr (CTree *o, CTree *e) :
61157
73785
    CT_UnaryExpr (o, e) {}
 
73786
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61158
73787
  static const char *NodeId ();
 
73788
  /** Get the name of the node. Can be compared with NodeId(). */
61159
73789
  const char *NodeName () const { return NodeId (); }
61160
73790
   private:
61161
73791
  typedef CT_AddrExpr CCExprResolveExpr;
61162
73792
 
61163
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73793
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
61164
73794
 public :
61165
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73795
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
61166
73796
  typedef CT_AddrExpr CExprResolveExpr;
61167
73797
 
61168
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73798
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
61169
73799
 public :
61170
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
61171
 
#line 685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73800
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73801
#line 1244 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61172
73802
};
61173
73803
 
 
73804
/** \class CT_DerefExpr CTree.h Puma/CTree.h
 
73805
 *  Tree node representing a pointer dereferencing expression, e.g. *a. */
61174
73806
 
61175
 
#line 61176 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73807
#line 73808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
61176
73808
} // closed Puma
 
73809
class CCExprResolve;
 
73810
class CExprResolve;
61177
73811
class WinIfExists;
61178
73812
class WinImportHandler;
61179
73813
class WinMacros;
61180
 
class CMatchSyntax;
61181
 
class ExtGnu;
 
73814
class WinAsm;
 
73815
class WinDeclSpecs;
 
73816
class WinMemberExplSpec;
 
73817
class WinTypeKeywords;
 
73818
class WinFriend;
61182
73819
class ExtAC;
61183
73820
class ExtACBuilderCoupling;
61184
73821
class ExtACSyntaxCoupling;
61185
73822
class ExtACTree;
61186
73823
class ExtACKeywords;
61187
 
class WinAsm;
61188
 
class WinDeclSpecs;
61189
 
class WinMemberExplSpec;
61190
 
class WinTypeKeywords;
 
73824
class ExtGnu;
61191
73825
class PragmaOnceUnitState;
61192
73826
class PragmaOnce;
61193
 
class CCExprResolve;
61194
 
class CExprResolve;
61195
 
namespace Puma {
61196
 
 
61197
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73827
class CMatchSyntax;
 
73828
namespace Puma {
 
73829
 
 
73830
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73831
 
 
73832
#line 73833 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73833
} // closed Puma
 
73834
 
 
73835
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73836
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73837
#include "CCExprResolveH.ah"
 
73838
#endif
 
73839
namespace Puma {
 
73840
 
 
73841
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73842
 
 
73843
#line 73844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73844
} // closed Puma
 
73845
 
 
73846
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73847
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73848
#include "CExprResolveH.ah"
 
73849
#endif
 
73850
namespace Puma {
 
73851
 
 
73852
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61198
73853
class CT_DerefExpr : public CT_UnaryExpr {
61199
 
#line 61200 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73854
#line 73855 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73855
  friend class ::CCExprResolve;
 
73856
  friend class ::CExprResolve;
61200
73857
  friend class ::WinIfExists;
61201
73858
  friend class ::WinImportHandler;
61202
73859
  friend class ::WinMacros;
61203
 
  friend class ::CMatchSyntax;
61204
 
  friend class ::ExtGnu;
 
73860
  friend class ::WinAsm;
 
73861
  friend class ::WinDeclSpecs;
 
73862
  friend class ::WinMemberExplSpec;
 
73863
  friend class ::WinTypeKeywords;
 
73864
  friend class ::WinFriend;
61205
73865
  friend class ::ExtAC;
61206
73866
  friend class ::ExtACBuilderCoupling;
61207
73867
  friend class ::ExtACSyntaxCoupling;
61208
73868
  friend class ::ExtACTree;
61209
73869
  friend class ::ExtACKeywords;
61210
 
  friend class ::WinAsm;
61211
 
  friend class ::WinDeclSpecs;
61212
 
  friend class ::WinMemberExplSpec;
61213
 
  friend class ::WinTypeKeywords;
 
73870
  friend class ::ExtGnu;
61214
73871
  friend class ::PragmaOnceUnitState;
61215
73872
  friend class ::PragmaOnce;
61216
 
  friend class ::CCExprResolve;
61217
 
  friend class ::CExprResolve;
 
73873
  friend class ::CMatchSyntax;
61218
73874
 
61219
 
#line 687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73875
#line 1248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61220
73876
 
61221
73877
public:
 
73878
  /** Constructor.
 
73879
   *  \param o The dereferencing operator, i.e. '*'.
 
73880
   *  \param e The expression to dereference. */
61222
73881
  CT_DerefExpr (CTree *o, CTree *e) :
61223
73882
    CT_UnaryExpr (o, e) {}
 
73883
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61224
73884
  static const char *NodeId ();
 
73885
  /** Get the name of the node. Can be compared with NodeId(). */
61225
73886
  const char *NodeName () const { return NodeId (); }
61226
73887
   private:
61227
73888
  typedef CT_DerefExpr CCExprResolveExpr;
61228
73889
 
61229
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
73890
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
61230
73891
 public :
61231
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
73892
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
61232
73893
  typedef CT_DerefExpr CExprResolveExpr;
61233
73894
 
61234
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
73895
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
61235
73896
 public :
61236
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
61237
 
#line 693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73897
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
73898
#line 1259 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61238
73899
};
61239
73900
 
 
73901
/** \class CT_DeleteExpr CTree.h Puma/CTree.h
 
73902
 *  Tree node representing a delete expression, e.g. delete a. */
61240
73903
 
61241
 
#line 61242 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73904
#line 73905 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
61242
73905
} // closed Puma
 
73906
class CCExprResolve;
 
73907
class CExprResolve;
61243
73908
class WinIfExists;
61244
73909
class WinImportHandler;
61245
73910
class WinMacros;
61246
 
class CMatchSyntax;
61247
 
class ExtGnu;
 
73911
class WinAsm;
 
73912
class WinDeclSpecs;
 
73913
class WinMemberExplSpec;
 
73914
class WinTypeKeywords;
 
73915
class WinFriend;
61248
73916
class ExtAC;
61249
73917
class ExtACBuilderCoupling;
61250
73918
class ExtACSyntaxCoupling;
61251
73919
class ExtACTree;
61252
73920
class ExtACKeywords;
61253
 
class WinAsm;
61254
 
class WinDeclSpecs;
61255
 
class WinMemberExplSpec;
61256
 
class WinTypeKeywords;
 
73921
class ExtGnu;
61257
73922
class PragmaOnceUnitState;
61258
73923
class PragmaOnce;
61259
 
class CCExprResolve;
61260
 
class CExprResolve;
61261
 
namespace Puma {
61262
 
 
61263
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73924
class CMatchSyntax;
 
73925
namespace Puma {
 
73926
 
 
73927
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73928
 
 
73929
#line 73930 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73930
} // closed Puma
 
73931
 
 
73932
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73933
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
73934
#include "CCExprResolveH.ah"
 
73935
#endif
 
73936
namespace Puma {
 
73937
 
 
73938
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73939
 
 
73940
#line 73941 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73941
} // closed Puma
 
73942
 
 
73943
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73944
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
73945
#include "CExprResolveH.ah"
 
73946
#endif
 
73947
namespace Puma {
 
73948
 
 
73949
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61264
73950
class CT_DeleteExpr : public CT_Expression, public CSemObject {
61265
 
#line 61266 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
73951
#line 73952 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
73952
  friend class ::CCExprResolve;
 
73953
  friend class ::CExprResolve;
61266
73954
  friend class ::WinIfExists;
61267
73955
  friend class ::WinImportHandler;
61268
73956
  friend class ::WinMacros;
61269
 
  friend class ::CMatchSyntax;
61270
 
  friend class ::ExtGnu;
 
73957
  friend class ::WinAsm;
 
73958
  friend class ::WinDeclSpecs;
 
73959
  friend class ::WinMemberExplSpec;
 
73960
  friend class ::WinTypeKeywords;
 
73961
  friend class ::WinFriend;
61271
73962
  friend class ::ExtAC;
61272
73963
  friend class ::ExtACBuilderCoupling;
61273
73964
  friend class ::ExtACSyntaxCoupling;
61274
73965
  friend class ::ExtACTree;
61275
73966
  friend class ::ExtACKeywords;
61276
 
  friend class ::WinAsm;
61277
 
  friend class ::WinDeclSpecs;
61278
 
  friend class ::WinMemberExplSpec;
61279
 
  friend class ::WinTypeKeywords;
 
73967
  friend class ::ExtGnu;
61280
73968
  friend class ::PragmaOnceUnitState;
61281
73969
  friend class ::PragmaOnce;
61282
 
  friend class ::CCExprResolve;
61283
 
  friend class ::CExprResolve;
 
73970
  friend class ::CMatchSyntax;
61284
73971
 
61285
 
#line 695 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
73972
#line 1263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61286
73973
 
61287
73974
  CTree *sons[2]; // oper, expr
61288
73975
 
61289
73976
public:
61290
 
  CT_DeleteExpr (CTree *op, CTree *e) { sons[0] = op; sons[1] = e; }
 
73977
  /** Constructor.
 
73978
   *  \param op The delete operator.
 
73979
   *  \param e The expression representing the object to delete. */
 
73980
  CT_DeleteExpr (CTree *op, CTree *e) { AddSon (sons[0], op); AddSon (sons[1], e); }
 
73981
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61291
73982
  static const char *NodeId ();
 
73983
  /** Get the name of the node. Can be compared with NodeId(). */
61292
73984
  const char *NodeName () const { return NodeId (); }
 
73985
  /** Get the number of sons. */
61293
73986
  int Sons () const { return 2; }
 
73987
  /** Get the n-th son.
 
73988
   *  \param n The index of the son.
 
73989
   *  \return The n-th son or NULL. */
61294
73990
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
73991
  /** Replace a son.
 
73992
   *  \param old_son The son to replace.
 
73993
   *  \param new_son The new son. */
61295
73994
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61296
73995
    CTree::ReplaceSon (sons, 2, old_son, new_son);
61297
73996
  }
 
73997
  /** Get the expression. */
61298
73998
  CTree *Expr () const { return sons[1]; }
 
73999
  /** Get the operator name, i.e. 'delete' or 'delete[]'. */
61299
74000
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
74001
  /** Get the semantic information object. */
61300
74002
  CSemObject *SemObject () const { return (CSemObject*)this; }
61301
74003
   private:
61302
74004
  typedef CT_DeleteExpr CCExprResolveExpr;
61303
74005
 
61304
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
74006
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
61305
74007
 public :
61306
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
74008
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
61307
74009
  typedef CT_DeleteExpr CExprResolveExpr;
61308
74010
 
61309
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
74011
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
61310
74012
 public :
61311
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
61312
 
#line 710 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74013
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
74014
#line 1293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61313
74015
};
61314
74016
 
 
74017
/** \class CT_NewExpr CTree.h Puma/CTree.h
 
74018
 *  Tree node representing a new expression, e.g. new A(). */
61315
74019
 
61316
 
#line 61317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74020
#line 74021 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
61317
74021
} // closed Puma
 
74022
class CCExprResolve;
 
74023
class CExprResolve;
61318
74024
class WinIfExists;
61319
74025
class WinImportHandler;
61320
74026
class WinMacros;
61321
 
class CMatchSyntax;
61322
 
class ExtGnu;
 
74027
class WinAsm;
 
74028
class WinDeclSpecs;
 
74029
class WinMemberExplSpec;
 
74030
class WinTypeKeywords;
 
74031
class WinFriend;
61323
74032
class ExtAC;
61324
74033
class ExtACBuilderCoupling;
61325
74034
class ExtACSyntaxCoupling;
61326
74035
class ExtACTree;
61327
74036
class ExtACKeywords;
61328
 
class WinAsm;
61329
 
class WinDeclSpecs;
61330
 
class WinMemberExplSpec;
61331
 
class WinTypeKeywords;
 
74037
class ExtGnu;
61332
74038
class PragmaOnceUnitState;
61333
74039
class PragmaOnce;
61334
 
class CCExprResolve;
61335
 
class CExprResolve;
61336
 
namespace Puma {
61337
 
 
61338
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74040
class CMatchSyntax;
 
74041
namespace Puma {
 
74042
 
 
74043
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74044
 
 
74045
#line 74046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74046
} // closed Puma
 
74047
 
 
74048
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74049
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74050
#include "CCExprResolveH.ah"
 
74051
#endif
 
74052
namespace Puma {
 
74053
 
 
74054
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74055
 
 
74056
#line 74057 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74057
} // closed Puma
 
74058
 
 
74059
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74060
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74061
#include "CExprResolveH.ah"
 
74062
#endif
 
74063
namespace Puma {
 
74064
 
 
74065
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61339
74066
class CT_NewExpr : public CT_Expression, public CSemObject {
61340
 
#line 61341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74067
#line 74068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74068
  friend class ::CCExprResolve;
 
74069
  friend class ::CExprResolve;
61341
74070
  friend class ::WinIfExists;
61342
74071
  friend class ::WinImportHandler;
61343
74072
  friend class ::WinMacros;
61344
 
  friend class ::CMatchSyntax;
61345
 
  friend class ::ExtGnu;
 
74073
  friend class ::WinAsm;
 
74074
  friend class ::WinDeclSpecs;
 
74075
  friend class ::WinMemberExplSpec;
 
74076
  friend class ::WinTypeKeywords;
 
74077
  friend class ::WinFriend;
61346
74078
  friend class ::ExtAC;
61347
74079
  friend class ::ExtACBuilderCoupling;
61348
74080
  friend class ::ExtACSyntaxCoupling;
61349
74081
  friend class ::ExtACTree;
61350
74082
  friend class ::ExtACKeywords;
61351
 
  friend class ::WinAsm;
61352
 
  friend class ::WinDeclSpecs;
61353
 
  friend class ::WinMemberExplSpec;
61354
 
  friend class ::WinTypeKeywords;
 
74083
  friend class ::ExtGnu;
61355
74084
  friend class ::PragmaOnceUnitState;
61356
74085
  friend class ::PragmaOnce;
61357
 
  friend class ::CCExprResolve;
61358
 
  friend class ::CExprResolve;
 
74086
  friend class ::CMatchSyntax;
61359
74087
 
61360
 
#line 712 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74088
#line 1297 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61361
74089
 
61362
74090
  CTree *sons[6]; // oper, placement, open, type, close, init
61363
74091
 
61364
74092
public:
 
74093
  /** Constructor.
 
74094
   *  \param op The new operator.
 
74095
   *  \param p The optional placement expression.
 
74096
   *  \param o The optional left parenthesis around the type identifier.
 
74097
   *  \param t The type identifier specifying the type of the object to create.
 
74098
   *  \param c The optional right parenthesis around the type identifier.
 
74099
   *  \param i The optional initializer. */
61365
74100
  CT_NewExpr (CTree *op, CTree *p, CTree *o, CTree *t, CTree *c, CTree *i) {
61366
 
    sons[0] = op; sons[1] = p; sons[2] = o; sons[3] = t; sons[4] = c; sons[5] = i; 
 
74101
    AddSon (sons[0], op); AddSon (sons[1], p); AddSon (sons[2], o); 
 
74102
    AddSon (sons[3], t); AddSon (sons[4], c); AddSon (sons[5], i); 
61367
74103
  }
 
74104
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61368
74105
  static const char *NodeId ();
 
74106
  /** Get the name of the node. Can be compared with NodeId(). */
61369
74107
  const char *NodeName () const { return NodeId (); }
 
74108
  /** Get the number of sons. */
61370
74109
  int Sons () const { return CTree::Sons (sons, 6); }
 
74110
  /** Get the n-th son.
 
74111
   *  \param n The index of the son.
 
74112
   *  \return The n-th son or NULL. */
61371
74113
  CTree *Son (int n) const { return CTree::Son (sons, 6, n); }
 
74114
  /** Replace a son.
 
74115
   *  \param old_son The son to replace.
 
74116
   *  \param new_son The new son. */
61372
74117
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61373
74118
    CTree::ReplaceSon (sons, 6, old_son, new_son);
61374
74119
  }
 
74120
  /** Get the operator name. */
61375
74121
  CT_SimpleName *OperName () const { return (CT_SimpleName*)sons[0]; }
 
74122
  /** Get the placement expression. */
61376
74123
  CT_ExprList *Placement () const { return (CT_ExprList*)sons[1];; }
 
74124
  /** Get the initializer. */
61377
74125
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[5]; }
 
74126
  /** Get the type of the object to create. */
61378
74127
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[3]; }
 
74128
  /** Get the semantic information object. */
61379
74129
  CSemObject *SemObject () const { return (CSemObject*)this; }
61380
74130
   private:
61381
74131
  typedef CT_NewExpr CCExprResolveExpr;
61382
74132
 
61383
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
74133
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
61384
74134
 public :
61385
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
74135
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
61386
74136
  typedef CT_NewExpr CExprResolveExpr;
61387
74137
 
61388
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
74138
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
61389
74139
 public :
61390
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
61391
 
#line 731 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74140
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
74141
#line 1338 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61392
74142
};
61393
74143
 
 
74144
/** \class CT_IfThenExpr CTree.h Puma/CTree.h
 
74145
 *  Tree node representing an if-then expression, 
 
74146
 *  e.g. a>0?a:b or a?:b. */
61394
74147
 
61395
 
#line 61396 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74148
#line 74149 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
61396
74149
} // closed Puma
 
74150
class CCExprResolve;
 
74151
class CExprResolve;
61397
74152
class WinIfExists;
61398
74153
class WinImportHandler;
61399
74154
class WinMacros;
61400
 
class CMatchSyntax;
61401
 
class ExtGnu;
 
74155
class WinAsm;
 
74156
class WinDeclSpecs;
 
74157
class WinMemberExplSpec;
 
74158
class WinTypeKeywords;
 
74159
class WinFriend;
61402
74160
class ExtAC;
61403
74161
class ExtACBuilderCoupling;
61404
74162
class ExtACSyntaxCoupling;
61405
74163
class ExtACTree;
61406
74164
class ExtACKeywords;
61407
 
class WinAsm;
61408
 
class WinDeclSpecs;
61409
 
class WinMemberExplSpec;
61410
 
class WinTypeKeywords;
 
74165
class ExtGnu;
61411
74166
class PragmaOnceUnitState;
61412
74167
class PragmaOnce;
61413
 
class CCExprResolve;
61414
 
class CExprResolve;
61415
 
namespace Puma {
61416
 
 
61417
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74168
class CMatchSyntax;
 
74169
namespace Puma {
 
74170
 
 
74171
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74172
 
 
74173
#line 74174 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74174
} // closed Puma
 
74175
 
 
74176
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74177
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74178
#include "CCExprResolveH.ah"
 
74179
#endif
 
74180
namespace Puma {
 
74181
 
 
74182
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74183
 
 
74184
#line 74185 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74185
} // closed Puma
 
74186
 
 
74187
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74188
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74189
#include "CExprResolveH.ah"
 
74190
#endif
 
74191
namespace Puma {
 
74192
 
 
74193
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61418
74194
class CT_IfThenExpr : public CT_Expression {
61419
 
#line 61420 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74195
#line 74196 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74196
  friend class ::CCExprResolve;
 
74197
  friend class ::CExprResolve;
61420
74198
  friend class ::WinIfExists;
61421
74199
  friend class ::WinImportHandler;
61422
74200
  friend class ::WinMacros;
61423
 
  friend class ::CMatchSyntax;
61424
 
  friend class ::ExtGnu;
 
74201
  friend class ::WinAsm;
 
74202
  friend class ::WinDeclSpecs;
 
74203
  friend class ::WinMemberExplSpec;
 
74204
  friend class ::WinTypeKeywords;
 
74205
  friend class ::WinFriend;
61425
74206
  friend class ::ExtAC;
61426
74207
  friend class ::ExtACBuilderCoupling;
61427
74208
  friend class ::ExtACSyntaxCoupling;
61428
74209
  friend class ::ExtACTree;
61429
74210
  friend class ::ExtACKeywords;
61430
 
  friend class ::WinAsm;
61431
 
  friend class ::WinDeclSpecs;
61432
 
  friend class ::WinMemberExplSpec;
61433
 
  friend class ::WinTypeKeywords;
 
74211
  friend class ::ExtGnu;
61434
74212
  friend class ::PragmaOnceUnitState;
61435
74213
  friend class ::PragmaOnce;
61436
 
  friend class ::CCExprResolve;
61437
 
  friend class ::CExprResolve;
 
74214
  friend class ::CMatchSyntax;
61438
74215
 
61439
 
#line 733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74216
#line 1343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61440
74217
 
61441
74218
  CTree *sons[5]; // cond, oper, left, colon, right
61442
74219
 
61443
74220
public:
 
74221
  /** Constructor.
 
74222
   *  \param c1 The condition expression.
 
74223
   *  \param o The question mark operator. 
 
74224
   *  \param l The expression to the left of the colon.
 
74225
   *  \param c2 The colon operator.
 
74226
   *  \param r The expression to the right of the colon. */ 
61444
74227
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *l, CTree *c2, CTree *r) {
61445
 
    sons[0] = c1; sons[1] = o; sons[2] = l; sons[3] = c2; sons[4] = r;
 
74228
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], l); 
 
74229
    AddSon (sons[3], c2); AddSon (sons[4], r);
61446
74230
  }
 
74231
  /** Constructor.
 
74232
   *  \param c1 The condition expression.
 
74233
   *  \param o The question mark operator. 
 
74234
   *  \param c2 The colon operator.
 
74235
   *  \param r The expression to the right of the colon. */ 
61447
74236
  CT_IfThenExpr (CTree *c1, CTree *o, CTree *c2, CTree *r) {
61448
 
    sons[0] = c1; sons[1] = o; sons[2] = 0; sons[3] = c2; sons[4] = r;
 
74237
    AddSon (sons[0], c1); AddSon (sons[1], o); AddSon (sons[2], 0); 
 
74238
    AddSon (sons[3], c2); AddSon (sons[4], r);
61449
74239
  }
 
74240
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61450
74241
  static const char *NodeId ();
 
74242
  /** Get the name of the node. Can be compared with NodeId(). */
61451
74243
  const char *NodeName () const { return NodeId (); }
 
74244
  /** Get the number of sons. */
61452
74245
  int Sons () const { return CTree::Sons (sons, 5); }
 
74246
  /** Get the n-th son.
 
74247
   *  \param n The index of the son.
 
74248
   *  \return The n-th son or NULL. */
61453
74249
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
74250
  /** Get the condition expression. */
61454
74251
  CTree *Condition () const { return sons[0]; }
 
74252
  /** Get the left expression (condition=true). */
61455
74253
  CTree *LeftOperand () const { return sons[2]; }
 
74254
  /** Get the right expression (condition=false). */
61456
74255
  CTree *RightOperand () const { return sons[4]; }
 
74256
  /** Replace a son.
 
74257
   *  \param old_son The son to replace.
 
74258
   *  \param new_son The new son. */
61457
74259
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61458
74260
    CTree::ReplaceSon (sons, 5, old_son, new_son);
61459
74261
  }
61460
74262
   private:
61461
74263
  typedef CT_IfThenExpr CCExprResolveExpr;
61462
74264
 
61463
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
74265
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
61464
74266
 public :
61465
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
74267
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
61466
74268
  typedef CT_IfThenExpr CExprResolveExpr;
61467
74269
 
61468
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
74270
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
61469
74271
 public :
61470
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
61471
 
#line 753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74272
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
74273
#line 1388 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61472
74274
};
61473
74275
 
 
74276
/** \class CT_CmpdLiteral CTree.h Puma/CTree.h
 
74277
 *  Tree node representing a compound literal, e.g. (int[]){1,2,3). */
61474
74278
 
61475
 
#line 61476 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74279
#line 74280 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
61476
74280
} // closed Puma
 
74281
class CCExprResolve;
 
74282
class CExprResolve;
61477
74283
class WinIfExists;
61478
74284
class WinImportHandler;
61479
74285
class WinMacros;
61480
 
class CMatchSyntax;
61481
 
class ExtGnu;
 
74286
class WinAsm;
 
74287
class WinDeclSpecs;
 
74288
class WinMemberExplSpec;
 
74289
class WinTypeKeywords;
 
74290
class WinFriend;
61482
74291
class ExtAC;
61483
74292
class ExtACBuilderCoupling;
61484
74293
class ExtACSyntaxCoupling;
61485
74294
class ExtACTree;
61486
74295
class ExtACKeywords;
61487
 
class WinAsm;
61488
 
class WinDeclSpecs;
61489
 
class WinMemberExplSpec;
61490
 
class WinTypeKeywords;
 
74296
class ExtGnu;
61491
74297
class PragmaOnceUnitState;
61492
74298
class PragmaOnce;
61493
 
class CCExprResolve;
61494
 
class CExprResolve;
61495
 
namespace Puma {
61496
 
 
61497
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74299
class CMatchSyntax;
 
74300
namespace Puma {
 
74301
 
 
74302
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74303
 
 
74304
#line 74305 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74305
} // closed Puma
 
74306
 
 
74307
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74308
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74309
#include "CCExprResolveH.ah"
 
74310
#endif
 
74311
namespace Puma {
 
74312
 
 
74313
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74314
 
 
74315
#line 74316 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74316
} // closed Puma
 
74317
 
 
74318
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74319
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74320
#include "CExprResolveH.ah"
 
74321
#endif
 
74322
namespace Puma {
 
74323
 
 
74324
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61498
74325
class CT_CmpdLiteral : public CT_Expression, public CSemObject {
61499
 
#line 61500 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74326
#line 74327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74327
  friend class ::CCExprResolve;
 
74328
  friend class ::CExprResolve;
61500
74329
  friend class ::WinIfExists;
61501
74330
  friend class ::WinImportHandler;
61502
74331
  friend class ::WinMacros;
61503
 
  friend class ::CMatchSyntax;
61504
 
  friend class ::ExtGnu;
 
74332
  friend class ::WinAsm;
 
74333
  friend class ::WinDeclSpecs;
 
74334
  friend class ::WinMemberExplSpec;
 
74335
  friend class ::WinTypeKeywords;
 
74336
  friend class ::WinFriend;
61505
74337
  friend class ::ExtAC;
61506
74338
  friend class ::ExtACBuilderCoupling;
61507
74339
  friend class ::ExtACSyntaxCoupling;
61508
74340
  friend class ::ExtACTree;
61509
74341
  friend class ::ExtACKeywords;
61510
 
  friend class ::WinAsm;
61511
 
  friend class ::WinDeclSpecs;
61512
 
  friend class ::WinMemberExplSpec;
61513
 
  friend class ::WinTypeKeywords;
 
74342
  friend class ::ExtGnu;
61514
74343
  friend class ::PragmaOnceUnitState;
61515
74344
  friend class ::PragmaOnce;
61516
 
  friend class ::CCExprResolve;
61517
 
  friend class ::CExprResolve;
 
74345
  friend class ::CMatchSyntax;
61518
74346
 
61519
 
#line 755 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74347
#line 1392 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61520
74348
 
61521
74349
  CTree *sons[4]; // open, type, close, init
61522
74350
 
61523
74351
public:
 
74352
  /** Constructor.
 
74353
   *  \param r Left parenthesis of the type name.
 
74354
   *  \param t The type name.
 
74355
   *  \param cr Right parenthesis of the type name.
 
74356
   *  \param i The initializer list. */
61524
74357
  CT_CmpdLiteral (CTree *r, CTree *t, CTree *cr, CTree *i) {
61525
 
    sons[0] = r; sons[1] = t; sons[2] = cr; sons[3] = i;
 
74358
    AddSon (sons[0], r); AddSon (sons[1], t); 
 
74359
    AddSon (sons[2], cr); AddSon (sons[3], i);
61526
74360
  }
 
74361
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61527
74362
  static const char *NodeId ();
 
74363
  /** Get the name of the node. Can be compared with NodeId(). */
61528
74364
  const char *NodeName () const { return NodeId (); }
 
74365
  /** Get the number of sons. */
61529
74366
  int Sons () const { return 4; }
 
74367
  /** Get the n-th son.
 
74368
   *  \param n The index of the son.
 
74369
   *  \return The n-th son or NULL. */
61530
74370
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
74371
  /** Replace a son.
 
74372
   *  \param old_son The son to replace.
 
74373
   *  \param new_son The new son. */
61531
74374
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61532
74375
    CTree::ReplaceSon (sons, 4, old_son, new_son);
61533
74376
  }
 
74377
  /** Get the type name. */
61534
74378
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
 
74379
  /** Get the initializer list. */
61535
74380
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[3]; }
 
74381
  /** Get the semantic information object. */
61536
74382
  CSemObject *SemObject () const { return (CSemObject*)this; }
61537
74383
   private:
61538
74384
  typedef CT_CmpdLiteral CCExprResolveExpr;
61539
74385
 
61540
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
74386
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
61541
74387
 public :
61542
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
74388
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
61543
74389
  typedef CT_CmpdLiteral CExprResolveExpr;
61544
74390
 
61545
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
74391
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
61546
74392
 public :
61547
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
61548
 
#line 772 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74393
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
74394
#line 1427 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61549
74395
};
61550
74396
 
 
74397
/** \class CT_ConstructExpr CTree.h Puma/CTree.h
 
74398
 *  Tree node representing a construct expression, e.g. std::string("abc"). */
61551
74399
 
61552
 
#line 61553 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74400
#line 74401 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
61553
74401
} // closed Puma
 
74402
class CCExprResolve;
 
74403
class CExprResolve;
61554
74404
class WinIfExists;
61555
74405
class WinImportHandler;
61556
74406
class WinMacros;
61557
 
class CMatchSyntax;
61558
 
class ExtGnu;
 
74407
class WinAsm;
 
74408
class WinDeclSpecs;
 
74409
class WinMemberExplSpec;
 
74410
class WinTypeKeywords;
 
74411
class WinFriend;
61559
74412
class ExtAC;
61560
74413
class ExtACBuilderCoupling;
61561
74414
class ExtACSyntaxCoupling;
61562
74415
class ExtACTree;
61563
74416
class ExtACKeywords;
61564
 
class WinAsm;
61565
 
class WinDeclSpecs;
61566
 
class WinMemberExplSpec;
61567
 
class WinTypeKeywords;
 
74417
class ExtGnu;
61568
74418
class PragmaOnceUnitState;
61569
74419
class PragmaOnce;
61570
 
class CCExprResolve;
61571
 
class CExprResolve;
61572
 
namespace Puma {
61573
 
 
61574
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74420
class CMatchSyntax;
 
74421
namespace Puma {
 
74422
 
 
74423
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74424
 
 
74425
#line 74426 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74426
} // closed Puma
 
74427
 
 
74428
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74429
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74430
#include "CCExprResolveH.ah"
 
74431
#endif
 
74432
namespace Puma {
 
74433
 
 
74434
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74435
 
 
74436
#line 74437 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74437
} // closed Puma
 
74438
 
 
74439
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74440
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74441
#include "CExprResolveH.ah"
 
74442
#endif
 
74443
namespace Puma {
 
74444
 
 
74445
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61575
74446
class CT_ConstructExpr : public CT_Expression, public CSemObject {
61576
 
#line 61577 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74447
#line 74448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74448
  friend class ::CCExprResolve;
 
74449
  friend class ::CExprResolve;
61577
74450
  friend class ::WinIfExists;
61578
74451
  friend class ::WinImportHandler;
61579
74452
  friend class ::WinMacros;
61580
 
  friend class ::CMatchSyntax;
61581
 
  friend class ::ExtGnu;
 
74453
  friend class ::WinAsm;
 
74454
  friend class ::WinDeclSpecs;
 
74455
  friend class ::WinMemberExplSpec;
 
74456
  friend class ::WinTypeKeywords;
 
74457
  friend class ::WinFriend;
61582
74458
  friend class ::ExtAC;
61583
74459
  friend class ::ExtACBuilderCoupling;
61584
74460
  friend class ::ExtACSyntaxCoupling;
61585
74461
  friend class ::ExtACTree;
61586
74462
  friend class ::ExtACKeywords;
61587
 
  friend class ::WinAsm;
61588
 
  friend class ::WinDeclSpecs;
61589
 
  friend class ::WinMemberExplSpec;
61590
 
  friend class ::WinTypeKeywords;
 
74463
  friend class ::ExtGnu;
61591
74464
  friend class ::PragmaOnceUnitState;
61592
74465
  friend class ::PragmaOnce;
61593
 
  friend class ::CCExprResolve;
61594
 
  friend class ::CExprResolve;
 
74466
  friend class ::CMatchSyntax;
61595
74467
 
61596
 
#line 774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74468
#line 1431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61597
74469
 
61598
74470
  CTree *sons[2]; // type, init
61599
74471
 
61600
74472
public:
61601
 
  CT_ConstructExpr (CTree *t, CTree *i) { sons[0] = t; sons[1] = i; }
 
74473
  /** Constructor.
 
74474
   *  \param t The type name.
 
74475
   *  \param i The initializer list. */
 
74476
  CT_ConstructExpr (CTree *t, CTree *i) { AddSon (sons[0], t); AddSon (sons[1], i); }
 
74477
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61602
74478
  static const char *NodeId ();
 
74479
  /** Get the name of the node. Can be compared with NodeId(). */
61603
74480
  const char *NodeName () const { return NodeId (); }
 
74481
  /** Get the number of sons. */
61604
74482
  int Sons () const { return 2; }
 
74483
  /** Get the n-th son.
 
74484
   *  \param n The index of the son.
 
74485
   *  \return The n-th son or NULL. */
61605
74486
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
74487
  /** Replace a son.
 
74488
   *  \param old_son The son to replace.
 
74489
   *  \param new_son The new son. */
61606
74490
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61607
74491
    CTree::ReplaceSon (sons, 2, old_son, new_son);
61608
74492
  }
 
74493
  /** Get the type name. */
61609
74494
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[0]; }
 
74495
  /** Get the initializer. */
61610
74496
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
74497
  /** Get the semantic information object. */
61611
74498
  CSemObject *SemObject () const { return (CSemObject*)this; }
61612
74499
   private:
61613
74500
  typedef CT_ConstructExpr CCExprResolveExpr;
61614
74501
 
61615
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
74502
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
61616
74503
 public :
61617
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
74504
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
61618
74505
  typedef CT_ConstructExpr CExprResolveExpr;
61619
74506
 
61620
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
74507
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
61621
74508
 public :
61622
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
61623
 
#line 789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74509
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
74510
#line 1461 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61624
74511
};
61625
74512
 
 
74513
/** \class CT_ThrowExpr CTree.h Puma/CTree.h
 
74514
 *  Tree node representing a throw expression, e.g. throw std::exception(). */
61626
74515
 
61627
 
#line 61628 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74516
#line 74517 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
61628
74517
} // closed Puma
 
74518
class CCExprResolve;
 
74519
class CExprResolve;
61629
74520
class WinIfExists;
61630
74521
class WinImportHandler;
61631
74522
class WinMacros;
61632
 
class CMatchSyntax;
61633
 
class ExtGnu;
 
74523
class WinAsm;
 
74524
class WinDeclSpecs;
 
74525
class WinMemberExplSpec;
 
74526
class WinTypeKeywords;
 
74527
class WinFriend;
61634
74528
class ExtAC;
61635
74529
class ExtACBuilderCoupling;
61636
74530
class ExtACSyntaxCoupling;
61637
74531
class ExtACTree;
61638
74532
class ExtACKeywords;
61639
 
class WinAsm;
61640
 
class WinDeclSpecs;
61641
 
class WinMemberExplSpec;
61642
 
class WinTypeKeywords;
 
74533
class ExtGnu;
61643
74534
class PragmaOnceUnitState;
61644
74535
class PragmaOnce;
61645
 
class CCExprResolve;
61646
 
class CExprResolve;
61647
 
namespace Puma {
61648
 
 
61649
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74536
class CMatchSyntax;
 
74537
namespace Puma {
 
74538
 
 
74539
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74540
 
 
74541
#line 74542 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74542
} // closed Puma
 
74543
 
 
74544
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74545
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74546
#include "CCExprResolveH.ah"
 
74547
#endif
 
74548
namespace Puma {
 
74549
 
 
74550
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74551
 
 
74552
#line 74553 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74553
} // closed Puma
 
74554
 
 
74555
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74556
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74557
#include "CExprResolveH.ah"
 
74558
#endif
 
74559
namespace Puma {
 
74560
 
 
74561
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61650
74562
class CT_ThrowExpr : public CT_Expression {
61651
 
#line 61652 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74563
#line 74564 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74564
  friend class ::CCExprResolve;
 
74565
  friend class ::CExprResolve;
61652
74566
  friend class ::WinIfExists;
61653
74567
  friend class ::WinImportHandler;
61654
74568
  friend class ::WinMacros;
61655
 
  friend class ::CMatchSyntax;
61656
 
  friend class ::ExtGnu;
 
74569
  friend class ::WinAsm;
 
74570
  friend class ::WinDeclSpecs;
 
74571
  friend class ::WinMemberExplSpec;
 
74572
  friend class ::WinTypeKeywords;
 
74573
  friend class ::WinFriend;
61657
74574
  friend class ::ExtAC;
61658
74575
  friend class ::ExtACBuilderCoupling;
61659
74576
  friend class ::ExtACSyntaxCoupling;
61660
74577
  friend class ::ExtACTree;
61661
74578
  friend class ::ExtACKeywords;
61662
 
  friend class ::WinAsm;
61663
 
  friend class ::WinDeclSpecs;
61664
 
  friend class ::WinMemberExplSpec;
61665
 
  friend class ::WinTypeKeywords;
 
74579
  friend class ::ExtGnu;
61666
74580
  friend class ::PragmaOnceUnitState;
61667
74581
  friend class ::PragmaOnce;
61668
 
  friend class ::CCExprResolve;
61669
 
  friend class ::CExprResolve;
 
74582
  friend class ::CMatchSyntax;
61670
74583
 
61671
 
#line 791 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74584
#line 1465 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61672
74585
 
61673
74586
  CTree *sons[2]; // throw, expr
61674
74587
 
61675
74588
public:
61676
 
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { sons[0] = t; sons[1] = e; }
 
74589
  /** Constructor.
 
74590
   *  \param t The 'throw' keyword.
 
74591
   *  \param e The expression. */
 
74592
  CT_ThrowExpr (CTree *t, CTree *e = (CTree*)0) { AddSon (sons[0], t); AddSon (sons[1], e); }
 
74593
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61677
74594
  static const char *NodeId ();
 
74595
  /** Get the name of the node. Can be compared with NodeId(). */
61678
74596
  const char *NodeName () const { return NodeId (); }
 
74597
  /** Get the number of sons. */
61679
74598
  int Sons () const { return CTree::Sons (sons, 2); }
 
74599
  /** Get the n-th son.
 
74600
   *  \param n The index of the son.
 
74601
   *  \return The n-th son or NULL. */
61680
74602
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
74603
  /** Replace a son.
 
74604
   *  \param old_son The son to replace.
 
74605
   *  \param new_son The new son. */
61681
74606
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61682
74607
    CTree::ReplaceSon (sons, 2, old_son, new_son);
61683
74608
  }
 
74609
  /** Get the expression. */
61684
74610
  CTree *Expr () const { return sons[1]; }
61685
74611
   private:
61686
74612
  typedef CT_ThrowExpr CCExprResolveExpr;
61687
74613
 
61688
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
74614
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
61689
74615
 public :
61690
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
74616
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
61691
74617
  typedef CT_ThrowExpr CExprResolveExpr;
61692
74618
 
61693
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
74619
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
61694
74620
 public :
61695
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
61696
 
#line 804 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74621
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
74622
#line 1491 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61697
74623
};
61698
74624
 
 
74625
/** \class CT_IndexExpr CTree.h Puma/CTree.h
 
74626
 *  Tree node representing an index expression. */
61699
74627
 
61700
 
#line 61701 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74628
#line 74629 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
61701
74629
} // closed Puma
 
74630
class CCExprResolve;
 
74631
class CExprResolve;
61702
74632
class WinIfExists;
61703
74633
class WinImportHandler;
61704
74634
class WinMacros;
61705
 
class CMatchSyntax;
61706
 
class ExtGnu;
 
74635
class WinAsm;
 
74636
class WinDeclSpecs;
 
74637
class WinMemberExplSpec;
 
74638
class WinTypeKeywords;
 
74639
class WinFriend;
61707
74640
class ExtAC;
61708
74641
class ExtACBuilderCoupling;
61709
74642
class ExtACSyntaxCoupling;
61710
74643
class ExtACTree;
61711
74644
class ExtACKeywords;
61712
 
class WinAsm;
61713
 
class WinDeclSpecs;
61714
 
class WinMemberExplSpec;
61715
 
class WinTypeKeywords;
 
74645
class ExtGnu;
61716
74646
class PragmaOnceUnitState;
61717
74647
class PragmaOnce;
61718
 
class CCExprResolve;
61719
 
class CExprResolve;
61720
 
namespace Puma {
61721
 
 
61722
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61723
 
class CT_IndexExpr : public CT_Expression {
61724
 
#line 61725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74648
class CMatchSyntax;
 
74649
namespace Puma {
 
74650
 
 
74651
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74652
 
 
74653
#line 74654 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74654
} // closed Puma
 
74655
 
 
74656
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74657
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74658
#include "CCExprResolveH.ah"
 
74659
#endif
 
74660
namespace Puma {
 
74661
 
 
74662
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74663
 
 
74664
#line 74665 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74665
} // closed Puma
 
74666
 
 
74667
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74668
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74669
#include "CExprResolveH.ah"
 
74670
#endif
 
74671
namespace Puma {
 
74672
 
 
74673
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74674
class CT_IndexExpr : public CT_Call {
 
74675
#line 74676 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74676
  friend class ::CCExprResolve;
 
74677
  friend class ::CExprResolve;
61725
74678
  friend class ::WinIfExists;
61726
74679
  friend class ::WinImportHandler;
61727
74680
  friend class ::WinMacros;
61728
 
  friend class ::CMatchSyntax;
61729
 
  friend class ::ExtGnu;
 
74681
  friend class ::WinAsm;
 
74682
  friend class ::WinDeclSpecs;
 
74683
  friend class ::WinMemberExplSpec;
 
74684
  friend class ::WinTypeKeywords;
 
74685
  friend class ::WinFriend;
61730
74686
  friend class ::ExtAC;
61731
74687
  friend class ::ExtACBuilderCoupling;
61732
74688
  friend class ::ExtACSyntaxCoupling;
61733
74689
  friend class ::ExtACTree;
61734
74690
  friend class ::ExtACKeywords;
61735
 
  friend class ::WinAsm;
61736
 
  friend class ::WinDeclSpecs;
61737
 
  friend class ::WinMemberExplSpec;
61738
 
  friend class ::WinTypeKeywords;
 
74691
  friend class ::ExtGnu;
61739
74692
  friend class ::PragmaOnceUnitState;
61740
74693
  friend class ::PragmaOnce;
61741
 
  friend class ::CCExprResolve;
61742
 
  friend class ::CExprResolve;
 
74694
  friend class ::CMatchSyntax;
61743
74695
 
61744
 
#line 806 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74696
#line 1495 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61745
74697
 
61746
74698
  CTree *sons[4]; // expr, open, index, close
61747
74699
 
61748
74700
public:
 
74701
  /** Constructor.
 
74702
   *  \param e The expression on which to invoke the index operator.
 
74703
   *  \param o Left parenthesis of the index expression.
 
74704
   *  \param i The index expression. 
 
74705
   *  \param c Right parenthesis of the index expression. */
61749
74706
  CT_IndexExpr (CTree *e, CTree *o, CTree *i, CTree *c) {
61750
 
    sons[0] = e; sons[1] = o; sons[2] = i; sons[3] = c;
 
74707
    AddSon (sons[0], e); AddSon (sons[1], o); 
 
74708
    AddSon (sons[2], i); AddSon (sons[3], c);
61751
74709
  }
 
74710
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61752
74711
  static const char *NodeId ();
 
74712
  /** Get the name of the node. Can be compared with NodeId(). */
61753
74713
  const char *NodeName () const { return NodeId (); }
 
74714
  /** Get the number of sons. */
61754
74715
  int Sons () const { return 4; }
 
74716
  /** Get the n-th son.
 
74717
   *  \param n The index of the son.
 
74718
   *  \return The n-th son or NULL. */
61755
74719
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
74720
  /** Replace a son.
 
74721
   *  \param old_son The son to replace.
 
74722
   *  \param new_son The new son. */
61756
74723
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61757
74724
    CTree::ReplaceSon (sons, 4, old_son, new_son);
61758
74725
  }
61759
74726
   private:
61760
74727
  typedef CT_IndexExpr CCExprResolveExpr;
61761
74728
 
61762
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
74729
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
61763
74730
 public :
61764
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
74731
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
61765
74732
  typedef CT_IndexExpr CExprResolveExpr;
61766
74733
 
61767
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
74734
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
61768
74735
 public :
61769
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
61770
 
#line 820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74736
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
74737
#line 1524 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61771
74738
};
61772
74739
 
 
74740
/** \class CT_CallExpr CTree.h Puma/CTree.h
 
74741
 *  Tree node representing a function call expression, e.g. f(i). */
61773
74742
 
61774
 
#line 61775 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74743
#line 74744 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
61775
74744
} // closed Puma
 
74745
class CCExprResolve;
 
74746
class CExprResolve;
61776
74747
class WinIfExists;
61777
74748
class WinImportHandler;
61778
74749
class WinMacros;
61779
 
class CMatchSyntax;
61780
 
class ExtGnu;
 
74750
class WinAsm;
 
74751
class WinDeclSpecs;
 
74752
class WinMemberExplSpec;
 
74753
class WinTypeKeywords;
 
74754
class WinFriend;
61781
74755
class ExtAC;
61782
74756
class ExtACBuilderCoupling;
61783
74757
class ExtACSyntaxCoupling;
61784
74758
class ExtACTree;
61785
74759
class ExtACKeywords;
61786
 
class WinAsm;
61787
 
class WinDeclSpecs;
61788
 
class WinMemberExplSpec;
61789
 
class WinTypeKeywords;
 
74760
class ExtGnu;
61790
74761
class PragmaOnceUnitState;
61791
74762
class PragmaOnce;
61792
 
class CCExprResolve;
61793
 
class CExprResolve;
61794
 
namespace Puma {
61795
 
 
61796
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
61797
 
class CT_CallExpr : public CT_Expression, public CSemObject {
61798
 
#line 61799 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74763
class CMatchSyntax;
 
74764
namespace Puma {
 
74765
 
 
74766
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74767
 
 
74768
#line 74769 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74769
} // closed Puma
 
74770
 
 
74771
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74772
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74773
#include "CCExprResolveH.ah"
 
74774
#endif
 
74775
namespace Puma {
 
74776
 
 
74777
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74778
 
 
74779
#line 74780 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74780
} // closed Puma
 
74781
 
 
74782
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74783
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74784
#include "CExprResolveH.ah"
 
74785
#endif
 
74786
namespace Puma {
 
74787
 
 
74788
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74789
class CT_CallExpr : public CT_Call {
 
74790
#line 74791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74791
  friend class ::CCExprResolve;
 
74792
  friend class ::CExprResolve;
61799
74793
  friend class ::WinIfExists;
61800
74794
  friend class ::WinImportHandler;
61801
74795
  friend class ::WinMacros;
61802
 
  friend class ::CMatchSyntax;
61803
 
  friend class ::ExtGnu;
 
74796
  friend class ::WinAsm;
 
74797
  friend class ::WinDeclSpecs;
 
74798
  friend class ::WinMemberExplSpec;
 
74799
  friend class ::WinTypeKeywords;
 
74800
  friend class ::WinFriend;
61804
74801
  friend class ::ExtAC;
61805
74802
  friend class ::ExtACBuilderCoupling;
61806
74803
  friend class ::ExtACSyntaxCoupling;
61807
74804
  friend class ::ExtACTree;
61808
74805
  friend class ::ExtACKeywords;
61809
 
  friend class ::WinAsm;
61810
 
  friend class ::WinDeclSpecs;
61811
 
  friend class ::WinMemberExplSpec;
61812
 
  friend class ::WinTypeKeywords;
 
74806
  friend class ::ExtGnu;
61813
74807
  friend class ::PragmaOnceUnitState;
61814
74808
  friend class ::PragmaOnce;
61815
 
  friend class ::CCExprResolve;
61816
 
  friend class ::CExprResolve;
 
74809
  friend class ::CMatchSyntax;
61817
74810
 
61818
 
#line 822 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74811
#line 1528 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61819
74812
 
61820
74813
  CTree *sons[2]; // expr, args
61821
74814
 
61822
74815
public:
61823
 
  CT_CallExpr (CTree *e) { sons[0] = e; sons[1] = 0; }
61824
 
  CT_CallExpr (CTree *e, CTree *l) { sons[0] = e; sons[1] = l; }
 
74816
  /** Constructor.
 
74817
   *  \param e The expression on which the call is invoked. */
 
74818
  CT_CallExpr (CTree *e) { AddSon (sons[0], e); AddSon (sons[1], 0); }
 
74819
  /** Constructor.
 
74820
   *  \param e The expression on which the call is invoked.
 
74821
   *  \param l The argument list of the call. */
 
74822
  CT_CallExpr (CTree *e, CTree *l) { AddSon (sons[0], e); AddSon (sons[1], l); }
 
74823
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61825
74824
  static const char *NodeId ();
 
74825
  /** Get the name of the node. Can be compared with NodeId(). */
61826
74826
  const char *NodeName () const { return NodeId (); }
 
74827
  /** Get the number of sons. */
61827
74828
  int Sons () const { return CTree::Sons (sons, 2); }
 
74829
  /** Get the n-th son.
 
74830
   *  \param n The index of the son.
 
74831
   *  \return The n-th son or NULL. */
61828
74832
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
74833
  /** Replace a son.
 
74834
   *  \param old_son The son to replace.
 
74835
   *  \param new_son The new son. */
61829
74836
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61830
74837
    CTree::ReplaceSon (sons, 2, old_son, new_son);
61831
74838
  }
61832
74839
  CTree *Expr () const { return sons[0]; }
61833
74840
  CT_ExprList *Arguments () const { return (CT_ExprList*)sons[1]; }
61834
 
  CSemObject *SemObject () const { return (CSemObject*)this; }
61835
74841
   private:
61836
74842
  typedef CT_CallExpr CCExprResolveExpr;
61837
74843
 
61838
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
74844
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
61839
74845
 public :
61840
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
74846
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
61841
74847
  typedef CT_CallExpr CExprResolveExpr;
61842
74848
 
61843
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
74849
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
61844
74850
 public :
61845
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
61846
 
#line 838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74851
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
74852
#line 1557 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61847
74853
};
61848
74854
 
 
74855
/** \class CT_CastExpr CTree.h Puma/CTree.h
 
74856
 *  Tree node representing a cast expression, e.g. (int)a. */
61849
74857
 
61850
 
#line 61851 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74858
#line 74859 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
61851
74859
} // closed Puma
 
74860
class CCExprResolve;
 
74861
class CExprResolve;
61852
74862
class WinIfExists;
61853
74863
class WinImportHandler;
61854
74864
class WinMacros;
61855
 
class CMatchSyntax;
61856
 
class ExtGnu;
 
74865
class WinAsm;
 
74866
class WinDeclSpecs;
 
74867
class WinMemberExplSpec;
 
74868
class WinTypeKeywords;
 
74869
class WinFriend;
61857
74870
class ExtAC;
61858
74871
class ExtACBuilderCoupling;
61859
74872
class ExtACSyntaxCoupling;
61860
74873
class ExtACTree;
61861
74874
class ExtACKeywords;
61862
 
class WinAsm;
61863
 
class WinDeclSpecs;
61864
 
class WinMemberExplSpec;
61865
 
class WinTypeKeywords;
 
74875
class ExtGnu;
61866
74876
class PragmaOnceUnitState;
61867
74877
class PragmaOnce;
61868
 
class CCExprResolve;
61869
 
class CExprResolve;
61870
 
namespace Puma {
61871
 
 
61872
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74878
class CMatchSyntax;
 
74879
namespace Puma {
 
74880
 
 
74881
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74882
 
 
74883
#line 74884 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74884
} // closed Puma
 
74885
 
 
74886
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74887
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
74888
#include "CCExprResolveH.ah"
 
74889
#endif
 
74890
namespace Puma {
 
74891
 
 
74892
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74893
 
 
74894
#line 74895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74895
} // closed Puma
 
74896
 
 
74897
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74898
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
74899
#include "CExprResolveH.ah"
 
74900
#endif
 
74901
namespace Puma {
 
74902
 
 
74903
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61873
74904
class CT_CastExpr : public CT_Expression {
61874
 
#line 61875 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74905
#line 74906 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
74906
  friend class ::CCExprResolve;
 
74907
  friend class ::CExprResolve;
61875
74908
  friend class ::WinIfExists;
61876
74909
  friend class ::WinImportHandler;
61877
74910
  friend class ::WinMacros;
61878
 
  friend class ::CMatchSyntax;
61879
 
  friend class ::ExtGnu;
 
74911
  friend class ::WinAsm;
 
74912
  friend class ::WinDeclSpecs;
 
74913
  friend class ::WinMemberExplSpec;
 
74914
  friend class ::WinTypeKeywords;
 
74915
  friend class ::WinFriend;
61880
74916
  friend class ::ExtAC;
61881
74917
  friend class ::ExtACBuilderCoupling;
61882
74918
  friend class ::ExtACSyntaxCoupling;
61883
74919
  friend class ::ExtACTree;
61884
74920
  friend class ::ExtACKeywords;
61885
 
  friend class ::WinAsm;
61886
 
  friend class ::WinDeclSpecs;
61887
 
  friend class ::WinMemberExplSpec;
61888
 
  friend class ::WinTypeKeywords;
 
74921
  friend class ::ExtGnu;
61889
74922
  friend class ::PragmaOnceUnitState;
61890
74923
  friend class ::PragmaOnce;
61891
 
  friend class ::CCExprResolve;
61892
 
  friend class ::CExprResolve;
 
74924
  friend class ::CMatchSyntax;
61893
74925
 
61894
 
#line 840 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74926
#line 1561 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61895
74927
 
61896
74928
  CTree *sons[4]; // open, type, close, expr
61897
74929
 
61898
74930
public:
 
74931
  /** Constructor.
 
74932
   *  \param o Left parenthesis of the type name.
 
74933
   *  \param t The type to cast to.
 
74934
   *  \param c Right parenthesis of the type name. 
 
74935
   *  \param e The expression to cast. */
61899
74936
  CT_CastExpr (CTree *o, CTree *t, CTree *c, CTree *e) {
61900
 
    sons[0] = o; sons[1] = t; sons[2] = c; sons[3] = e;
 
74937
    AddSon (sons[0], o); AddSon (sons[1], t); 
 
74938
    AddSon (sons[2], c); AddSon (sons[3], e);
61901
74939
  }
 
74940
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61902
74941
  static const char *NodeId ();
 
74942
  /** Get the name of the node. Can be compared with NodeId(). */
61903
74943
  const char *NodeName () const { return NodeId (); }
 
74944
  /** Get the number of sons. */
61904
74945
  int Sons () const { return 4; }
 
74946
  /** Get the n-th son.
 
74947
   *  \param n The index of the son.
 
74948
   *  \return The n-th son or NULL. */
61905
74949
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
74950
  /** Replace a son.
 
74951
   *  \param old_son The son to replace.
 
74952
   *  \param new_son The new son. */
61906
74953
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61907
74954
    CTree::ReplaceSon (sons, 4, old_son, new_son);
61908
74955
  }
 
74956
  /** Get the casted expression. */
61909
74957
  CTree *Expr () const { return sons[3]; }
 
74958
  /** Get the type to cast to. */
61910
74959
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[1]; }
61911
74960
   private:
61912
74961
  typedef CT_CastExpr CCExprResolveExpr;
61913
74962
 
61914
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
74963
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
61915
74964
 public :
61916
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
74965
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
61917
74966
  typedef CT_CastExpr CExprResolveExpr;
61918
74967
 
61919
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
74968
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
61920
74969
 public :
61921
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
61922
 
#line 856 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74970
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
74971
#line 1594 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61923
74972
};
61924
74973
 
 
74974
/** \class CT_StaticCast CTree.h Puma/CTree.h
 
74975
 *  Tree node representing a static cast, e.g. static_cast<int>(a). */
61925
74976
 
61926
 
#line 61927 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
74977
#line 74978 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
61927
74978
} // closed Puma
 
74979
class CCExprResolve;
 
74980
class CExprResolve;
61928
74981
class WinIfExists;
61929
74982
class WinImportHandler;
61930
74983
class WinMacros;
61931
 
class CMatchSyntax;
61932
 
class ExtGnu;
 
74984
class WinAsm;
 
74985
class WinDeclSpecs;
 
74986
class WinMemberExplSpec;
 
74987
class WinTypeKeywords;
 
74988
class WinFriend;
61933
74989
class ExtAC;
61934
74990
class ExtACBuilderCoupling;
61935
74991
class ExtACSyntaxCoupling;
61936
74992
class ExtACTree;
61937
74993
class ExtACKeywords;
61938
 
class WinAsm;
61939
 
class WinDeclSpecs;
61940
 
class WinMemberExplSpec;
61941
 
class WinTypeKeywords;
 
74994
class ExtGnu;
61942
74995
class PragmaOnceUnitState;
61943
74996
class PragmaOnce;
61944
 
class CCExprResolve;
61945
 
class CExprResolve;
61946
 
namespace Puma {
61947
 
 
61948
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
74997
class CMatchSyntax;
 
74998
namespace Puma {
 
74999
 
 
75000
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75001
 
 
75002
#line 75003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75003
} // closed Puma
 
75004
 
 
75005
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75006
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75007
#include "CCExprResolveH.ah"
 
75008
#endif
 
75009
namespace Puma {
 
75010
 
 
75011
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75012
 
 
75013
#line 75014 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75014
} // closed Puma
 
75015
 
 
75016
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75017
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75018
#include "CExprResolveH.ah"
 
75019
#endif
 
75020
namespace Puma {
 
75021
 
 
75022
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61949
75023
class CT_StaticCast : public CT_Expression {
61950
 
#line 61951 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75024
#line 75025 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75025
  friend class ::CCExprResolve;
 
75026
  friend class ::CExprResolve;
61951
75027
  friend class ::WinIfExists;
61952
75028
  friend class ::WinImportHandler;
61953
75029
  friend class ::WinMacros;
61954
 
  friend class ::CMatchSyntax;
61955
 
  friend class ::ExtGnu;
 
75030
  friend class ::WinAsm;
 
75031
  friend class ::WinDeclSpecs;
 
75032
  friend class ::WinMemberExplSpec;
 
75033
  friend class ::WinTypeKeywords;
 
75034
  friend class ::WinFriend;
61956
75035
  friend class ::ExtAC;
61957
75036
  friend class ::ExtACBuilderCoupling;
61958
75037
  friend class ::ExtACSyntaxCoupling;
61959
75038
  friend class ::ExtACTree;
61960
75039
  friend class ::ExtACKeywords;
61961
 
  friend class ::WinAsm;
61962
 
  friend class ::WinDeclSpecs;
61963
 
  friend class ::WinMemberExplSpec;
61964
 
  friend class ::WinTypeKeywords;
 
75040
  friend class ::ExtGnu;
61965
75041
  friend class ::PragmaOnceUnitState;
61966
75042
  friend class ::PragmaOnce;
61967
 
  friend class ::CCExprResolve;
61968
 
  friend class ::CExprResolve;
 
75043
  friend class ::CMatchSyntax;
61969
75044
 
61970
 
#line 858 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75045
#line 1598 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61971
75046
 
61972
75047
  CTree *sons[5]; // cast, open, type, close, expr
61973
75048
 
61974
75049
public:
 
75050
  /** Constructor.
 
75051
   *  \param cst The cast operator, i.e. 'static_cast'.
 
75052
   *  \param o Left arrow bracket of the type name.
 
75053
   *  \param t The type to cast to.
 
75054
   *  \param c Right array bracket of the type name.
 
75055
   *  \param e The expression to cast. */
61975
75056
  CT_StaticCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) {
61976
 
    sons[0] = cst; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = e;
 
75057
    AddSon (sons[0], cst); AddSon (sons[1], o); AddSon (sons[2], t); 
 
75058
    AddSon (sons[3], c); AddSon (sons[4], e);
61977
75059
  }
 
75060
  /** Get the identifier for this node type. Can be compared with NodeName(). */
61978
75061
  static const char *NodeId ();
 
75062
  /** Get the name of the node. Can be compared with NodeId(). */
61979
75063
  const char *NodeName () const { return NodeId (); }
 
75064
  /** Get the number of sons. */
61980
75065
  int Sons () const { return 5; }
 
75066
  /** Get the n-th son.
 
75067
   *  \param n The index of the son.
 
75068
   *  \return The n-th son or NULL. */
61981
75069
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
75070
  /** Replace a son.
 
75071
   *  \param old_son The son to replace.
 
75072
   *  \param new_son The new son. */
61982
75073
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
61983
75074
    CTree::ReplaceSon (sons, 5, old_son, new_son);
61984
75075
  }
 
75076
  /** Get the casted expression. */
61985
75077
  CTree *Expr () const { return sons[4]; }
 
75078
  /** Get the type to cast to. */
61986
75079
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
61987
75080
   private:
61988
75081
  typedef CT_StaticCast CCExprResolveExpr;
61989
75082
 
61990
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
75083
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
61991
75084
 public :
61992
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
75085
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
61993
75086
  typedef CT_StaticCast CExprResolveExpr;
61994
75087
 
61995
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
75088
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
61996
75089
 public :
61997
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
61998
 
#line 874 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75090
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
75091
#line 1632 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
61999
75092
};
62000
75093
 
 
75094
/** \class CT_ConstCast CTree.h Puma/CTree.h
 
75095
 *  Tree node representing a const cast, e.g. const_cast<int>(a). */
62001
75096
 
62002
 
#line 62003 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75097
#line 75098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62003
75098
} // closed Puma
 
75099
class CCExprResolve;
 
75100
class CExprResolve;
62004
75101
class WinIfExists;
62005
75102
class WinImportHandler;
62006
75103
class WinMacros;
62007
 
class CMatchSyntax;
62008
 
class ExtGnu;
 
75104
class WinAsm;
 
75105
class WinDeclSpecs;
 
75106
class WinMemberExplSpec;
 
75107
class WinTypeKeywords;
 
75108
class WinFriend;
62009
75109
class ExtAC;
62010
75110
class ExtACBuilderCoupling;
62011
75111
class ExtACSyntaxCoupling;
62012
75112
class ExtACTree;
62013
75113
class ExtACKeywords;
62014
 
class WinAsm;
62015
 
class WinDeclSpecs;
62016
 
class WinMemberExplSpec;
62017
 
class WinTypeKeywords;
 
75114
class ExtGnu;
62018
75115
class PragmaOnceUnitState;
62019
75116
class PragmaOnce;
62020
 
class CCExprResolve;
62021
 
class CExprResolve;
62022
 
namespace Puma {
62023
 
 
62024
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75117
class CMatchSyntax;
 
75118
namespace Puma {
 
75119
 
 
75120
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75121
 
 
75122
#line 75123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75123
} // closed Puma
 
75124
 
 
75125
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75126
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75127
#include "CCExprResolveH.ah"
 
75128
#endif
 
75129
namespace Puma {
 
75130
 
 
75131
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75132
 
 
75133
#line 75134 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75134
} // closed Puma
 
75135
 
 
75136
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75137
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75138
#include "CExprResolveH.ah"
 
75139
#endif
 
75140
namespace Puma {
 
75141
 
 
75142
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62025
75143
class CT_ConstCast : public CT_StaticCast {
62026
 
#line 62027 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75144
#line 75145 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75145
  friend class ::CCExprResolve;
 
75146
  friend class ::CExprResolve;
62027
75147
  friend class ::WinIfExists;
62028
75148
  friend class ::WinImportHandler;
62029
75149
  friend class ::WinMacros;
62030
 
  friend class ::CMatchSyntax;
62031
 
  friend class ::ExtGnu;
 
75150
  friend class ::WinAsm;
 
75151
  friend class ::WinDeclSpecs;
 
75152
  friend class ::WinMemberExplSpec;
 
75153
  friend class ::WinTypeKeywords;
 
75154
  friend class ::WinFriend;
62032
75155
  friend class ::ExtAC;
62033
75156
  friend class ::ExtACBuilderCoupling;
62034
75157
  friend class ::ExtACSyntaxCoupling;
62035
75158
  friend class ::ExtACTree;
62036
75159
  friend class ::ExtACKeywords;
62037
 
  friend class ::WinAsm;
62038
 
  friend class ::WinDeclSpecs;
62039
 
  friend class ::WinMemberExplSpec;
62040
 
  friend class ::WinTypeKeywords;
 
75160
  friend class ::ExtGnu;
62041
75161
  friend class ::PragmaOnceUnitState;
62042
75162
  friend class ::PragmaOnce;
62043
 
  friend class ::CCExprResolve;
62044
 
  friend class ::CExprResolve;
 
75163
  friend class ::CMatchSyntax;
62045
75164
 
62046
 
#line 876 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75165
#line 1636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62047
75166
 
62048
75167
public:
 
75168
  /** Constructor.
 
75169
   *  \param cst The cast operator, i.e. 'const_cast'.
 
75170
   *  \param o Left arrow bracket of the type name.
 
75171
   *  \param t The type to cast to.
 
75172
   *  \param c Right array bracket of the type name.
 
75173
   *  \param e The expression to cast. */
62049
75174
  CT_ConstCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
62050
75175
    CT_StaticCast (cst, o, t, c, e) {}
 
75176
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62051
75177
  static const char *NodeId ();
 
75178
  /** Get the name of the node. Can be compared with NodeId(). */
62052
75179
  const char *NodeName () const { return NodeId (); }
62053
75180
   private:
62054
75181
  typedef CT_ConstCast CCExprResolveExpr;
62055
75182
 
62056
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
75183
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
62057
75184
 public :
62058
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
75185
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
62059
75186
  typedef CT_ConstCast CExprResolveExpr;
62060
75187
 
62061
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
75188
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
62062
75189
 public :
62063
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
62064
 
#line 882 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75190
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
75191
#line 1650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62065
75192
};
62066
75193
 
 
75194
/** \class CT_ReintCast CTree.h Puma/CTree.h
 
75195
 *  Tree node representing a reinterpret cast, e.g. reinterpret_cast<int>(a). */
62067
75196
 
62068
 
#line 62069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75197
#line 75198 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62069
75198
} // closed Puma
 
75199
class CCExprResolve;
 
75200
class CExprResolve;
62070
75201
class WinIfExists;
62071
75202
class WinImportHandler;
62072
75203
class WinMacros;
62073
 
class CMatchSyntax;
62074
 
class ExtGnu;
 
75204
class WinAsm;
 
75205
class WinDeclSpecs;
 
75206
class WinMemberExplSpec;
 
75207
class WinTypeKeywords;
 
75208
class WinFriend;
62075
75209
class ExtAC;
62076
75210
class ExtACBuilderCoupling;
62077
75211
class ExtACSyntaxCoupling;
62078
75212
class ExtACTree;
62079
75213
class ExtACKeywords;
62080
 
class WinAsm;
62081
 
class WinDeclSpecs;
62082
 
class WinMemberExplSpec;
62083
 
class WinTypeKeywords;
 
75214
class ExtGnu;
62084
75215
class PragmaOnceUnitState;
62085
75216
class PragmaOnce;
62086
 
class CCExprResolve;
62087
 
class CExprResolve;
62088
 
namespace Puma {
62089
 
 
62090
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75217
class CMatchSyntax;
 
75218
namespace Puma {
 
75219
 
 
75220
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75221
 
 
75222
#line 75223 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75223
} // closed Puma
 
75224
 
 
75225
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75226
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75227
#include "CCExprResolveH.ah"
 
75228
#endif
 
75229
namespace Puma {
 
75230
 
 
75231
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75232
 
 
75233
#line 75234 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75234
} // closed Puma
 
75235
 
 
75236
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75237
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75238
#include "CExprResolveH.ah"
 
75239
#endif
 
75240
namespace Puma {
 
75241
 
 
75242
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62091
75243
class CT_ReintCast : public CT_StaticCast {
62092
 
#line 62093 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75244
#line 75245 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75245
  friend class ::CCExprResolve;
 
75246
  friend class ::CExprResolve;
62093
75247
  friend class ::WinIfExists;
62094
75248
  friend class ::WinImportHandler;
62095
75249
  friend class ::WinMacros;
62096
 
  friend class ::CMatchSyntax;
62097
 
  friend class ::ExtGnu;
 
75250
  friend class ::WinAsm;
 
75251
  friend class ::WinDeclSpecs;
 
75252
  friend class ::WinMemberExplSpec;
 
75253
  friend class ::WinTypeKeywords;
 
75254
  friend class ::WinFriend;
62098
75255
  friend class ::ExtAC;
62099
75256
  friend class ::ExtACBuilderCoupling;
62100
75257
  friend class ::ExtACSyntaxCoupling;
62101
75258
  friend class ::ExtACTree;
62102
75259
  friend class ::ExtACKeywords;
62103
 
  friend class ::WinAsm;
62104
 
  friend class ::WinDeclSpecs;
62105
 
  friend class ::WinMemberExplSpec;
62106
 
  friend class ::WinTypeKeywords;
 
75260
  friend class ::ExtGnu;
62107
75261
  friend class ::PragmaOnceUnitState;
62108
75262
  friend class ::PragmaOnce;
62109
 
  friend class ::CCExprResolve;
62110
 
  friend class ::CExprResolve;
 
75263
  friend class ::CMatchSyntax;
62111
75264
 
62112
 
#line 884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75265
#line 1654 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62113
75266
 
62114
75267
public:
 
75268
  /** Constructor.
 
75269
   *  \param cst The cast operator, i.e. 'reinterpret_cast'.
 
75270
   *  \param o Left arrow bracket of the type name.
 
75271
   *  \param t The type to cast to.
 
75272
   *  \param c Right array bracket of the type name.
 
75273
   *  \param e The expression to cast. */
62115
75274
  CT_ReintCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
62116
75275
    CT_StaticCast (cst, o, t, c, e) {}
 
75276
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62117
75277
  static const char *NodeId ();
 
75278
  /** Get the name of the node. Can be compared with NodeId(). */
62118
75279
  const char *NodeName () const { return NodeId (); }
62119
75280
   private:
62120
75281
  typedef CT_ReintCast CCExprResolveExpr;
62121
75282
 
62122
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
75283
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
62123
75284
 public :
62124
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
75285
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
62125
75286
  typedef CT_ReintCast CExprResolveExpr;
62126
75287
 
62127
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
75288
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
62128
75289
 public :
62129
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
62130
 
#line 890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75290
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
75291
#line 1668 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62131
75292
};
62132
75293
 
 
75294
/** \class CT_DynamicCast CTree.h Puma/CTree.h
 
75295
 *  Tree node representing a dynamic cast, e.g. dynamic_cast<int>(a). */
62133
75296
 
62134
 
#line 62135 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75297
#line 75298 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62135
75298
} // closed Puma
 
75299
class CCExprResolve;
 
75300
class CExprResolve;
62136
75301
class WinIfExists;
62137
75302
class WinImportHandler;
62138
75303
class WinMacros;
62139
 
class CMatchSyntax;
62140
 
class ExtGnu;
 
75304
class WinAsm;
 
75305
class WinDeclSpecs;
 
75306
class WinMemberExplSpec;
 
75307
class WinTypeKeywords;
 
75308
class WinFriend;
62141
75309
class ExtAC;
62142
75310
class ExtACBuilderCoupling;
62143
75311
class ExtACSyntaxCoupling;
62144
75312
class ExtACTree;
62145
75313
class ExtACKeywords;
62146
 
class WinAsm;
62147
 
class WinDeclSpecs;
62148
 
class WinMemberExplSpec;
62149
 
class WinTypeKeywords;
 
75314
class ExtGnu;
62150
75315
class PragmaOnceUnitState;
62151
75316
class PragmaOnce;
62152
 
class CCExprResolve;
62153
 
class CExprResolve;
62154
 
namespace Puma {
62155
 
 
62156
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75317
class CMatchSyntax;
 
75318
namespace Puma {
 
75319
 
 
75320
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75321
 
 
75322
#line 75323 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75323
} // closed Puma
 
75324
 
 
75325
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75326
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75327
#include "CCExprResolveH.ah"
 
75328
#endif
 
75329
namespace Puma {
 
75330
 
 
75331
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75332
 
 
75333
#line 75334 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75334
} // closed Puma
 
75335
 
 
75336
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75337
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75338
#include "CExprResolveH.ah"
 
75339
#endif
 
75340
namespace Puma {
 
75341
 
 
75342
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62157
75343
class CT_DynamicCast : public CT_StaticCast {
62158
 
#line 62159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75344
#line 75345 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75345
  friend class ::CCExprResolve;
 
75346
  friend class ::CExprResolve;
62159
75347
  friend class ::WinIfExists;
62160
75348
  friend class ::WinImportHandler;
62161
75349
  friend class ::WinMacros;
62162
 
  friend class ::CMatchSyntax;
62163
 
  friend class ::ExtGnu;
 
75350
  friend class ::WinAsm;
 
75351
  friend class ::WinDeclSpecs;
 
75352
  friend class ::WinMemberExplSpec;
 
75353
  friend class ::WinTypeKeywords;
 
75354
  friend class ::WinFriend;
62164
75355
  friend class ::ExtAC;
62165
75356
  friend class ::ExtACBuilderCoupling;
62166
75357
  friend class ::ExtACSyntaxCoupling;
62167
75358
  friend class ::ExtACTree;
62168
75359
  friend class ::ExtACKeywords;
62169
 
  friend class ::WinAsm;
62170
 
  friend class ::WinDeclSpecs;
62171
 
  friend class ::WinMemberExplSpec;
62172
 
  friend class ::WinTypeKeywords;
 
75360
  friend class ::ExtGnu;
62173
75361
  friend class ::PragmaOnceUnitState;
62174
75362
  friend class ::PragmaOnce;
62175
 
  friend class ::CCExprResolve;
62176
 
  friend class ::CExprResolve;
 
75363
  friend class ::CMatchSyntax;
62177
75364
 
62178
 
#line 892 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75365
#line 1672 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62179
75366
 
62180
75367
public:
 
75368
  /** Constructor.
 
75369
   *  \param cst The cast operator, i.e. 'dynamic_cast'.
 
75370
   *  \param o Left arrow bracket of the type name.
 
75371
   *  \param t The type to cast to.
 
75372
   *  \param c Right array bracket of the type name.
 
75373
   *  \param e The expression to cast. */
62181
75374
  CT_DynamicCast (CTree *cst, CTree *o, CTree *t, CTree *c, CTree *e) :
62182
75375
    CT_StaticCast (cst, o, t, c, e) {}
 
75376
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62183
75377
  static const char *NodeId ();
 
75378
  /** Get the name of the node. Can be compared with NodeId(). */
62184
75379
  const char *NodeName () const { return NodeId (); }
62185
75380
   private:
62186
75381
  typedef CT_DynamicCast CCExprResolveExpr;
62187
75382
 
62188
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
75383
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
62189
75384
 public :
62190
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
75385
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
62191
75386
  typedef CT_DynamicCast CExprResolveExpr;
62192
75387
 
62193
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
75388
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
62194
75389
 public :
62195
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
62196
 
#line 898 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75390
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
75391
#line 1686 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62197
75392
};
62198
75393
 
 
75394
/** \class CT_ImplicitCast CTree.h Puma/CTree.h
 
75395
 *  Tree node representing an implicit cast, e.g. int i = 1.2
 
75396
 *  where 1.2 is implicitely casted from float to int. */
62199
75397
 
62200
 
#line 62201 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75398
#line 75399 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62201
75399
} // closed Puma
 
75400
class CCExprResolve;
 
75401
class CExprResolve;
62202
75402
class WinIfExists;
62203
75403
class WinImportHandler;
62204
75404
class WinMacros;
62205
 
class CMatchSyntax;
62206
 
class ExtGnu;
 
75405
class WinAsm;
 
75406
class WinDeclSpecs;
 
75407
class WinMemberExplSpec;
 
75408
class WinTypeKeywords;
 
75409
class WinFriend;
62207
75410
class ExtAC;
62208
75411
class ExtACBuilderCoupling;
62209
75412
class ExtACSyntaxCoupling;
62210
75413
class ExtACTree;
62211
75414
class ExtACKeywords;
62212
 
class WinAsm;
62213
 
class WinDeclSpecs;
62214
 
class WinMemberExplSpec;
62215
 
class WinTypeKeywords;
 
75415
class ExtGnu;
62216
75416
class PragmaOnceUnitState;
62217
75417
class PragmaOnce;
62218
 
class CCExprResolve;
62219
 
class CExprResolve;
62220
 
namespace Puma {
62221
 
 
62222
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75418
class CMatchSyntax;
 
75419
namespace Puma {
 
75420
 
 
75421
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75422
 
 
75423
#line 75424 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75424
} // closed Puma
 
75425
 
 
75426
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75427
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75428
#include "CCExprResolveH.ah"
 
75429
#endif
 
75430
namespace Puma {
 
75431
 
 
75432
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75433
 
 
75434
#line 75435 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75435
} // closed Puma
 
75436
 
 
75437
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75438
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75439
#include "CExprResolveH.ah"
 
75440
#endif
 
75441
namespace Puma {
 
75442
 
 
75443
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62223
75444
class CT_ImplicitCast : public CT_Expression {
62224
 
#line 62225 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75445
#line 75446 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75446
  friend class ::CCExprResolve;
 
75447
  friend class ::CExprResolve;
62225
75448
  friend class ::WinIfExists;
62226
75449
  friend class ::WinImportHandler;
62227
75450
  friend class ::WinMacros;
62228
 
  friend class ::CMatchSyntax;
62229
 
  friend class ::ExtGnu;
 
75451
  friend class ::WinAsm;
 
75452
  friend class ::WinDeclSpecs;
 
75453
  friend class ::WinMemberExplSpec;
 
75454
  friend class ::WinTypeKeywords;
 
75455
  friend class ::WinFriend;
62230
75456
  friend class ::ExtAC;
62231
75457
  friend class ::ExtACBuilderCoupling;
62232
75458
  friend class ::ExtACSyntaxCoupling;
62233
75459
  friend class ::ExtACTree;
62234
75460
  friend class ::ExtACKeywords;
62235
 
  friend class ::WinAsm;
62236
 
  friend class ::WinDeclSpecs;
62237
 
  friend class ::WinMemberExplSpec;
62238
 
  friend class ::WinTypeKeywords;
 
75461
  friend class ::ExtGnu;
62239
75462
  friend class ::PragmaOnceUnitState;
62240
75463
  friend class ::PragmaOnce;
62241
 
  friend class ::CCExprResolve;
62242
 
  friend class ::CExprResolve;
 
75464
  friend class ::CMatchSyntax;
62243
75465
 
62244
 
#line 900 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75466
#line 1691 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62245
75467
 
62246
75468
  CTree *_expr; // casted expression
62247
75469
 
62248
75470
public:
62249
 
  CT_ImplicitCast (CTree *e) : _expr (e) {}
 
75471
  /** Constructor.
 
75472
   *  \param e The expression that is implicitely casted. */
 
75473
  CT_ImplicitCast (CTree *e) { AddSon (_expr, e); }
 
75474
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62250
75475
  static const char *NodeId ();
 
75476
  /** Get the name of the node. Can be compared with NodeId(). */
62251
75477
  const char *NodeName () const { return NodeId (); }
 
75478
  /** Get the number of sons. */
62252
75479
  int Sons () const { return 1; }
 
75480
  /** Get the n-th son.
 
75481
   *  \param n The index of the son.
 
75482
   *  \return The n-th son or NULL. */
62253
75483
  CTree *Son (int n) const { return n == 0 ? _expr : (CTree*)0; }
 
75484
  /** Get the casted expression. */
62254
75485
  CTree *Expr () const { return _expr; }
 
75486
  /** Replace a son.
 
75487
   *  \param old_son The son to replace.
 
75488
   *  \param new_son The new son. */
62255
75489
  void ReplaceSon (CTree *old_son, CTree *new_son) 
62256
 
   { if (old_son == _expr) _expr = new_son; }
 
75490
   { CTree::ReplaceSon (_expr, old_son, new_son); }
62257
75491
   private:
62258
75492
  typedef CT_ImplicitCast CCExprResolveExpr;
62259
75493
 
62260
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
75494
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
62261
75495
 public :
62262
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
75496
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
62263
75497
  typedef CT_ImplicitCast CExprResolveExpr;
62264
75498
 
62265
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
75499
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
62266
75500
 public :
62267
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
62268
 
#line 912 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75501
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
75502
#line 1715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62269
75503
};
62270
75504
 
 
75505
/** \class CT_TypeidExpr CTree.h Puma/CTree.h
 
75506
 *  Tree node representing a typeid expression, e.g. typeid(X). */
62271
75507
 
62272
 
#line 62273 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75508
#line 75509 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62273
75509
} // closed Puma
 
75510
class CCExprResolve;
 
75511
class CExprResolve;
62274
75512
class WinIfExists;
62275
75513
class WinImportHandler;
62276
75514
class WinMacros;
62277
 
class CMatchSyntax;
62278
 
class ExtGnu;
 
75515
class WinAsm;
 
75516
class WinDeclSpecs;
 
75517
class WinMemberExplSpec;
 
75518
class WinTypeKeywords;
 
75519
class WinFriend;
62279
75520
class ExtAC;
62280
75521
class ExtACBuilderCoupling;
62281
75522
class ExtACSyntaxCoupling;
62282
75523
class ExtACTree;
62283
75524
class ExtACKeywords;
62284
 
class WinAsm;
62285
 
class WinDeclSpecs;
62286
 
class WinMemberExplSpec;
62287
 
class WinTypeKeywords;
 
75525
class ExtGnu;
62288
75526
class PragmaOnceUnitState;
62289
75527
class PragmaOnce;
62290
 
class CCExprResolve;
62291
 
class CExprResolve;
62292
 
namespace Puma {
62293
 
 
62294
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75528
class CMatchSyntax;
 
75529
namespace Puma {
 
75530
 
 
75531
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75532
 
 
75533
#line 75534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75534
} // closed Puma
 
75535
 
 
75536
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75537
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75538
#include "CCExprResolveH.ah"
 
75539
#endif
 
75540
namespace Puma {
 
75541
 
 
75542
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75543
 
 
75544
#line 75545 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75545
} // closed Puma
 
75546
 
 
75547
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75548
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75549
#include "CExprResolveH.ah"
 
75550
#endif
 
75551
namespace Puma {
 
75552
 
 
75553
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62295
75554
class CT_TypeidExpr : public CT_Expression {
62296
 
#line 62297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75555
#line 75556 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75556
  friend class ::CCExprResolve;
 
75557
  friend class ::CExprResolve;
62297
75558
  friend class ::WinIfExists;
62298
75559
  friend class ::WinImportHandler;
62299
75560
  friend class ::WinMacros;
62300
 
  friend class ::CMatchSyntax;
62301
 
  friend class ::ExtGnu;
 
75561
  friend class ::WinAsm;
 
75562
  friend class ::WinDeclSpecs;
 
75563
  friend class ::WinMemberExplSpec;
 
75564
  friend class ::WinTypeKeywords;
 
75565
  friend class ::WinFriend;
62302
75566
  friend class ::ExtAC;
62303
75567
  friend class ::ExtACBuilderCoupling;
62304
75568
  friend class ::ExtACSyntaxCoupling;
62305
75569
  friend class ::ExtACTree;
62306
75570
  friend class ::ExtACKeywords;
62307
 
  friend class ::WinAsm;
62308
 
  friend class ::WinDeclSpecs;
62309
 
  friend class ::WinMemberExplSpec;
62310
 
  friend class ::WinTypeKeywords;
 
75571
  friend class ::ExtGnu;
62311
75572
  friend class ::PragmaOnceUnitState;
62312
75573
  friend class ::PragmaOnce;
62313
 
  friend class ::CCExprResolve;
62314
 
  friend class ::CExprResolve;
 
75574
  friend class ::CMatchSyntax;
62315
75575
 
62316
 
#line 914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75576
#line 1719 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62317
75577
 
62318
75578
  CTree *sons[4]; // typeid, open, type_id/expr, close
62319
75579
 
62320
75580
public:
 
75581
  /** Constructor.
 
75582
   *  \param tid The 'typeid' operator.
 
75583
   *  \param o The left parenthesis of the type name or expression.
 
75584
   *  \param e The expression or type name for which to get the type identifier.
 
75585
   *  \param c The right parenthesis of the type name or expression. */
62321
75586
  CT_TypeidExpr (CTree *tid, CTree *o, CTree *e, CTree *c) {
62322
 
    sons[0] = tid; sons[1] = o; sons[2] = e; sons[3] = c;
 
75587
    AddSon (sons[0], tid); AddSon (sons[1], o); 
 
75588
    AddSon (sons[2], e); AddSon (sons[3], c);
62323
75589
  }
 
75590
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62324
75591
  static const char *NodeId ();
 
75592
  /** Get the name of the node. Can be compared with NodeId(). */
62325
75593
  const char *NodeName () const { return NodeId (); }
 
75594
  /** Get the number of sons. */
62326
75595
  int Sons () const { return 4; }
 
75596
  /** Get the n-th son.
 
75597
   *  \param n The index of the son.
 
75598
   *  \return The n-th son or NULL. */
62327
75599
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
 
75600
  /** Replace a son.
 
75601
   *  \param old_son The son to replace.
 
75602
   *  \param new_son The new son. */
62328
75603
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62329
75604
    CTree::ReplaceSon (sons, 4, old_son, new_son);
62330
75605
  }
 
75606
  /** Get the typeid argument, i.e. the expression or type name for
 
75607
   *  which to get the type identifier. */
62331
75608
  CTree *Arg () const { return sons[2]; }
62332
75609
   private:
62333
75610
  typedef CT_TypeidExpr CCExprResolveExpr;
62334
75611
 
62335
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
75612
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
62336
75613
 public :
62337
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
75614
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
62338
75615
  typedef CT_TypeidExpr CExprResolveExpr;
62339
75616
 
62340
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
75617
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
62341
75618
 public :
62342
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
62343
 
#line 929 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75619
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
75620
#line 1751 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62344
75621
};
62345
75622
 
 
75623
/** \class CT_SizeofExpr CTree.h Puma/CTree.h
 
75624
 *  Tree node representing a sizeof expression, e.g. sizeof(int*). */
62346
75625
 
62347
 
#line 62348 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75626
#line 75627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62348
75627
} // closed Puma
 
75628
class CCExprResolve;
 
75629
class CExprResolve;
62349
75630
class WinIfExists;
62350
75631
class WinImportHandler;
62351
75632
class WinMacros;
62352
 
class CMatchSyntax;
62353
 
class ExtGnu;
 
75633
class WinAsm;
 
75634
class WinDeclSpecs;
 
75635
class WinMemberExplSpec;
 
75636
class WinTypeKeywords;
 
75637
class WinFriend;
62354
75638
class ExtAC;
62355
75639
class ExtACBuilderCoupling;
62356
75640
class ExtACSyntaxCoupling;
62357
75641
class ExtACTree;
62358
75642
class ExtACKeywords;
62359
 
class WinAsm;
62360
 
class WinDeclSpecs;
62361
 
class WinMemberExplSpec;
62362
 
class WinTypeKeywords;
 
75643
class ExtGnu;
62363
75644
class PragmaOnceUnitState;
62364
75645
class PragmaOnce;
62365
 
class CCExprResolve;
62366
 
class CExprResolve;
62367
 
namespace Puma {
62368
 
 
62369
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75646
class CMatchSyntax;
 
75647
namespace Puma {
 
75648
 
 
75649
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75650
 
 
75651
#line 75652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75652
} // closed Puma
 
75653
 
 
75654
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75655
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75656
#include "CCExprResolveH.ah"
 
75657
#endif
 
75658
namespace Puma {
 
75659
 
 
75660
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75661
 
 
75662
#line 75663 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75663
} // closed Puma
 
75664
 
 
75665
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75666
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75667
#include "CExprResolveH.ah"
 
75668
#endif
 
75669
namespace Puma {
 
75670
 
 
75671
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62370
75672
class CT_SizeofExpr : public CT_Expression {
62371
 
#line 62372 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75673
#line 75674 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75674
  friend class ::CCExprResolve;
 
75675
  friend class ::CExprResolve;
62372
75676
  friend class ::WinIfExists;
62373
75677
  friend class ::WinImportHandler;
62374
75678
  friend class ::WinMacros;
62375
 
  friend class ::CMatchSyntax;
62376
 
  friend class ::ExtGnu;
 
75679
  friend class ::WinAsm;
 
75680
  friend class ::WinDeclSpecs;
 
75681
  friend class ::WinMemberExplSpec;
 
75682
  friend class ::WinTypeKeywords;
 
75683
  friend class ::WinFriend;
62377
75684
  friend class ::ExtAC;
62378
75685
  friend class ::ExtACBuilderCoupling;
62379
75686
  friend class ::ExtACSyntaxCoupling;
62380
75687
  friend class ::ExtACTree;
62381
75688
  friend class ::ExtACKeywords;
62382
 
  friend class ::WinAsm;
62383
 
  friend class ::WinDeclSpecs;
62384
 
  friend class ::WinMemberExplSpec;
62385
 
  friend class ::WinTypeKeywords;
 
75689
  friend class ::ExtGnu;
62386
75690
  friend class ::PragmaOnceUnitState;
62387
75691
  friend class ::PragmaOnce;
62388
 
  friend class ::CCExprResolve;
62389
 
  friend class ::CExprResolve;
 
75692
  friend class ::CMatchSyntax;
62390
75693
 
62391
 
#line 931 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75694
#line 1755 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62392
75695
 
62393
75696
  CTree *sons[5]; // key, open, type, close, expr
62394
75697
 
62395
75698
public:
 
75699
  /** Constructor.
 
75700
   *  \param k The 'sizeof' keyword.
 
75701
   *  \param o Left parenthesis around the type name.
 
75702
   *  \param t The type from which to get the size.
 
75703
   *  \param c Right parenthesis around the type name. */
62396
75704
  CT_SizeofExpr (CTree *k, CTree *o, CTree *t, CTree *c) {
62397
 
    sons[0] = k; sons[1] = o; sons[2] = t; sons[3] = c; sons[4] = 0;
 
75705
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], t); 
 
75706
    AddSon (sons[3], c); AddSon (sons[4], 0);
62398
75707
  }
 
75708
  /** Constructor.
 
75709
   *  \param k The 'sizeof' keyword.
 
75710
   *  \param e The expression from which to get the size. */
62399
75711
  CT_SizeofExpr (CTree *k, CTree *e) {
62400
 
    sons[0] = k; sons[1] = 0; sons[2] = 0; sons[3] = 0; sons[4] = e;
 
75712
    AddSon (sons[0], k); AddSon (sons[1], 0); AddSon (sons[2], 0); 
 
75713
    AddSon (sons[3], 0); AddSon (sons[4], e);
62401
75714
  }
 
75715
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62402
75716
  static const char *NodeId ();
 
75717
  /** Get the name of the node. Can be compared with NodeId(). */
62403
75718
  const char *NodeName () const { return NodeId (); }
 
75719
  /** Get the number of sons. */
62404
75720
  int Sons () const { return CTree::Sons (sons, 5); }
 
75721
  /** Get the n-th son.
 
75722
   *  \param n The index of the son.
 
75723
   *  \return The n-th son or NULL. */
62405
75724
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
75725
  /** Replace a son.
 
75726
   *  \param old_son The son to replace.
 
75727
   *  \param new_son The new son. */
62406
75728
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62407
75729
    CTree::ReplaceSon (sons, 5, old_son, new_son);
62408
75730
  }
 
75731
  /** Get the expression. */
62409
75732
  CTree *Expr () const { return sons[4]; }
 
75733
  /** Get the type name. */
62410
75734
  CT_NamedType *TypeName () const { return (CT_NamedType*)sons[2]; }
62411
75735
   private:
62412
75736
  typedef CT_SizeofExpr CCExprResolveExpr;
62413
75737
 
62414
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
75738
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
62415
75739
 public :
62416
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
75740
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
62417
75741
  typedef CT_SizeofExpr CExprResolveExpr;
62418
75742
 
62419
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
75743
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
62420
75744
 public :
62421
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
62422
 
#line 950 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75745
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
75746
#line 1795 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62423
75747
};
62424
75748
 
 
75749
/** \class CT_IndexDesignator CTree.h Puma/CTree.h
 
75750
 *  Tree node representing an index designator, i.e. [1]. */
62425
75751
 
62426
 
#line 62427 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75752
#line 75753 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62427
75753
} // closed Puma
 
75754
class CCExprResolve;
 
75755
class CExprResolve;
62428
75756
class WinIfExists;
62429
75757
class WinImportHandler;
62430
75758
class WinMacros;
62431
 
class CMatchSyntax;
62432
 
class ExtGnu;
 
75759
class WinAsm;
 
75760
class WinDeclSpecs;
 
75761
class WinMemberExplSpec;
 
75762
class WinTypeKeywords;
 
75763
class WinFriend;
62433
75764
class ExtAC;
62434
75765
class ExtACBuilderCoupling;
62435
75766
class ExtACSyntaxCoupling;
62436
75767
class ExtACTree;
62437
75768
class ExtACKeywords;
62438
 
class WinAsm;
62439
 
class WinDeclSpecs;
62440
 
class WinMemberExplSpec;
62441
 
class WinTypeKeywords;
 
75769
class ExtGnu;
62442
75770
class PragmaOnceUnitState;
62443
75771
class PragmaOnce;
62444
 
class CCExprResolve;
62445
 
class CExprResolve;
62446
 
namespace Puma {
62447
 
 
62448
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75772
class CMatchSyntax;
 
75773
namespace Puma {
 
75774
 
 
75775
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75776
 
 
75777
#line 75778 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75778
} // closed Puma
 
75779
 
 
75780
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75781
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75782
#include "CCExprResolveH.ah"
 
75783
#endif
 
75784
namespace Puma {
 
75785
 
 
75786
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75787
 
 
75788
#line 75789 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75789
} // closed Puma
 
75790
 
 
75791
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75792
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75793
#include "CExprResolveH.ah"
 
75794
#endif
 
75795
namespace Puma {
 
75796
 
 
75797
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62449
75798
class CT_IndexDesignator : public CT_Expression {
62450
 
#line 62451 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75799
#line 75800 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75800
  friend class ::CCExprResolve;
 
75801
  friend class ::CExprResolve;
62451
75802
  friend class ::WinIfExists;
62452
75803
  friend class ::WinImportHandler;
62453
75804
  friend class ::WinMacros;
62454
 
  friend class ::CMatchSyntax;
62455
 
  friend class ::ExtGnu;
 
75805
  friend class ::WinAsm;
 
75806
  friend class ::WinDeclSpecs;
 
75807
  friend class ::WinMemberExplSpec;
 
75808
  friend class ::WinTypeKeywords;
 
75809
  friend class ::WinFriend;
62456
75810
  friend class ::ExtAC;
62457
75811
  friend class ::ExtACBuilderCoupling;
62458
75812
  friend class ::ExtACSyntaxCoupling;
62459
75813
  friend class ::ExtACTree;
62460
75814
  friend class ::ExtACKeywords;
62461
 
  friend class ::WinAsm;
62462
 
  friend class ::WinDeclSpecs;
62463
 
  friend class ::WinMemberExplSpec;
62464
 
  friend class ::WinTypeKeywords;
 
75815
  friend class ::ExtGnu;
62465
75816
  friend class ::PragmaOnceUnitState;
62466
75817
  friend class ::PragmaOnce;
62467
 
  friend class ::CCExprResolve;
62468
 
  friend class ::CExprResolve;
 
75818
  friend class ::CMatchSyntax;
62469
75819
 
62470
 
#line 952 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75820
#line 1799 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62471
75821
 
62472
75822
  CTree *sons[3]; // open, index, close
62473
75823
 
62474
75824
public:
 
75825
  /** Constructor.
 
75826
   *  \param o Left bracket of the index designator.
 
75827
   *  \param i The index expression.
 
75828
   *  \param c Right bracket of the index designator. */
62475
75829
  CT_IndexDesignator (CTree *o, CTree *i, CTree *c) {
62476
 
    sons[0] = o; sons[1] = i; sons[2] = c;
 
75830
    AddSon (sons[0], o); AddSon (sons[1], i); AddSon (sons[2], c);
62477
75831
  }
 
75832
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62478
75833
  static const char *NodeId ();
 
75834
  /** Get the name of the node. Can be compared with NodeId(). */
62479
75835
  const char *NodeName () const { return NodeId (); }
 
75836
  /** Get the number of sons. */
62480
75837
  int Sons () const { return 3; }
 
75838
  /** Get the n-th son.
 
75839
   *  \param n The index of the son.
 
75840
   *  \return The n-th son or NULL. */
62481
75841
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
75842
  /** Replace a son.
 
75843
   *  \param old_son The son to replace.
 
75844
   *  \param new_son The new son. */
62482
75845
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62483
75846
    CTree::ReplaceSon (sons, 3, old_son, new_son);
62484
75847
  }
62485
75848
   private:
62486
75849
  typedef CT_IndexDesignator CCExprResolveExpr;
62487
75850
 
62488
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
75851
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
62489
75852
 public :
62490
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
75853
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
62491
75854
  typedef CT_IndexDesignator CExprResolveExpr;
62492
75855
 
62493
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
75856
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
62494
75857
 public :
62495
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
62496
 
#line 966 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75858
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
75859
#line 1826 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62497
75860
};
62498
75861
 
 
75862
/** \class CT_MembDesignator CTree.h Puma/CTree.h
 
75863
 *  Tree node representing a member designator, e.g. .a. */
62499
75864
 
62500
 
#line 62501 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75865
#line 75866 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62501
75866
} // closed Puma
 
75867
class CCExprResolve;
 
75868
class CExprResolve;
62502
75869
class WinIfExists;
62503
75870
class WinImportHandler;
62504
75871
class WinMacros;
62505
 
class CMatchSyntax;
62506
 
class ExtGnu;
 
75872
class WinAsm;
 
75873
class WinDeclSpecs;
 
75874
class WinMemberExplSpec;
 
75875
class WinTypeKeywords;
 
75876
class WinFriend;
62507
75877
class ExtAC;
62508
75878
class ExtACBuilderCoupling;
62509
75879
class ExtACSyntaxCoupling;
62510
75880
class ExtACTree;
62511
75881
class ExtACKeywords;
62512
 
class WinAsm;
62513
 
class WinDeclSpecs;
62514
 
class WinMemberExplSpec;
62515
 
class WinTypeKeywords;
 
75882
class ExtGnu;
62516
75883
class PragmaOnceUnitState;
62517
75884
class PragmaOnce;
62518
 
class CCExprResolve;
62519
 
class CExprResolve;
62520
 
namespace Puma {
62521
 
 
62522
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75885
class CMatchSyntax;
 
75886
namespace Puma {
 
75887
 
 
75888
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75889
 
 
75890
#line 75891 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75891
} // closed Puma
 
75892
 
 
75893
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75894
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
75895
#include "CCExprResolveH.ah"
 
75896
#endif
 
75897
namespace Puma {
 
75898
 
 
75899
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75900
 
 
75901
#line 75902 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75902
} // closed Puma
 
75903
 
 
75904
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75905
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
75906
#include "CExprResolveH.ah"
 
75907
#endif
 
75908
namespace Puma {
 
75909
 
 
75910
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62523
75911
class CT_MembDesignator : public CT_Expression {
62524
 
#line 62525 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75912
#line 75913 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
75913
  friend class ::CCExprResolve;
 
75914
  friend class ::CExprResolve;
62525
75915
  friend class ::WinIfExists;
62526
75916
  friend class ::WinImportHandler;
62527
75917
  friend class ::WinMacros;
62528
 
  friend class ::CMatchSyntax;
62529
 
  friend class ::ExtGnu;
 
75918
  friend class ::WinAsm;
 
75919
  friend class ::WinDeclSpecs;
 
75920
  friend class ::WinMemberExplSpec;
 
75921
  friend class ::WinTypeKeywords;
 
75922
  friend class ::WinFriend;
62530
75923
  friend class ::ExtAC;
62531
75924
  friend class ::ExtACBuilderCoupling;
62532
75925
  friend class ::ExtACSyntaxCoupling;
62533
75926
  friend class ::ExtACTree;
62534
75927
  friend class ::ExtACKeywords;
62535
 
  friend class ::WinAsm;
62536
 
  friend class ::WinDeclSpecs;
62537
 
  friend class ::WinMemberExplSpec;
62538
 
  friend class ::WinTypeKeywords;
 
75928
  friend class ::ExtGnu;
62539
75929
  friend class ::PragmaOnceUnitState;
62540
75930
  friend class ::PragmaOnce;
62541
 
  friend class ::CCExprResolve;
62542
 
  friend class ::CExprResolve;
 
75931
  friend class ::CMatchSyntax;
62543
75932
 
62544
 
#line 968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75933
#line 1830 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62545
75934
 
62546
75935
  CTree *sons[2]; // dot, member
62547
75936
 
62548
75937
public:
62549
 
  CT_MembDesignator (CTree *d, CTree *m) { sons[0] = d; sons[1] = m; }
 
75938
  /** Constructor.
 
75939
   *  \param d The dot before the member name.
 
75940
   *  \param m The member name. */
 
75941
  CT_MembDesignator (CTree *d, CTree *m) { AddSon (sons[0], d); AddSon (sons[1], m); }
 
75942
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62550
75943
  static const char *NodeId ();
 
75944
  /** Get the name of the node. Can be compared with NodeId(). */
62551
75945
  const char *NodeName () const { return NodeId (); }
 
75946
  /** Get the number of sons. */
62552
75947
  int Sons () const { return 2; }
 
75948
  /** Get the n-th son.
 
75949
   *  \param n The index of the son.
 
75950
   *  \return The n-th son or NULL. */
62553
75951
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
75952
  /** Replace a son.
 
75953
   *  \param old_son The son to replace.
 
75954
   *  \param new_son The new son. */
62554
75955
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62555
75956
    CTree::ReplaceSon (sons, 2, old_son, new_son);
62556
75957
  }
62557
75958
   private:
62558
75959
  typedef CT_MembDesignator CCExprResolveExpr;
62559
75960
 
62560
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
75961
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
62561
75962
 public :
62562
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
75963
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
62563
75964
  typedef CT_MembDesignator CExprResolveExpr;
62564
75965
 
62565
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
75966
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
62566
75967
 public :
62567
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
62568
 
#line 980 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75968
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
75969
#line 1854 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62569
75970
};
62570
75971
 
 
75972
/** \class CT_DesignatorSeq CTree.h Puma/CTree.h
 
75973
 *  Tree node representing a designator sequence, e.g. .a.b.c. */
62571
75974
 
62572
 
#line 62573 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
75975
#line 75976 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62573
75976
} // closed Puma
 
75977
class CCExprResolve;
 
75978
class CExprResolve;
62574
75979
class WinIfExists;
62575
75980
class WinImportHandler;
62576
75981
class WinMacros;
62577
 
class CMatchSyntax;
62578
 
class ExtGnu;
 
75982
class WinAsm;
 
75983
class WinDeclSpecs;
 
75984
class WinMemberExplSpec;
 
75985
class WinTypeKeywords;
 
75986
class WinFriend;
62579
75987
class ExtAC;
62580
75988
class ExtACBuilderCoupling;
62581
75989
class ExtACSyntaxCoupling;
62582
75990
class ExtACTree;
62583
75991
class ExtACKeywords;
62584
 
class WinAsm;
62585
 
class WinDeclSpecs;
62586
 
class WinMemberExplSpec;
62587
 
class WinTypeKeywords;
 
75992
class ExtGnu;
62588
75993
class PragmaOnceUnitState;
62589
75994
class PragmaOnce;
62590
 
class CCExprResolve;
62591
 
class CExprResolve;
 
75995
class CMatchSyntax;
62592
75996
namespace Puma {
62593
75997
 
62594
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
75998
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62595
75999
class CT_DesignatorSeq : public CT_List, public CSemValue {
62596
 
#line 62597 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76000
#line 76001 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
76001
  friend class ::CCExprResolve;
 
76002
  friend class ::CExprResolve;
62597
76003
  friend class ::WinIfExists;
62598
76004
  friend class ::WinImportHandler;
62599
76005
  friend class ::WinMacros;
62600
 
  friend class ::CMatchSyntax;
62601
 
  friend class ::ExtGnu;
 
76006
  friend class ::WinAsm;
 
76007
  friend class ::WinDeclSpecs;
 
76008
  friend class ::WinMemberExplSpec;
 
76009
  friend class ::WinTypeKeywords;
 
76010
  friend class ::WinFriend;
62602
76011
  friend class ::ExtAC;
62603
76012
  friend class ::ExtACBuilderCoupling;
62604
76013
  friend class ::ExtACSyntaxCoupling;
62605
76014
  friend class ::ExtACTree;
62606
76015
  friend class ::ExtACKeywords;
62607
 
  friend class ::WinAsm;
62608
 
  friend class ::WinDeclSpecs;
62609
 
  friend class ::WinMemberExplSpec;
62610
 
  friend class ::WinTypeKeywords;
 
76016
  friend class ::ExtGnu;
62611
76017
  friend class ::PragmaOnceUnitState;
62612
76018
  friend class ::PragmaOnce;
62613
 
  friend class ::CCExprResolve;
62614
 
  friend class ::CExprResolve;
 
76019
  friend class ::CMatchSyntax;
62615
76020
 
62616
 
#line 982 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76021
#line 1858 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62617
76022
 
62618
76023
public:
 
76024
  /** Constructor.
 
76025
   *  \param size Initial number of designators. */
62619
76026
  CT_DesignatorSeq (int size = 1) : CT_List (size, 2) {}
 
76027
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62620
76028
  static const char *NodeId ();
 
76029
  /** Get the name of the node. Can be compared with NodeId(). */
62621
76030
  const char *NodeName () const { return NodeId (); }
62622
76031
 
 
76032
  /** Get the type of the entity to initialize. */
62623
76033
  CTypeInfo *Type () const { return type; }
 
76034
  /** Get the value of the entity to initialize. */
62624
76035
  CExprValue *Value () const { return value; }
 
76036
  /** Get the semantic value object. */
62625
76037
  CSemValue *SemValue () const { return (CSemValue*)this; }
62626
76038
};
62627
76039
 
62631
76043
/*                                                                           */
62632
76044
/*****************************************************************************/
62633
76045
 
 
76046
/** \class CT_DeclSpec CTree.h Puma/CTree.h
 
76047
 *  Base class for all tree nodes representing declaration specifiers. */
62634
76048
 
62635
 
#line 62636 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76049
#line 76050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62636
76050
} // closed Puma
 
76051
class CCExprResolve;
 
76052
class CExprResolve;
62637
76053
class WinIfExists;
62638
76054
class WinImportHandler;
62639
76055
class WinMacros;
62640
 
class CMatchSyntax;
62641
 
class ExtGnu;
 
76056
class WinAsm;
 
76057
class WinDeclSpecs;
 
76058
class WinMemberExplSpec;
 
76059
class WinTypeKeywords;
 
76060
class WinFriend;
62642
76061
class ExtAC;
62643
76062
class ExtACBuilderCoupling;
62644
76063
class ExtACSyntaxCoupling;
62645
76064
class ExtACTree;
62646
76065
class ExtACKeywords;
62647
 
class WinAsm;
62648
 
class WinDeclSpecs;
62649
 
class WinMemberExplSpec;
62650
 
class WinTypeKeywords;
 
76066
class ExtGnu;
62651
76067
class PragmaOnceUnitState;
62652
76068
class PragmaOnce;
62653
 
class CCExprResolve;
62654
 
class CExprResolve;
 
76069
class CMatchSyntax;
62655
76070
namespace Puma {
62656
76071
 
62657
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76072
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62658
76073
class CT_DeclSpec : public CTree {
62659
 
#line 62660 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76074
#line 76075 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
76075
  friend class ::CCExprResolve;
 
76076
  friend class ::CExprResolve;
62660
76077
  friend class ::WinIfExists;
62661
76078
  friend class ::WinImportHandler;
62662
76079
  friend class ::WinMacros;
62663
 
  friend class ::CMatchSyntax;
62664
 
  friend class ::ExtGnu;
 
76080
  friend class ::WinAsm;
 
76081
  friend class ::WinDeclSpecs;
 
76082
  friend class ::WinMemberExplSpec;
 
76083
  friend class ::WinTypeKeywords;
 
76084
  friend class ::WinFriend;
62665
76085
  friend class ::ExtAC;
62666
76086
  friend class ::ExtACBuilderCoupling;
62667
76087
  friend class ::ExtACSyntaxCoupling;
62668
76088
  friend class ::ExtACTree;
62669
76089
  friend class ::ExtACKeywords;
62670
 
  friend class ::WinAsm;
62671
 
  friend class ::WinDeclSpecs;
62672
 
  friend class ::WinMemberExplSpec;
62673
 
  friend class ::WinTypeKeywords;
 
76090
  friend class ::ExtGnu;
62674
76091
  friend class ::PragmaOnceUnitState;
62675
76092
  friend class ::PragmaOnce;
62676
 
  friend class ::CCExprResolve;
62677
 
  friend class ::CExprResolve;
 
76093
  friend class ::CMatchSyntax;
62678
76094
 
62679
 
#line 999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76095
#line 1884 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62680
76096
 
62681
76097
protected:
 
76098
  /** Constructor. */
62682
76099
  CT_DeclSpec () {}
62683
76100
};
62684
76101
 
 
76102
/** \class CT_PrimDeclSpec CTree.h Puma/CTree.h
 
76103
 *  Tree node representing a primitive declaration specifier. */
62685
76104
 
62686
 
#line 62687 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76105
#line 76106 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62687
76106
} // closed Puma
 
76107
class CCExprResolve;
 
76108
class CExprResolve;
62688
76109
class WinIfExists;
62689
76110
class WinImportHandler;
62690
76111
class WinMacros;
62691
 
class CMatchSyntax;
62692
 
class ExtGnu;
 
76112
class WinAsm;
 
76113
class WinDeclSpecs;
 
76114
class WinMemberExplSpec;
 
76115
class WinTypeKeywords;
 
76116
class WinFriend;
62693
76117
class ExtAC;
62694
76118
class ExtACBuilderCoupling;
62695
76119
class ExtACSyntaxCoupling;
62696
76120
class ExtACTree;
62697
76121
class ExtACKeywords;
62698
 
class WinAsm;
62699
 
class WinDeclSpecs;
62700
 
class WinMemberExplSpec;
62701
 
class WinTypeKeywords;
 
76122
class ExtGnu;
62702
76123
class PragmaOnceUnitState;
62703
76124
class PragmaOnce;
62704
 
class CCExprResolve;
62705
 
class CExprResolve;
 
76125
class CMatchSyntax;
62706
76126
namespace Puma {
62707
76127
 
62708
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76128
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62709
76129
class CT_PrimDeclSpec : public CT_DeclSpec {
62710
 
#line 62711 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76130
#line 76131 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
76131
  friend class ::CCExprResolve;
 
76132
  friend class ::CExprResolve;
62711
76133
  friend class ::WinIfExists;
62712
76134
  friend class ::WinImportHandler;
62713
76135
  friend class ::WinMacros;
62714
 
  friend class ::CMatchSyntax;
62715
 
  friend class ::ExtGnu;
 
76136
  friend class ::WinAsm;
 
76137
  friend class ::WinDeclSpecs;
 
76138
  friend class ::WinMemberExplSpec;
 
76139
  friend class ::WinTypeKeywords;
 
76140
  friend class ::WinFriend;
62716
76141
  friend class ::ExtAC;
62717
76142
  friend class ::ExtACBuilderCoupling;
62718
76143
  friend class ::ExtACSyntaxCoupling;
62719
76144
  friend class ::ExtACTree;
62720
76145
  friend class ::ExtACKeywords;
62721
 
  friend class ::WinAsm;
62722
 
  friend class ::WinDeclSpecs;
62723
 
  friend class ::WinMemberExplSpec;
62724
 
  friend class ::WinTypeKeywords;
 
76146
  friend class ::ExtGnu;
62725
76147
  friend class ::PragmaOnceUnitState;
62726
76148
  friend class ::PragmaOnce;
62727
 
  friend class ::CCExprResolve;
62728
 
  friend class ::CExprResolve;
 
76149
  friend class ::CMatchSyntax;
62729
76150
 
62730
 
#line 1004 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76151
#line 1892 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62731
76152
 
62732
76153
public:
62733
 
  enum Type { PDS_FRIEND, PDS_TYPEDEF, PDS_AUTO, PDS_REGISTER, PDS_STATIC, 
62734
 
              PDS_EXTERN, PDS_MUTABLE, PDS_INLINE, PDS_VIRTUAL, PDS_EXPLICIT, 
62735
 
              PDS_CONST, PDS_VOLATILE, PDS_RESTRICT, PDS_CHAR, PDS_WCHAR_T, 
62736
 
              PDS_BOOL, PDS_SHORT, PDS_INT, PDS_LONG, PDS_SIGNED, PDS_UNSIGNED, 
62737
 
              PDS_FLOAT, PDS_DOUBLE, PDS_VOID, 
62738
 
              // AspectC++ specific type specifier
62739
 
              PDS_UNKNOWN_T,
62740
 
              // Win specific declaration specifiers
62741
 
              PDS_CDECL, PDS_STDCALL, PDS_FASTCALL, PDS_INT64,
62742
 
              PDS_UNKNOWN, PDS_NUM };
 
76154
  /** Declaration specifier types. */
 
76155
  enum Type { 
 
76156
    PDS_FRIEND,    /** friend */
 
76157
    PDS_TYPEDEF,   /** typedef */
 
76158
    PDS_AUTO,      /** auto */
 
76159
    PDS_REGISTER,  /** register */
 
76160
    PDS_STATIC,    /** static */
 
76161
    PDS_EXTERN,    /** extern */
 
76162
    PDS_MUTABLE,   /** mutable */
 
76163
    PDS_INLINE,    /** inline */
 
76164
    PDS_VIRTUAL,   /** virtual */
 
76165
    PDS_EXPLICIT,  /** explicit */
 
76166
    PDS_CONST,     /** const */
 
76167
    PDS_VOLATILE,  /** volatile */
 
76168
    PDS_RESTRICT,  /** restrict */
 
76169
    PDS_CHAR,      /** char */
 
76170
    PDS_WCHAR_T,   /** wchar_t */
 
76171
    PDS_BOOL,      /** bool */
 
76172
    PDS_SHORT,     /** short */
 
76173
    PDS_INT,       /** int */
 
76174
    PDS_LONG,      /** long */
 
76175
    PDS_SIGNED,    /** signed */
 
76176
    PDS_UNSIGNED,  /** unsigned */
 
76177
    PDS_FLOAT,     /** float */
 
76178
    PDS_DOUBLE,    /** double */
 
76179
    PDS_VOID,      /** void */
 
76180
    // AspectC++ specific type specifier
 
76181
    PDS_UNKNOWN_T, /** unknown_t */
 
76182
    // Win specific declaration specifiers
 
76183
    PDS_CDECL,     /** __cdecl */
 
76184
    PDS_STDCALL,   /** __stdcall */
 
76185
    PDS_FASTCALL,  /** __fastcall */
 
76186
    PDS_INT64,     /** __int64 */
 
76187
    PDS_UNKNOWN,   /** Unknown declaration specifier. */
 
76188
    PDS_NUM        /** Number of declaration specifier types. */
 
76189
  };
62743
76190
 
62744
76191
private:
62745
76192
  Type _type;
62746
 
  CT_Token *_token;
 
76193
  CTree *_token; // has to be a CT_Token
62747
76194
 
62748
76195
  void determine_type ();
62749
76196
 
62750
76197
public:
62751
 
  CT_PrimDeclSpec (CT_Token *t) : _token (t) { determine_type (); }
 
76198
  /** Constructor.
 
76199
   *  \param t The token containing the declaration specifier. */
 
76200
  CT_PrimDeclSpec (CT_Token *t) { AddSon (_token, (CTree*)t); determine_type (); }
 
76201
  /** Constructor.
 
76202
   *  \param t The declaration specifier type. */
62752
76203
  CT_PrimDeclSpec (Type t) : _token (0) { _type = t; }
 
76204
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62753
76205
  static const char *NodeId ();
 
76206
  /** Get the name of the node. Can be compared with NodeId(). */
62754
76207
  const char *NodeName () const { return NodeId (); }
 
76208
  /** Get the number of sons. */
62755
76209
  int Sons () const { return _token ? 1 : 0; }
 
76210
  /** Get the n-th son.
 
76211
   *  \param n The index of the son.
 
76212
   *  \return The n-th son or NULL. */
62756
76213
  CTree *Son (int n) const 
62757
76214
   { return (n == 0) ? _token : (CTree*)0; }
 
76215
  /** Get the textual representation of the declaration specifier.
 
76216
   *  \return The string representation or " ". */
62758
76217
  const char *SpecText () const 
62759
 
   { return _token ? _token->token ()->text ().c_str () : " "; }
 
76218
   { return _token ? _token->token ()->text () : " "; }
 
76219
  /** Get the declaration specifier type. */
62760
76220
  Type SpecType () const { return _type; }
 
76221
  /** Number of declaration specifier types. */
62761
76222
  static const int NumTypes = PDS_NUM;
 
76223
  /** Replace a son.
 
76224
   *  \param old_son The son to replace.
 
76225
   *  \param new_son The new son. */
 
76226
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
 
76227
    CTree::ReplaceSon (_token, (CTree*)old_son, (CTree*)new_son);
 
76228
    determine_type ();
 
76229
  }
62762
76230
};
62763
76231
 
 
76232
/** \class CT_NamedType CTree.h Puma/CTree.h
 
76233
 *  Tree node representing a named type, e.g. (int*)a. 
 
76234
 *  where int* is a type with a generated name. */
62764
76235
 
62765
 
#line 62766 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76236
#line 76237 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62766
76237
} // closed Puma
 
76238
class CCExprResolve;
 
76239
class CExprResolve;
62767
76240
class WinIfExists;
62768
76241
class WinImportHandler;
62769
76242
class WinMacros;
62770
 
class CMatchSyntax;
62771
 
class ExtGnu;
 
76243
class WinAsm;
 
76244
class WinDeclSpecs;
 
76245
class WinMemberExplSpec;
 
76246
class WinTypeKeywords;
 
76247
class WinFriend;
62772
76248
class ExtAC;
62773
76249
class ExtACBuilderCoupling;
62774
76250
class ExtACSyntaxCoupling;
62775
76251
class ExtACTree;
62776
76252
class ExtACKeywords;
62777
 
class WinAsm;
62778
 
class WinDeclSpecs;
62779
 
class WinMemberExplSpec;
62780
 
class WinTypeKeywords;
 
76253
class ExtGnu;
62781
76254
class PragmaOnceUnitState;
62782
76255
class PragmaOnce;
62783
 
class CCExprResolve;
62784
 
class CExprResolve;
 
76256
class CMatchSyntax;
62785
76257
namespace Puma {
62786
76258
 
62787
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76259
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62788
76260
class CT_NamedType : public CT_DeclSpec, public CSemObject {
62789
 
#line 62790 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76261
#line 76262 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
76262
  friend class ::CCExprResolve;
 
76263
  friend class ::CExprResolve;
62790
76264
  friend class ::WinIfExists;
62791
76265
  friend class ::WinImportHandler;
62792
76266
  friend class ::WinMacros;
62793
 
  friend class ::CMatchSyntax;
62794
 
  friend class ::ExtGnu;
 
76267
  friend class ::WinAsm;
 
76268
  friend class ::WinDeclSpecs;
 
76269
  friend class ::WinMemberExplSpec;
 
76270
  friend class ::WinTypeKeywords;
 
76271
  friend class ::WinFriend;
62795
76272
  friend class ::ExtAC;
62796
76273
  friend class ::ExtACBuilderCoupling;
62797
76274
  friend class ::ExtACSyntaxCoupling;
62798
76275
  friend class ::ExtACTree;
62799
76276
  friend class ::ExtACKeywords;
62800
 
  friend class ::WinAsm;
62801
 
  friend class ::WinDeclSpecs;
62802
 
  friend class ::WinMemberExplSpec;
62803
 
  friend class ::WinTypeKeywords;
 
76277
  friend class ::ExtGnu;
62804
76278
  friend class ::PragmaOnceUnitState;
62805
76279
  friend class ::PragmaOnce;
62806
 
  friend class ::CCExprResolve;
62807
 
  friend class ::CExprResolve;
 
76280
  friend class ::CMatchSyntax;
62808
76281
 
62809
 
#line 1037 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76282
#line 1975 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62810
76283
 
62811
76284
  CTree *sons[2]; // declspecs, declarator
62812
76285
 
62813
76286
public:
62814
 
  CT_NamedType (CTree *dss, CTree *d) { sons[0] = dss; sons[1] = d; }
 
76287
  /** Constructor.
 
76288
   *  \param dss The declaration specifier sequence of the type.
 
76289
   *  \param d The type declarator. */
 
76290
  CT_NamedType (CTree *dss, CTree *d) { AddSon (sons[0], dss); AddSon (sons[1], d); }
 
76291
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62815
76292
  static const char *NodeId ();
 
76293
  /** Get the name of the node. Can be compared with NodeId(). */
62816
76294
  const char *NodeName () const { return NodeId (); }
 
76295
  /** Get the number of sons. */
62817
76296
  int Sons () const { return CTree::Sons (sons, 2); }
 
76297
  /** Get the n-th son.
 
76298
   *  \param n The index of the son.
 
76299
   *  \return The n-th son or NULL. */
62818
76300
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
76301
  /** Get the declarator. */
62819
76302
  CTree *Declarator () const { return sons[1]; }
 
76303
  /** Replace a son.
 
76304
   *  \param old_son The son to replace.
 
76305
   *  \param new_son The new son. */
62820
76306
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62821
76307
    CTree::ReplaceSon (sons, 2, old_son, new_son);
62822
76308
  }
 
76309
  /** Get the semantic information object. */
62823
76310
  CSemObject *SemObject () const { return (CSemObject*)this; }
62824
76311
};
62825
76312
      
 
76313
/** \class CT_ClassSpec CTree.h Puma/CTree.h
 
76314
 *  Tree node representing a class specifier, e.g. class X. */
62826
76315
 
62827
 
#line 62828 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76316
#line 76317 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62828
76317
} // closed Puma
 
76318
class CCExprResolve;
 
76319
class CExprResolve;
62829
76320
class WinIfExists;
62830
76321
class WinImportHandler;
62831
76322
class WinMacros;
62832
 
class CMatchSyntax;
62833
 
class ExtGnu;
 
76323
class WinAsm;
 
76324
class WinDeclSpecs;
 
76325
class WinMemberExplSpec;
 
76326
class WinTypeKeywords;
 
76327
class WinFriend;
62834
76328
class ExtAC;
62835
76329
class ExtACBuilderCoupling;
62836
76330
class ExtACSyntaxCoupling;
62837
76331
class ExtACTree;
62838
76332
class ExtACKeywords;
62839
 
class WinAsm;
62840
 
class WinDeclSpecs;
62841
 
class WinMemberExplSpec;
62842
 
class WinTypeKeywords;
 
76333
class ExtGnu;
62843
76334
class PragmaOnceUnitState;
62844
76335
class PragmaOnce;
62845
 
class CCExprResolve;
62846
 
class CExprResolve;
 
76336
class CMatchSyntax;
62847
76337
namespace Puma {
62848
76338
 
62849
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76339
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62850
76340
class CT_ClassSpec : public CT_DeclSpec, public CSemObject {
62851
 
#line 62852 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76341
#line 76342 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
76342
  friend class ::CCExprResolve;
 
76343
  friend class ::CExprResolve;
62852
76344
  friend class ::WinIfExists;
62853
76345
  friend class ::WinImportHandler;
62854
76346
  friend class ::WinMacros;
62855
 
  friend class ::CMatchSyntax;
62856
 
  friend class ::ExtGnu;
 
76347
  friend class ::WinAsm;
 
76348
  friend class ::WinDeclSpecs;
 
76349
  friend class ::WinMemberExplSpec;
 
76350
  friend class ::WinTypeKeywords;
 
76351
  friend class ::WinFriend;
62857
76352
  friend class ::ExtAC;
62858
76353
  friend class ::ExtACBuilderCoupling;
62859
76354
  friend class ::ExtACSyntaxCoupling;
62860
76355
  friend class ::ExtACTree;
62861
76356
  friend class ::ExtACKeywords;
62862
 
  friend class ::WinAsm;
62863
 
  friend class ::WinDeclSpecs;
62864
 
  friend class ::WinMemberExplSpec;
62865
 
  friend class ::WinTypeKeywords;
 
76357
  friend class ::ExtGnu;
62866
76358
  friend class ::PragmaOnceUnitState;
62867
76359
  friend class ::PragmaOnce;
62868
 
  friend class ::CCExprResolve;
62869
 
  friend class ::CExprResolve;
 
76360
  friend class ::CMatchSyntax;
62870
76361
 
62871
 
#line 1053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76362
#line 2007 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62872
76363
 
62873
76364
  CTree *sons[2]; // key, name
62874
76365
  
62875
76366
public:
62876
 
  CT_ClassSpec (CTree *k, CTree *n) { sons[0] = k; sons[1] = n; }
 
76367
  /** Constructor.
 
76368
   *  \param k The 'class' or 'struct' keyword.
 
76369
   *  \param n The class name. */
 
76370
  CT_ClassSpec (CTree *k, CTree *n) { AddSon (sons[0], k); AddSon (sons[1], n); }
 
76371
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62877
76372
  static const char *NodeId ();
 
76373
  /** Get the name of the node. Can be compared with NodeId(). */
62878
76374
  const char *NodeName () const { return NodeId (); }
 
76375
  /** Get the number of sons. */
62879
76376
  int Sons () const { return 2; }
 
76377
  /** Get the n-th son.
 
76378
   *  \param n The index of the son.
 
76379
   *  \return The n-th son or NULL. */
62880
76380
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); } 
 
76381
  /** Get the class name. */
62881
76382
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
 
76383
  /** Get the semantic information object. */
62882
76384
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
76385
  /** Replace a son.
 
76386
   *  \param old_son The son to replace.
 
76387
   *  \param new_son The new son. */
62883
76388
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
62884
76389
    CTree::ReplaceSon (sons, 2, old_son, new_son);
62885
76390
  }
62886
76391
};
62887
76392
 
 
76393
/** \class CT_UnionSpec CTree.h Puma/CTree.h
 
76394
 *  Tree node representing a union specifier, e.g. union X. */
62888
76395
 
62889
 
#line 62890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76396
#line 76397 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62890
76397
} // closed Puma
 
76398
class CCExprResolve;
 
76399
class CExprResolve;
62891
76400
class WinIfExists;
62892
76401
class WinImportHandler;
62893
76402
class WinMacros;
62894
 
class CMatchSyntax;
62895
 
class ExtGnu;
 
76403
class WinAsm;
 
76404
class WinDeclSpecs;
 
76405
class WinMemberExplSpec;
 
76406
class WinTypeKeywords;
 
76407
class WinFriend;
62896
76408
class ExtAC;
62897
76409
class ExtACBuilderCoupling;
62898
76410
class ExtACSyntaxCoupling;
62899
76411
class ExtACTree;
62900
76412
class ExtACKeywords;
62901
 
class WinAsm;
62902
 
class WinDeclSpecs;
62903
 
class WinMemberExplSpec;
62904
 
class WinTypeKeywords;
 
76413
class ExtGnu;
62905
76414
class PragmaOnceUnitState;
62906
76415
class PragmaOnce;
62907
 
class CCExprResolve;
62908
 
class CExprResolve;
 
76416
class CMatchSyntax;
62909
76417
namespace Puma {
62910
76418
 
62911
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76419
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62912
76420
class CT_UnionSpec : public CT_ClassSpec {
62913
 
#line 62914 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76421
#line 76422 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
76422
  friend class ::CCExprResolve;
 
76423
  friend class ::CExprResolve;
62914
76424
  friend class ::WinIfExists;
62915
76425
  friend class ::WinImportHandler;
62916
76426
  friend class ::WinMacros;
62917
 
  friend class ::CMatchSyntax;
62918
 
  friend class ::ExtGnu;
 
76427
  friend class ::WinAsm;
 
76428
  friend class ::WinDeclSpecs;
 
76429
  friend class ::WinMemberExplSpec;
 
76430
  friend class ::WinTypeKeywords;
 
76431
  friend class ::WinFriend;
62919
76432
  friend class ::ExtAC;
62920
76433
  friend class ::ExtACBuilderCoupling;
62921
76434
  friend class ::ExtACSyntaxCoupling;
62922
76435
  friend class ::ExtACTree;
62923
76436
  friend class ::ExtACKeywords;
62924
 
  friend class ::WinAsm;
62925
 
  friend class ::WinDeclSpecs;
62926
 
  friend class ::WinMemberExplSpec;
62927
 
  friend class ::WinTypeKeywords;
 
76437
  friend class ::ExtGnu;
62928
76438
  friend class ::PragmaOnceUnitState;
62929
76439
  friend class ::PragmaOnce;
62930
 
  friend class ::CCExprResolve;
62931
 
  friend class ::CExprResolve;
 
76440
  friend class ::CMatchSyntax;
62932
76441
 
62933
 
#line 1069 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76442
#line 2039 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62934
76443
 
62935
76444
public:
 
76445
  /** Constructor.
 
76446
   *  \param k The 'union' keyword.
 
76447
   *  \param n The name of the union. */
62936
76448
  CT_UnionSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
76449
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62937
76450
  static const char *NodeId ();
 
76451
  /** Get the name of the node. Can be compared with NodeId(). */
62938
76452
  const char *NodeName () const { return NodeId (); }
62939
76453
};
62940
76454
 
 
76455
/** \class CT_EnumSpec CTree.h Puma/CTree.h
 
76456
 *  Tree node representing an enumeration specifier, e.g. enum X. */
62941
76457
 
62942
 
#line 62943 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76458
#line 76459 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62943
76459
} // closed Puma
 
76460
class CCExprResolve;
 
76461
class CExprResolve;
62944
76462
class WinIfExists;
62945
76463
class WinImportHandler;
62946
76464
class WinMacros;
62947
 
class CMatchSyntax;
62948
 
class ExtGnu;
 
76465
class WinAsm;
 
76466
class WinDeclSpecs;
 
76467
class WinMemberExplSpec;
 
76468
class WinTypeKeywords;
 
76469
class WinFriend;
62949
76470
class ExtAC;
62950
76471
class ExtACBuilderCoupling;
62951
76472
class ExtACSyntaxCoupling;
62952
76473
class ExtACTree;
62953
76474
class ExtACKeywords;
62954
 
class WinAsm;
62955
 
class WinDeclSpecs;
62956
 
class WinMemberExplSpec;
62957
 
class WinTypeKeywords;
 
76475
class ExtGnu;
62958
76476
class PragmaOnceUnitState;
62959
76477
class PragmaOnce;
62960
 
class CCExprResolve;
62961
 
class CExprResolve;
 
76478
class CMatchSyntax;
62962
76479
namespace Puma {
62963
76480
 
62964
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76481
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62965
76482
class CT_EnumSpec : public CT_ClassSpec {
62966
 
#line 62967 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76483
#line 76484 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
76484
  friend class ::CCExprResolve;
 
76485
  friend class ::CExprResolve;
62967
76486
  friend class ::WinIfExists;
62968
76487
  friend class ::WinImportHandler;
62969
76488
  friend class ::WinMacros;
62970
 
  friend class ::CMatchSyntax;
62971
 
  friend class ::ExtGnu;
 
76489
  friend class ::WinAsm;
 
76490
  friend class ::WinDeclSpecs;
 
76491
  friend class ::WinMemberExplSpec;
 
76492
  friend class ::WinTypeKeywords;
 
76493
  friend class ::WinFriend;
62972
76494
  friend class ::ExtAC;
62973
76495
  friend class ::ExtACBuilderCoupling;
62974
76496
  friend class ::ExtACSyntaxCoupling;
62975
76497
  friend class ::ExtACTree;
62976
76498
  friend class ::ExtACKeywords;
62977
 
  friend class ::WinAsm;
62978
 
  friend class ::WinDeclSpecs;
62979
 
  friend class ::WinMemberExplSpec;
62980
 
  friend class ::WinTypeKeywords;
 
76499
  friend class ::ExtGnu;
62981
76500
  friend class ::PragmaOnceUnitState;
62982
76501
  friend class ::PragmaOnce;
62983
 
  friend class ::CCExprResolve;
62984
 
  friend class ::CExprResolve;
 
76502
  friend class ::CMatchSyntax;
62985
76503
 
62986
 
#line 1076 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76504
#line 2053 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
62987
76505
 
62988
76506
public:
 
76507
  /** Constructor.
 
76508
   *  \param k The 'enum' keyword. 
 
76509
   *  \param n The name of the enumeration. */
62989
76510
  CT_EnumSpec (CTree *k, CTree *n) : CT_ClassSpec (k, n) {}
 
76511
  /** Get the identifier for this node type. Can be compared with NodeName(). */
62990
76512
  static const char *NodeId ();
 
76513
  /** Get the name of the node. Can be compared with NodeId(). */
62991
76514
  const char *NodeName () const { return NodeId (); }
62992
76515
};
62993
76516
 
 
76517
/** \class CT_ExceptionSpec CTree.h Puma/CTree.h
 
76518
 *  Tree node representing an exception specifier, e.g. throw(std::exception). */
62994
76519
 
62995
 
#line 62996 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76520
#line 76521 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
62996
76521
} // closed Puma
 
76522
class CCExprResolve;
 
76523
class CExprResolve;
62997
76524
class WinIfExists;
62998
76525
class WinImportHandler;
62999
76526
class WinMacros;
63000
 
class CMatchSyntax;
63001
 
class ExtGnu;
 
76527
class WinAsm;
 
76528
class WinDeclSpecs;
 
76529
class WinMemberExplSpec;
 
76530
class WinTypeKeywords;
 
76531
class WinFriend;
63002
76532
class ExtAC;
63003
76533
class ExtACBuilderCoupling;
63004
76534
class ExtACSyntaxCoupling;
63005
76535
class ExtACTree;
63006
76536
class ExtACKeywords;
63007
 
class WinAsm;
63008
 
class WinDeclSpecs;
63009
 
class WinMemberExplSpec;
63010
 
class WinTypeKeywords;
 
76537
class ExtGnu;
63011
76538
class PragmaOnceUnitState;
63012
76539
class PragmaOnce;
63013
 
class CCExprResolve;
63014
 
class CExprResolve;
 
76540
class CMatchSyntax;
63015
76541
namespace Puma {
63016
76542
 
63017
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76543
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63018
76544
class CT_ExceptionSpec : public CT_DeclSpec {
63019
 
#line 63020 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76545
#line 76546 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
76546
  friend class ::CCExprResolve;
 
76547
  friend class ::CExprResolve;
63020
76548
  friend class ::WinIfExists;
63021
76549
  friend class ::WinImportHandler;
63022
76550
  friend class ::WinMacros;
63023
 
  friend class ::CMatchSyntax;
63024
 
  friend class ::ExtGnu;
 
76551
  friend class ::WinAsm;
 
76552
  friend class ::WinDeclSpecs;
 
76553
  friend class ::WinMemberExplSpec;
 
76554
  friend class ::WinTypeKeywords;
 
76555
  friend class ::WinFriend;
63025
76556
  friend class ::ExtAC;
63026
76557
  friend class ::ExtACBuilderCoupling;
63027
76558
  friend class ::ExtACSyntaxCoupling;
63028
76559
  friend class ::ExtACTree;
63029
76560
  friend class ::ExtACKeywords;
63030
 
  friend class ::WinAsm;
63031
 
  friend class ::WinDeclSpecs;
63032
 
  friend class ::WinMemberExplSpec;
63033
 
  friend class ::WinTypeKeywords;
 
76561
  friend class ::ExtGnu;
63034
76562
  friend class ::PragmaOnceUnitState;
63035
76563
  friend class ::PragmaOnce;
63036
 
  friend class ::CCExprResolve;
63037
 
  friend class ::CExprResolve;
 
76564
  friend class ::CMatchSyntax;
63038
76565
 
63039
 
#line 1083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76566
#line 2067 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63040
76567
 
63041
76568
  CTree *sons[2]; // throw, type_id_list
63042
76569
  
63043
76570
public:
63044
 
  CT_ExceptionSpec (CTree *k, CTree *l) { sons[0] = k; sons[1] = l; }
 
76571
  /** Constructor.
 
76572
   *  \param k The 'throw' keyword.
 
76573
   *  \param l The type list for the exception type to throw. */
 
76574
  CT_ExceptionSpec (CTree *k, CTree *l) { AddSon (sons[0], k); AddSon (sons[1], l); }
 
76575
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63045
76576
  static const char *NodeId ();
 
76577
  /** Get the name of the node. Can be compared with NodeId(). */
63046
76578
  const char *NodeName () const { return NodeId (); }
 
76579
  /** Get the number of sons. */
63047
76580
  int Sons () const { return 2; }
 
76581
  /** Get the n-th son.
 
76582
   *  \param n The index of the son.
 
76583
   *  \return The n-th son or NULL. */
63048
76584
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
76585
  /** Get the exception type list. */
63049
76586
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
 
76587
  /** Replace a son.
 
76588
   *  \param old_son The son to replace.
 
76589
   *  \param new_son The new son. */
63050
76590
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63051
76591
    CTree::ReplaceSon (sons, 2, old_son, new_son);
63052
76592
  }
63058
76598
/*                                                                           */
63059
76599
/*****************************************************************************/
63060
76600
 
 
76601
/** \class CT_Decl CTree.h Puma/CTree.h
 
76602
 *  Base class for all tree nodes representing declarations. */
63061
76603
 
63062
 
#line 63063 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76604
#line 76605 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63063
76605
} // closed Puma
 
76606
class CCExprResolve;
 
76607
class CExprResolve;
63064
76608
class WinIfExists;
63065
76609
class WinImportHandler;
63066
76610
class WinMacros;
63067
 
class CMatchSyntax;
63068
 
class ExtGnu;
 
76611
class WinAsm;
 
76612
class WinDeclSpecs;
 
76613
class WinMemberExplSpec;
 
76614
class WinTypeKeywords;
 
76615
class WinFriend;
63069
76616
class ExtAC;
63070
76617
class ExtACBuilderCoupling;
63071
76618
class ExtACSyntaxCoupling;
63072
76619
class ExtACTree;
63073
76620
class ExtACKeywords;
63074
 
class WinAsm;
63075
 
class WinDeclSpecs;
63076
 
class WinMemberExplSpec;
63077
 
class WinTypeKeywords;
 
76621
class ExtGnu;
63078
76622
class PragmaOnceUnitState;
63079
76623
class PragmaOnce;
63080
 
class CCExprResolve;
63081
 
class CExprResolve;
 
76624
class CMatchSyntax;
63082
76625
namespace Puma {
63083
76626
 
63084
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76627
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63085
76628
class CT_Decl : public CTree {
63086
 
#line 63087 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76629
#line 76630 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
76630
  friend class ::CCExprResolve;
 
76631
  friend class ::CExprResolve;
63087
76632
  friend class ::WinIfExists;
63088
76633
  friend class ::WinImportHandler;
63089
76634
  friend class ::WinMacros;
63090
 
  friend class ::CMatchSyntax;
63091
 
  friend class ::ExtGnu;
 
76635
  friend class ::WinAsm;
 
76636
  friend class ::WinDeclSpecs;
 
76637
  friend class ::WinMemberExplSpec;
 
76638
  friend class ::WinTypeKeywords;
 
76639
  friend class ::WinFriend;
63092
76640
  friend class ::ExtAC;
63093
76641
  friend class ::ExtACBuilderCoupling;
63094
76642
  friend class ::ExtACSyntaxCoupling;
63095
76643
  friend class ::ExtACTree;
63096
76644
  friend class ::ExtACKeywords;
63097
 
  friend class ::WinAsm;
63098
 
  friend class ::WinDeclSpecs;
63099
 
  friend class ::WinMemberExplSpec;
63100
 
  friend class ::WinTypeKeywords;
 
76645
  friend class ::ExtGnu;
63101
76646
  friend class ::PragmaOnceUnitState;
63102
76647
  friend class ::PragmaOnce;
63103
 
  friend class ::CCExprResolve;
63104
 
  friend class ::CExprResolve;
 
76648
  friend class ::CMatchSyntax;
63105
76649
 
63106
 
#line 1104 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76650
#line 2103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63107
76651
 
63108
76652
  CT_LinkageSpec *_linkage;
 
76653
  
63109
76654
protected:
 
76655
  /** Constructor. */
63110
76656
  CT_Decl () : _linkage (0) {}
 
76657
  
63111
76658
public:
 
76659
  /** Set the linkage of the declared entity.
 
76660
   *  \param l The linkage specifiers. */
63112
76661
  void Linkage (CT_LinkageSpec *l) { _linkage = l; }
 
76662
  /** Get the linkage specifiers. */
63113
76663
  CT_LinkageSpec *Linkage () const { return _linkage; }
 
76664
  /** Get this. */
 
76665
  virtual CT_Decl *IsDeclaration () { return this; }
63114
76666
};
63115
76667
 
 
76668
/** \class CT_Program CTree.h Puma/CTree.h
 
76669
 *  Root node of C/C++ syntax tree. */
63116
76670
 
63117
 
#line 63118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76671
#line 76672 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63118
76672
} // closed Puma
 
76673
class CCExprResolve;
 
76674
class CExprResolve;
63119
76675
class WinIfExists;
63120
76676
class WinImportHandler;
63121
76677
class WinMacros;
63122
 
class CMatchSyntax;
63123
 
class ExtGnu;
 
76678
class WinAsm;
 
76679
class WinDeclSpecs;
 
76680
class WinMemberExplSpec;
 
76681
class WinTypeKeywords;
 
76682
class WinFriend;
63124
76683
class ExtAC;
63125
76684
class ExtACBuilderCoupling;
63126
76685
class ExtACSyntaxCoupling;
63127
76686
class ExtACTree;
63128
76687
class ExtACKeywords;
63129
 
class WinAsm;
63130
 
class WinDeclSpecs;
63131
 
class WinMemberExplSpec;
63132
 
class WinTypeKeywords;
 
76688
class ExtGnu;
63133
76689
class PragmaOnceUnitState;
63134
76690
class PragmaOnce;
63135
 
class CCExprResolve;
63136
 
class CExprResolve;
 
76691
class CMatchSyntax;
63137
76692
namespace Puma {
63138
76693
 
63139
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76694
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63140
76695
class CT_Program : public CT_DeclList, public CSemScope {
63141
 
#line 63142 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76696
#line 76697 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
76697
  friend class ::CCExprResolve;
 
76698
  friend class ::CExprResolve;
63142
76699
  friend class ::WinIfExists;
63143
76700
  friend class ::WinImportHandler;
63144
76701
  friend class ::WinMacros;
63145
 
  friend class ::CMatchSyntax;
63146
 
  friend class ::ExtGnu;
 
76702
  friend class ::WinAsm;
 
76703
  friend class ::WinDeclSpecs;
 
76704
  friend class ::WinMemberExplSpec;
 
76705
  friend class ::WinTypeKeywords;
 
76706
  friend class ::WinFriend;
63147
76707
  friend class ::ExtAC;
63148
76708
  friend class ::ExtACBuilderCoupling;
63149
76709
  friend class ::ExtACSyntaxCoupling;
63150
76710
  friend class ::ExtACTree;
63151
76711
  friend class ::ExtACKeywords;
63152
 
  friend class ::WinAsm;
63153
 
  friend class ::WinDeclSpecs;
63154
 
  friend class ::WinMemberExplSpec;
63155
 
  friend class ::WinTypeKeywords;
 
76712
  friend class ::ExtGnu;
63156
76713
  friend class ::PragmaOnceUnitState;
63157
76714
  friend class ::PragmaOnce;
63158
 
  friend class ::CCExprResolve;
63159
 
  friend class ::CExprResolve;
 
76715
  friend class ::CMatchSyntax;
63160
76716
 
63161
 
#line 1113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76717
#line 2122 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63162
76718
 
63163
76719
public:
 
76720
  /** Constructor.
 
76721
   *  \param size The initial number of declarations in the program.
 
76722
   *  \param incr The initial increment count. */
63164
76723
  CT_Program (int size = 20, int incr = 20) : CT_DeclList (size, incr) {}
 
76724
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63165
76725
  static const char *NodeId ();
 
76726
  /** Get the name of the node. Can be compared with NodeId(). */
63166
76727
  const char *NodeName () const { return NodeId (); }
 
76728
  /** Get the semantic scope object. */
 
76729
  CSemScope *SemScope () const { return (CSemScope*)this; }
63167
76730
};
63168
76731
   
 
76732
/** \class CT_ObjDecl CTree.h Puma/CTree.h
 
76733
 *  Tree node representing an object declaration, e.g. int *i. */
63169
76734
 
63170
 
#line 63171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76735
#line 76736 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63171
76736
} // closed Puma
 
76737
class CCExprResolve;
 
76738
class CExprResolve;
63172
76739
class WinIfExists;
63173
76740
class WinImportHandler;
63174
76741
class WinMacros;
63175
 
class CMatchSyntax;
63176
 
class ExtGnu;
 
76742
class WinAsm;
 
76743
class WinDeclSpecs;
 
76744
class WinMemberExplSpec;
 
76745
class WinTypeKeywords;
 
76746
class WinFriend;
63177
76747
class ExtAC;
63178
76748
class ExtACBuilderCoupling;
63179
76749
class ExtACSyntaxCoupling;
63180
76750
class ExtACTree;
63181
76751
class ExtACKeywords;
63182
 
class WinAsm;
63183
 
class WinDeclSpecs;
63184
 
class WinMemberExplSpec;
63185
 
class WinTypeKeywords;
 
76752
class ExtGnu;
63186
76753
class PragmaOnceUnitState;
63187
76754
class PragmaOnce;
63188
 
class CCExprResolve;
63189
 
class CExprResolve;
 
76755
class CMatchSyntax;
63190
76756
namespace Puma {
63191
76757
 
63192
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76758
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63193
76759
class CT_ObjDecl : public CT_Decl {
63194
 
#line 63195 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76760
#line 76761 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
76761
  friend class ::CCExprResolve;
 
76762
  friend class ::CExprResolve;
63195
76763
  friend class ::WinIfExists;
63196
76764
  friend class ::WinImportHandler;
63197
76765
  friend class ::WinMacros;
63198
 
  friend class ::CMatchSyntax;
63199
 
  friend class ::ExtGnu;
 
76766
  friend class ::WinAsm;
 
76767
  friend class ::WinDeclSpecs;
 
76768
  friend class ::WinMemberExplSpec;
 
76769
  friend class ::WinTypeKeywords;
 
76770
  friend class ::WinFriend;
63200
76771
  friend class ::ExtAC;
63201
76772
  friend class ::ExtACBuilderCoupling;
63202
76773
  friend class ::ExtACSyntaxCoupling;
63203
76774
  friend class ::ExtACTree;
63204
76775
  friend class ::ExtACKeywords;
63205
 
  friend class ::WinAsm;
63206
 
  friend class ::WinDeclSpecs;
63207
 
  friend class ::WinMemberExplSpec;
63208
 
  friend class ::WinTypeKeywords;
 
76776
  friend class ::ExtGnu;
63209
76777
  friend class ::PragmaOnceUnitState;
63210
76778
  friend class ::PragmaOnce;
63211
 
  friend class ::CCExprResolve;
63212
 
  friend class ::CExprResolve;
 
76779
  friend class ::CMatchSyntax;
63213
76780
 
63214
 
#line 1120 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76781
#line 2138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63215
76782
 
63216
76783
  CTree *sons[3]; // declspecs, declarators, colon
63217
76784
 
63218
76785
public:
 
76786
  /** Constructor.
 
76787
   *  \param dsl The declaration specifier sequence.
 
76788
   *  \param dl The declarator list.
 
76789
   *  \param c Optional colon. */
63219
76790
  CT_ObjDecl (CTree *dsl, CTree *dl, CTree *c) {
63220
 
    sons[0] = dsl; sons[1] = dl; sons[2] = c;
 
76791
    AddSon (sons[0], dsl); AddSon (sons[1], dl); AddSon (sons[2], c);
63221
76792
  }
 
76793
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63222
76794
  static const char *NodeId ();
 
76795
  /** Get the name of the node. Can be compared with NodeId(). */
63223
76796
  const char *NodeName () const { return NodeId (); }
 
76797
  /** Get the number of sons. */
63224
76798
  int Sons () const { return 3; }
 
76799
  /** Get the n-th son.
 
76800
   *  \param n The index of the son.
 
76801
   *  \return The n-th son or NULL. */
63225
76802
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
76803
  /** Get the declaration specifier sequence. */
63226
76804
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
 
76805
  /** Get the declarator list. */
63227
76806
  CT_DeclaratorList *Declarators () const { return (CT_DeclaratorList*)sons[1]; }
 
76807
  /** Replace a son.
 
76808
   *  \param old_son The son to replace.
 
76809
   *  \param new_son The new son. */
63228
76810
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63229
76811
    CTree::ReplaceSon (sons, 3, old_son, new_son);
63230
76812
  }
63231
76813
};
63232
76814
 
 
76815
/** \class CT_TemplateDecl CTree.h Puma/CTree.h
 
76816
 *  Tree node representing a template declaration. */
63233
76817
 
63234
 
#line 63235 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76818
#line 76819 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63235
76819
} // closed Puma
 
76820
class CCExprResolve;
 
76821
class CExprResolve;
63236
76822
class WinIfExists;
63237
76823
class WinImportHandler;
63238
76824
class WinMacros;
63239
 
class CMatchSyntax;
63240
 
class ExtGnu;
 
76825
class WinAsm;
 
76826
class WinDeclSpecs;
 
76827
class WinMemberExplSpec;
 
76828
class WinTypeKeywords;
 
76829
class WinFriend;
63241
76830
class ExtAC;
63242
76831
class ExtACBuilderCoupling;
63243
76832
class ExtACSyntaxCoupling;
63244
76833
class ExtACTree;
63245
76834
class ExtACKeywords;
63246
 
class WinAsm;
63247
 
class WinDeclSpecs;
63248
 
class WinMemberExplSpec;
63249
 
class WinTypeKeywords;
 
76835
class ExtGnu;
63250
76836
class PragmaOnceUnitState;
63251
76837
class PragmaOnce;
63252
 
class CCExprResolve;
63253
 
class CExprResolve;
 
76838
class CMatchSyntax;
63254
76839
namespace Puma {
63255
76840
 
63256
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76841
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63257
76842
class CT_TemplateDecl : public CT_Decl, public CSemScope {
63258
 
#line 63259 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76843
#line 76844 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
76844
  friend class ::CCExprResolve;
 
76845
  friend class ::CExprResolve;
63259
76846
  friend class ::WinIfExists;
63260
76847
  friend class ::WinImportHandler;
63261
76848
  friend class ::WinMacros;
63262
 
  friend class ::CMatchSyntax;
63263
 
  friend class ::ExtGnu;
 
76849
  friend class ::WinAsm;
 
76850
  friend class ::WinDeclSpecs;
 
76851
  friend class ::WinMemberExplSpec;
 
76852
  friend class ::WinTypeKeywords;
 
76853
  friend class ::WinFriend;
63264
76854
  friend class ::ExtAC;
63265
76855
  friend class ::ExtACBuilderCoupling;
63266
76856
  friend class ::ExtACSyntaxCoupling;
63267
76857
  friend class ::ExtACTree;
63268
76858
  friend class ::ExtACKeywords;
63269
 
  friend class ::WinAsm;
63270
 
  friend class ::WinDeclSpecs;
63271
 
  friend class ::WinMemberExplSpec;
63272
 
  friend class ::WinTypeKeywords;
 
76859
  friend class ::ExtGnu;
63273
76860
  friend class ::PragmaOnceUnitState;
63274
76861
  friend class ::PragmaOnce;
63275
 
  friend class ::CCExprResolve;
63276
 
  friend class ::CExprResolve;
 
76862
  friend class ::CMatchSyntax;
63277
76863
 
63278
 
#line 1138 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76864
#line 2173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63279
76865
 
63280
76866
  CTree *sons[3]; // export, param_list, decl
63281
76867
 
63282
76868
public:
 
76869
  /** Constructor.
 
76870
   *  \param e Optional 'export' keyword. 
 
76871
   *  \param p The template parameter list.
 
76872
   *  \param d The class or function declaration. */
63283
76873
  CT_TemplateDecl (CTree *e, CTree *p, CTree *d) {
63284
 
    sons[0] = e; sons[1] = p; sons[2] = d;
 
76874
    AddSon (sons[0], e); AddSon (sons[1], p); AddSon (sons[2], d);
63285
76875
  }
 
76876
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63286
76877
  static const char *NodeId ();
 
76878
  /** Get the name of the node. Can be compared with NodeId(). */
63287
76879
  const char *NodeName () const { return NodeId (); }
 
76880
  /** Get the number of sons. */
63288
76881
  int Sons () const { return CTree::Sons (sons, 3); }
 
76882
  /** Get the n-th son.
 
76883
   *  \param n The index of the son.
 
76884
   *  \return The n-th son or NULL. */
63289
76885
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
76886
  /** Replace a son.
 
76887
   *  \param old_son The son to replace.
 
76888
   *  \param new_son The new son. */
63290
76889
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63291
76890
    CTree::ReplaceSon (sons, 3, old_son, new_son); 
63292
76891
  }
 
76892
  /** Get the 'export' keyword. */
63293
76893
  CTree *Export () const { return sons[0]; }
 
76894
  /** Get the template parameter list. */
63294
76895
  CT_TemplateParamList *Parameters () const { 
63295
76896
    return (CT_TemplateParamList*)sons[1]; 
63296
76897
  }
 
76898
  /** Get the class or function declaration. */
63297
76899
  CTree *Declaration () const { return sons[2]; }
 
76900
  /** Get the semantic scope object. */
 
76901
  CSemScope *SemScope () const { return (CSemScope*)this; }
63298
76902
};
63299
76903
 
 
76904
/** \class CT_TemplateParamDecl CTree.h Puma/CTree.h
 
76905
 *  Base class for all tree nodesrepresenting a template parameter declaration. */
63300
76906
 
63301
 
#line 63302 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76907
#line 76908 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63302
76908
} // closed Puma
 
76909
class CCExprResolve;
 
76910
class CExprResolve;
63303
76911
class WinIfExists;
63304
76912
class WinImportHandler;
63305
76913
class WinMacros;
63306
 
class CMatchSyntax;
63307
 
class ExtGnu;
 
76914
class WinAsm;
 
76915
class WinDeclSpecs;
 
76916
class WinMemberExplSpec;
 
76917
class WinTypeKeywords;
 
76918
class WinFriend;
63308
76919
class ExtAC;
63309
76920
class ExtACBuilderCoupling;
63310
76921
class ExtACSyntaxCoupling;
63311
76922
class ExtACTree;
63312
76923
class ExtACKeywords;
63313
 
class WinAsm;
63314
 
class WinDeclSpecs;
63315
 
class WinMemberExplSpec;
63316
 
class WinTypeKeywords;
 
76924
class ExtGnu;
63317
76925
class PragmaOnceUnitState;
63318
76926
class PragmaOnce;
63319
 
class CCExprResolve;
63320
 
class CExprResolve;
 
76927
class CMatchSyntax;
63321
76928
namespace Puma {
63322
76929
 
63323
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76930
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63324
76931
class CT_TemplateParamDecl : public CT_Decl, public CSemObject {
63325
 
#line 63326 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76932
#line 76933 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
76933
  friend class ::CCExprResolve;
 
76934
  friend class ::CExprResolve;
63326
76935
  friend class ::WinIfExists;
63327
76936
  friend class ::WinImportHandler;
63328
76937
  friend class ::WinMacros;
63329
 
  friend class ::CMatchSyntax;
63330
 
  friend class ::ExtGnu;
 
76938
  friend class ::WinAsm;
 
76939
  friend class ::WinDeclSpecs;
 
76940
  friend class ::WinMemberExplSpec;
 
76941
  friend class ::WinTypeKeywords;
 
76942
  friend class ::WinFriend;
63331
76943
  friend class ::ExtAC;
63332
76944
  friend class ::ExtACBuilderCoupling;
63333
76945
  friend class ::ExtACSyntaxCoupling;
63334
76946
  friend class ::ExtACTree;
63335
76947
  friend class ::ExtACKeywords;
63336
 
  friend class ::WinAsm;
63337
 
  friend class ::WinDeclSpecs;
63338
 
  friend class ::WinMemberExplSpec;
63339
 
  friend class ::WinTypeKeywords;
 
76948
  friend class ::ExtGnu;
63340
76949
  friend class ::PragmaOnceUnitState;
63341
76950
  friend class ::PragmaOnce;
63342
 
  friend class ::CCExprResolve;
63343
 
  friend class ::CExprResolve;
 
76951
  friend class ::CMatchSyntax;
63344
76952
 
63345
 
#line 1159 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76953
#line 2214 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63346
76954
 
63347
76955
protected:
 
76956
  /** Constructor. */
63348
76957
  CT_TemplateParamDecl () {}
63349
76958
  
63350
76959
public:
 
76960
  /** Get the template default argument. */
63351
76961
  virtual CT_ExprList *DefaultArgument () const = 0;
 
76962
  /** Get the semantic information object. */
63352
76963
  CSemObject *SemObject () const { return (CSemObject*)this; }
63353
76964
};
63354
76965
 
63355
76966
 
63356
 
#line 63357 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76967
#line 76968 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63357
76968
} // closed Puma
 
76969
class CCExprResolve;
 
76970
class CExprResolve;
63358
76971
class WinIfExists;
63359
76972
class WinImportHandler;
63360
76973
class WinMacros;
63361
 
class CMatchSyntax;
63362
 
class ExtGnu;
 
76974
class WinAsm;
 
76975
class WinDeclSpecs;
 
76976
class WinMemberExplSpec;
 
76977
class WinTypeKeywords;
 
76978
class WinFriend;
63363
76979
class ExtAC;
63364
76980
class ExtACBuilderCoupling;
63365
76981
class ExtACSyntaxCoupling;
63366
76982
class ExtACTree;
63367
76983
class ExtACKeywords;
63368
 
class WinAsm;
63369
 
class WinDeclSpecs;
63370
 
class WinMemberExplSpec;
63371
 
class WinTypeKeywords;
 
76984
class ExtGnu;
63372
76985
class PragmaOnceUnitState;
63373
76986
class PragmaOnce;
63374
 
class CCExprResolve;
63375
 
class CExprResolve;
 
76987
class CMatchSyntax;
63376
76988
namespace Puma {
63377
76989
 
63378
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
76990
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63379
76991
class CT_NonTypeParamDecl : public CT_TemplateParamDecl {
63380
 
#line 63381 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
76992
#line 76993 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
76993
  friend class ::CCExprResolve;
 
76994
  friend class ::CExprResolve;
63381
76995
  friend class ::WinIfExists;
63382
76996
  friend class ::WinImportHandler;
63383
76997
  friend class ::WinMacros;
63384
 
  friend class ::CMatchSyntax;
63385
 
  friend class ::ExtGnu;
 
76998
  friend class ::WinAsm;
 
76999
  friend class ::WinDeclSpecs;
 
77000
  friend class ::WinMemberExplSpec;
 
77001
  friend class ::WinTypeKeywords;
 
77002
  friend class ::WinFriend;
63386
77003
  friend class ::ExtAC;
63387
77004
  friend class ::ExtACBuilderCoupling;
63388
77005
  friend class ::ExtACSyntaxCoupling;
63389
77006
  friend class ::ExtACTree;
63390
77007
  friend class ::ExtACKeywords;
63391
 
  friend class ::WinAsm;
63392
 
  friend class ::WinDeclSpecs;
63393
 
  friend class ::WinMemberExplSpec;
63394
 
  friend class ::WinTypeKeywords;
 
77008
  friend class ::ExtGnu;
63395
77009
  friend class ::PragmaOnceUnitState;
63396
77010
  friend class ::PragmaOnce;
63397
 
  friend class ::CCExprResolve;
63398
 
  friend class ::CExprResolve;
 
77011
  friend class ::CMatchSyntax;
63399
77012
 
63400
 
#line 1168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77013
#line 2226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63401
77014
 
63402
77015
  CTree *sons[3]; // declspecs, declarator, init
63403
77016
 
63404
77017
public:
63405
77018
  CT_NonTypeParamDecl (CTree *dsl, CTree *d, CTree *i = (CTree*)0) {
63406
 
    sons[0] = dsl; sons[1] = d; sons[2] = i;
 
77019
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], i);
63407
77020
  }
 
77021
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63408
77022
  static const char *NodeId ();
 
77023
  /** Get the name of the node. Can be compared with NodeId(). */
63409
77024
  const char *NodeName () const { return NodeId (); }
 
77025
  /** Get the number of sons. */
63410
77026
  int Sons () const { return CTree::Sons (sons, 3); }
 
77027
  /** Get the n-th son.
 
77028
   *  \param n The index of the son.
 
77029
   *  \return The n-th son or NULL. */
63411
77030
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
63412
77031
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
63413
77032
  CTree *Declarator () const { return sons[1]; }
63414
77033
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[2]; }
63415
77034
  CSemObject *SemObject () const { return (CSemObject*)this; }
63416
 
  void Initializer (CTree *i) { sons[2] = i; }
 
77035
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
77036
  /** Replace a son.
 
77037
   *  \param old_son The son to replace.
 
77038
   *  \param new_son The new son. */
63417
77039
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63418
77040
    CTree::ReplaceSon (sons, 3, old_son, new_son);
63419
77041
  }
63420
77042
};
63421
77043
 
63422
77044
 
63423
 
#line 63424 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77045
#line 77046 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63424
77046
} // closed Puma
 
77047
class CCExprResolve;
 
77048
class CExprResolve;
63425
77049
class WinIfExists;
63426
77050
class WinImportHandler;
63427
77051
class WinMacros;
63428
 
class CMatchSyntax;
63429
 
class ExtGnu;
 
77052
class WinAsm;
 
77053
class WinDeclSpecs;
 
77054
class WinMemberExplSpec;
 
77055
class WinTypeKeywords;
 
77056
class WinFriend;
63430
77057
class ExtAC;
63431
77058
class ExtACBuilderCoupling;
63432
77059
class ExtACSyntaxCoupling;
63433
77060
class ExtACTree;
63434
77061
class ExtACKeywords;
63435
 
class WinAsm;
63436
 
class WinDeclSpecs;
63437
 
class WinMemberExplSpec;
63438
 
class WinTypeKeywords;
 
77062
class ExtGnu;
63439
77063
class PragmaOnceUnitState;
63440
77064
class PragmaOnce;
63441
 
class CCExprResolve;
63442
 
class CExprResolve;
 
77065
class CMatchSyntax;
63443
77066
namespace Puma {
63444
77067
 
63445
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77068
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63446
77069
class CT_TypeParamDecl : public CT_TemplateParamDecl {
63447
 
#line 63448 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77070
#line 77071 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
77071
  friend class ::CCExprResolve;
 
77072
  friend class ::CExprResolve;
63448
77073
  friend class ::WinIfExists;
63449
77074
  friend class ::WinImportHandler;
63450
77075
  friend class ::WinMacros;
63451
 
  friend class ::CMatchSyntax;
63452
 
  friend class ::ExtGnu;
 
77076
  friend class ::WinAsm;
 
77077
  friend class ::WinDeclSpecs;
 
77078
  friend class ::WinMemberExplSpec;
 
77079
  friend class ::WinTypeKeywords;
 
77080
  friend class ::WinFriend;
63453
77081
  friend class ::ExtAC;
63454
77082
  friend class ::ExtACBuilderCoupling;
63455
77083
  friend class ::ExtACSyntaxCoupling;
63456
77084
  friend class ::ExtACTree;
63457
77085
  friend class ::ExtACKeywords;
63458
 
  friend class ::WinAsm;
63459
 
  friend class ::WinDeclSpecs;
63460
 
  friend class ::WinMemberExplSpec;
63461
 
  friend class ::WinTypeKeywords;
 
77086
  friend class ::ExtGnu;
63462
77087
  friend class ::PragmaOnceUnitState;
63463
77088
  friend class ::PragmaOnce;
63464
 
  friend class ::CCExprResolve;
63465
 
  friend class ::CExprResolve;
 
77089
  friend class ::CMatchSyntax;
63466
77090
 
63467
 
#line 1189 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77091
#line 2256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63468
77092
 
63469
77093
  CTree *sons[4]; // params, key, id, init
63470
77094
 
63471
77095
public:
63472
77096
  CT_TypeParamDecl (CTree *t, CTree *k, CTree *id, CTree *i = (CTree*)0) { 
63473
 
    sons[0] = t; sons[1] = k; sons[2] = id; sons[3] = i;
 
77097
    AddSon (sons[0], t); AddSon (sons[1], k); 
 
77098
    AddSon (sons[2], id); AddSon (sons[3], i);
63474
77099
  }
 
77100
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63475
77101
  static const char *NodeId ();
 
77102
  /** Get the name of the node. Can be compared with NodeId(). */
63476
77103
  const char *NodeName () const { return NodeId (); }
 
77104
  /** Get the number of sons. */
63477
77105
  int Sons () const { return CTree::Sons (sons, 4); }
 
77106
  /** Get the n-th son.
 
77107
   *  \param n The index of the son.
 
77108
   *  \return The n-th son or NULL. */
63478
77109
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
63479
77110
  CT_TemplateParamList *Parameters () const { 
63480
77111
    return (CT_TemplateParamList*)sons[0]; 
63481
77112
  }
63482
77113
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
63483
77114
  CT_ExprList *DefaultArgument () const { return (CT_ExprList*)sons[3]; }
63484
 
  void Initializer (CTree *i) { sons[3] = i; }
 
77115
  void Initializer (CTree *i) { AddSon (sons[3], i); }
 
77116
  /** Replace a son.
 
77117
   *  \param old_son The son to replace.
 
77118
   *  \param new_son The new son. */
63485
77119
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63486
77120
    CTree::ReplaceSon (sons, 4, old_son, new_son);
63487
77121
  }
63488
77122
};
63489
77123
 
63490
77124
 
63491
 
#line 63492 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77125
#line 77126 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63492
77126
} // closed Puma
 
77127
class CCExprResolve;
 
77128
class CExprResolve;
63493
77129
class WinIfExists;
63494
77130
class WinImportHandler;
63495
77131
class WinMacros;
63496
 
class CMatchSyntax;
63497
 
class ExtGnu;
 
77132
class WinAsm;
 
77133
class WinDeclSpecs;
 
77134
class WinMemberExplSpec;
 
77135
class WinTypeKeywords;
 
77136
class WinFriend;
63498
77137
class ExtAC;
63499
77138
class ExtACBuilderCoupling;
63500
77139
class ExtACSyntaxCoupling;
63501
77140
class ExtACTree;
63502
77141
class ExtACKeywords;
63503
 
class WinAsm;
63504
 
class WinDeclSpecs;
63505
 
class WinMemberExplSpec;
63506
 
class WinTypeKeywords;
 
77142
class ExtGnu;
63507
77143
class PragmaOnceUnitState;
63508
77144
class PragmaOnce;
63509
 
class CCExprResolve;
63510
 
class CExprResolve;
 
77145
class CMatchSyntax;
63511
77146
namespace Puma {
63512
77147
 
63513
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77148
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63514
77149
class CT_EnumDef : public CT_Decl, public CSemObject {
63515
 
#line 63516 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77150
#line 77151 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
77151
  friend class ::CCExprResolve;
 
77152
  friend class ::CExprResolve;
63516
77153
  friend class ::WinIfExists;
63517
77154
  friend class ::WinImportHandler;
63518
77155
  friend class ::WinMacros;
63519
 
  friend class ::CMatchSyntax;
63520
 
  friend class ::ExtGnu;
 
77156
  friend class ::WinAsm;
 
77157
  friend class ::WinDeclSpecs;
 
77158
  friend class ::WinMemberExplSpec;
 
77159
  friend class ::WinTypeKeywords;
 
77160
  friend class ::WinFriend;
63521
77161
  friend class ::ExtAC;
63522
77162
  friend class ::ExtACBuilderCoupling;
63523
77163
  friend class ::ExtACSyntaxCoupling;
63524
77164
  friend class ::ExtACTree;
63525
77165
  friend class ::ExtACKeywords;
63526
 
  friend class ::WinAsm;
63527
 
  friend class ::WinDeclSpecs;
63528
 
  friend class ::WinMemberExplSpec;
63529
 
  friend class ::WinTypeKeywords;
 
77166
  friend class ::ExtGnu;
63530
77167
  friend class ::PragmaOnceUnitState;
63531
77168
  friend class ::PragmaOnce;
63532
 
  friend class ::CCExprResolve;
63533
 
  friend class ::CExprResolve;
 
77169
  friend class ::CMatchSyntax;
63534
77170
 
63535
 
#line 1211 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77171
#line 2288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63536
77172
 
63537
77173
  CTree *sons[3]; // key, name, enumerators
63538
77174
 
63539
77175
public:
63540
77176
  CT_EnumDef (CTree *k, CTree *n) {
63541
 
    sons[0] = k; sons[1] = n; sons[2] = 0; 
 
77177
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], 0); 
63542
77178
  }
 
77179
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63543
77180
  static const char *NodeId ();
 
77181
  /** Get the name of the node. Can be compared with NodeId(). */
63544
77182
  const char *NodeName () const { return NodeId (); }
 
77183
  /** Get the number of sons. */
63545
77184
  int Sons () const { return CTree::Sons (sons, 3); }
 
77185
  /** Get the n-th son.
 
77186
   *  \param n The index of the son.
 
77187
   *  \return The n-th son or NULL. */
63546
77188
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
63547
77189
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
63548
 
  void Enumerators (CTree *el) { sons[2] = el; }
 
77190
  void Enumerators (CTree *el) { AddSon (sons[2], el); }
63549
77191
  CT_EnumeratorList *Enumerators () const { return (CT_EnumeratorList*)sons[2]; }
 
77192
  /** Replace a son.
 
77193
   *  \param old_son The son to replace.
 
77194
   *  \param new_son The new son. */
63550
77195
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63551
77196
    CTree::ReplaceSon (sons, 3, old_son, new_son);
63552
77197
  }
63554
77199
};
63555
77200
 
63556
77201
 
63557
 
#line 63558 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77202
#line 77203 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63558
77203
} // closed Puma
 
77204
class CCExprResolve;
 
77205
class CExprResolve;
63559
77206
class WinIfExists;
63560
77207
class WinImportHandler;
63561
77208
class WinMacros;
63562
 
class CMatchSyntax;
63563
 
class ExtGnu;
 
77209
class WinAsm;
 
77210
class WinDeclSpecs;
 
77211
class WinMemberExplSpec;
 
77212
class WinTypeKeywords;
 
77213
class WinFriend;
63564
77214
class ExtAC;
63565
77215
class ExtACBuilderCoupling;
63566
77216
class ExtACSyntaxCoupling;
63567
77217
class ExtACTree;
63568
77218
class ExtACKeywords;
63569
 
class WinAsm;
63570
 
class WinDeclSpecs;
63571
 
class WinMemberExplSpec;
63572
 
class WinTypeKeywords;
 
77219
class ExtGnu;
63573
77220
class PragmaOnceUnitState;
63574
77221
class PragmaOnce;
63575
 
class CCExprResolve;
63576
 
class CExprResolve;
 
77222
class CMatchSyntax;
63577
77223
namespace Puma {
63578
77224
 
63579
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77225
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63580
77226
class CT_Enumerator : public CT_Decl, public CSemObject {
63581
 
#line 63582 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77227
#line 77228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
77228
  friend class ::CCExprResolve;
 
77229
  friend class ::CExprResolve;
63582
77230
  friend class ::WinIfExists;
63583
77231
  friend class ::WinImportHandler;
63584
77232
  friend class ::WinMacros;
63585
 
  friend class ::CMatchSyntax;
63586
 
  friend class ::ExtGnu;
 
77233
  friend class ::WinAsm;
 
77234
  friend class ::WinDeclSpecs;
 
77235
  friend class ::WinMemberExplSpec;
 
77236
  friend class ::WinTypeKeywords;
 
77237
  friend class ::WinFriend;
63587
77238
  friend class ::ExtAC;
63588
77239
  friend class ::ExtACBuilderCoupling;
63589
77240
  friend class ::ExtACSyntaxCoupling;
63590
77241
  friend class ::ExtACTree;
63591
77242
  friend class ::ExtACKeywords;
63592
 
  friend class ::WinAsm;
63593
 
  friend class ::WinDeclSpecs;
63594
 
  friend class ::WinMemberExplSpec;
63595
 
  friend class ::WinTypeKeywords;
 
77243
  friend class ::ExtGnu;
63596
77244
  friend class ::PragmaOnceUnitState;
63597
77245
  friend class ::PragmaOnce;
63598
 
  friend class ::CCExprResolve;
63599
 
  friend class ::CExprResolve;
 
77246
  friend class ::CMatchSyntax;
63600
77247
 
63601
 
#line 1231 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77248
#line 2317 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63602
77249
 
63603
77250
  CTree *sons[2]; // name, init
63604
77251
 
63605
77252
public:
63606
 
  CT_Enumerator (CTree *n) { sons[0] = n; sons[1] = 0; }
 
77253
  CT_Enumerator (CTree *n) { AddSon (sons[0], n); AddSon (sons[1], 0); }
 
77254
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63607
77255
  static const char *NodeId ();
 
77256
  /** Get the name of the node. Can be compared with NodeId(). */
63608
77257
  const char *NodeName () const { return NodeId (); }
 
77258
  /** Get the number of sons. */
63609
77259
  int Sons () const { return CTree::Sons (sons, 2); }
 
77260
  /** Get the n-th son.
 
77261
   *  \param n The index of the son.
 
77262
   *  \return The n-th son or NULL. */
63610
77263
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
63611
77264
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
63612
 
  void Initializer (CTree *i) { sons[1] = i; }
 
77265
  void Initializer (CTree *i) { AddSon (sons[1], i); }
63613
77266
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
77267
  /** Replace a son.
 
77268
   *  \param old_son The son to replace.
 
77269
   *  \param new_son The new son. */
63614
77270
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63615
77271
    CTree::ReplaceSon (sons, 2, old_son, new_son); 
63616
77272
  }
63618
77274
};
63619
77275
 
63620
77276
 
63621
 
#line 63622 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77277
#line 77278 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63622
77278
} // closed Puma
 
77279
class CCExprResolve;
 
77280
class CExprResolve;
63623
77281
class WinIfExists;
63624
77282
class WinImportHandler;
63625
77283
class WinMacros;
63626
 
class CMatchSyntax;
63627
 
class ExtGnu;
 
77284
class WinAsm;
 
77285
class WinDeclSpecs;
 
77286
class WinMemberExplSpec;
 
77287
class WinTypeKeywords;
 
77288
class WinFriend;
63628
77289
class ExtAC;
63629
77290
class ExtACBuilderCoupling;
63630
77291
class ExtACSyntaxCoupling;
63631
77292
class ExtACTree;
63632
77293
class ExtACKeywords;
63633
 
class WinAsm;
63634
 
class WinDeclSpecs;
63635
 
class WinMemberExplSpec;
63636
 
class WinTypeKeywords;
 
77294
class ExtGnu;
63637
77295
class PragmaOnceUnitState;
63638
77296
class PragmaOnce;
63639
 
class CCExprResolve;
63640
 
class CExprResolve;
 
77297
class CMatchSyntax;
63641
77298
namespace Puma {
63642
77299
 
63643
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77300
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63644
77301
class CT_FctDef : public CT_Decl, public CSemObject {
63645
 
#line 63646 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77302
#line 77303 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
77303
  friend class ::CCExprResolve;
 
77304
  friend class ::CExprResolve;
63646
77305
  friend class ::WinIfExists;
63647
77306
  friend class ::WinImportHandler;
63648
77307
  friend class ::WinMacros;
63649
 
  friend class ::CMatchSyntax;
63650
 
  friend class ::ExtGnu;
 
77308
  friend class ::WinAsm;
 
77309
  friend class ::WinDeclSpecs;
 
77310
  friend class ::WinMemberExplSpec;
 
77311
  friend class ::WinTypeKeywords;
 
77312
  friend class ::WinFriend;
63651
77313
  friend class ::ExtAC;
63652
77314
  friend class ::ExtACBuilderCoupling;
63653
77315
  friend class ::ExtACSyntaxCoupling;
63654
77316
  friend class ::ExtACTree;
63655
77317
  friend class ::ExtACKeywords;
63656
 
  friend class ::WinAsm;
63657
 
  friend class ::WinDeclSpecs;
63658
 
  friend class ::WinMemberExplSpec;
63659
 
  friend class ::WinTypeKeywords;
 
77318
  friend class ::ExtGnu;
63660
77319
  friend class ::PragmaOnceUnitState;
63661
77320
  friend class ::PragmaOnce;
63662
 
  friend class ::CCExprResolve;
63663
 
  friend class ::CExprResolve;
 
77321
  friend class ::CMatchSyntax;
63664
77322
 
63665
 
#line 1249 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77323
#line 2344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63666
77324
 
63667
77325
  CTree *sons[7]; // declspecs, declarator, try, ctor_init, args, body, handlers
63668
77326
 
63669
77327
public:
63670
77328
  CT_FctDef (CTree *dss, CTree *d, CTree *t, CTree *ci, CTree *as, 
63671
77329
             CTree *b, CTree *hs) {
63672
 
    sons[0] = dss; sons[1] = d; sons[2] = t; sons[3] = ci; sons[4] = as; 
63673
 
    sons[5] = b; sons[6] = hs; 
 
77330
    AddSon (sons[0], dss); AddSon (sons[1], d); AddSon (sons[2], t); 
 
77331
    AddSon (sons[3], ci); AddSon (sons[4], as); AddSon (sons[5], b); 
 
77332
    AddSon (sons[6], hs); 
63674
77333
  }
 
77334
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63675
77335
  static const char *NodeId ();
 
77336
  /** Get the name of the node. Can be compared with NodeId(). */
63676
77337
  const char *NodeName () const { return NodeId (); }
 
77338
  /** Get the number of sons. */
63677
77339
  int Sons () const { return CTree::Sons (sons, 7); }
 
77340
  /** Get the n-th son.
 
77341
   *  \param n The index of the son.
 
77342
   *  \return The n-th son or NULL. */
63678
77343
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
63679
77344
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
63680
77345
  CTree *Declarator () const { return sons[1]; }
63684
77349
  CT_CmpdStmt *Body () const { return (CT_CmpdStmt*)sons[5]; }
63685
77350
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[6]; }
63686
77351
  CSemObject *SemObject () const { return (CSemObject*)this; }
63687
 
  void CtorInit (CTree *i) { sons[3] = i; }
63688
 
  void Body (CTree *b) { sons[5] = b; }
 
77352
  void CtorInit (CTree *i) { AddSon (sons[3], i); }
 
77353
  void Body (CTree *b) { AddSon (sons[5], b); }
63689
77354
  void FctTryBlock (CTree *t, CTree *c, CTree *b, CTree *h) { 
63690
 
    sons[2] = t; sons[3] = c; sons[5] = b; sons[6] = h;
 
77355
    AddSon (sons[2], t); AddSon (sons[3], c); 
 
77356
    AddSon (sons[5], b); AddSon (sons[6], h);
63691
77357
  }
 
77358
  /** Replace a son.
 
77359
   *  \param old_son The son to replace.
 
77360
   *  \param new_son The new son. */
63692
77361
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63693
77362
    CTree::ReplaceSon (sons, 7, old_son, new_son);
63694
77363
  }
63695
77364
};
63696
77365
 
63697
77366
 
63698
 
#line 63699 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77367
#line 77368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63699
77368
} // closed Puma
 
77369
class CCExprResolve;
 
77370
class CExprResolve;
63700
77371
class WinIfExists;
63701
77372
class WinImportHandler;
63702
77373
class WinMacros;
63703
 
class CMatchSyntax;
63704
 
class ExtGnu;
 
77374
class WinAsm;
 
77375
class WinDeclSpecs;
 
77376
class WinMemberExplSpec;
 
77377
class WinTypeKeywords;
 
77378
class WinFriend;
63705
77379
class ExtAC;
63706
77380
class ExtACBuilderCoupling;
63707
77381
class ExtACSyntaxCoupling;
63708
77382
class ExtACTree;
63709
77383
class ExtACKeywords;
63710
 
class WinAsm;
63711
 
class WinDeclSpecs;
63712
 
class WinMemberExplSpec;
63713
 
class WinTypeKeywords;
 
77384
class ExtGnu;
63714
77385
class PragmaOnceUnitState;
63715
77386
class PragmaOnce;
63716
 
class CCExprResolve;
63717
 
class CExprResolve;
 
77387
class CMatchSyntax;
63718
77388
namespace Puma {
63719
77389
 
63720
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77390
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63721
77391
class CT_AsmDef : public CT_Decl {
63722
 
#line 63723 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77392
#line 77393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
77393
  friend class ::CCExprResolve;
 
77394
  friend class ::CExprResolve;
63723
77395
  friend class ::WinIfExists;
63724
77396
  friend class ::WinImportHandler;
63725
77397
  friend class ::WinMacros;
63726
 
  friend class ::CMatchSyntax;
63727
 
  friend class ::ExtGnu;
 
77398
  friend class ::WinAsm;
 
77399
  friend class ::WinDeclSpecs;
 
77400
  friend class ::WinMemberExplSpec;
 
77401
  friend class ::WinTypeKeywords;
 
77402
  friend class ::WinFriend;
63728
77403
  friend class ::ExtAC;
63729
77404
  friend class ::ExtACBuilderCoupling;
63730
77405
  friend class ::ExtACSyntaxCoupling;
63731
77406
  friend class ::ExtACTree;
63732
77407
  friend class ::ExtACKeywords;
63733
 
  friend class ::WinAsm;
63734
 
  friend class ::WinDeclSpecs;
63735
 
  friend class ::WinMemberExplSpec;
63736
 
  friend class ::WinTypeKeywords;
 
77408
  friend class ::ExtGnu;
63737
77409
  friend class ::PragmaOnceUnitState;
63738
77410
  friend class ::PragmaOnce;
63739
 
  friend class ::CCExprResolve;
63740
 
  friend class ::CExprResolve;
 
77411
  friend class ::CMatchSyntax;
63741
77412
 
63742
 
#line 1280 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77413
#line 2386 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63743
77414
 
63744
77415
  CTree *sons[5]; // asm, open, str, close, semi_colon
63745
77416
 
63746
77417
public:
63747
77418
  CT_AsmDef (CTree *a, CTree *o, CTree *s, CTree *c, CTree *sc) {
63748
 
    sons[0] = a; sons[1] = o; sons[2] = s; sons[3] = c; sons[4] = sc; 
 
77419
    AddSon (sons[0], a); AddSon (sons[1], o); AddSon (sons[2], s); 
 
77420
    AddSon (sons[3], c); AddSon (sons[4], sc); 
63749
77421
  }
 
77422
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63750
77423
  static const char *NodeId ();
 
77424
  /** Get the name of the node. Can be compared with NodeId(). */
63751
77425
  const char *NodeName () const { return NodeId (); }
 
77426
  /** Get the number of sons. */
63752
77427
  int Sons () const { return 5; }
 
77428
  /** Get the n-th son.
 
77429
   *  \param n The index of the son.
 
77430
   *  \return The n-th son or NULL. */
63753
77431
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
63754
77432
  CT_String *Instructions () const { return (CT_String*)sons[2]; }
 
77433
  /** Replace a son.
 
77434
   *  \param old_son The son to replace.
 
77435
   *  \param new_son The new son. */
63755
77436
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63756
77437
    CTree::ReplaceSon (sons, 5, old_son, new_son);
63757
77438
  }
63758
77439
};
63759
77440
 
63760
77441
 
63761
 
#line 63762 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77442
#line 77443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63762
77443
} // closed Puma
 
77444
class CCExprResolve;
 
77445
class CExprResolve;
63763
77446
class WinIfExists;
63764
77447
class WinImportHandler;
63765
77448
class WinMacros;
63766
 
class CMatchSyntax;
63767
 
class ExtGnu;
 
77449
class WinAsm;
 
77450
class WinDeclSpecs;
 
77451
class WinMemberExplSpec;
 
77452
class WinTypeKeywords;
 
77453
class WinFriend;
63768
77454
class ExtAC;
63769
77455
class ExtACBuilderCoupling;
63770
77456
class ExtACSyntaxCoupling;
63771
77457
class ExtACTree;
63772
77458
class ExtACKeywords;
63773
 
class WinAsm;
63774
 
class WinDeclSpecs;
63775
 
class WinMemberExplSpec;
63776
 
class WinTypeKeywords;
 
77459
class ExtGnu;
63777
77460
class PragmaOnceUnitState;
63778
77461
class PragmaOnce;
63779
 
class CCExprResolve;
63780
 
class CExprResolve;
 
77462
class CMatchSyntax;
63781
77463
namespace Puma {
63782
77464
 
63783
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77465
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63784
77466
class CT_Handler : public CT_Decl, public CSemScope {
63785
 
#line 63786 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77467
#line 77468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
77468
  friend class ::CCExprResolve;
 
77469
  friend class ::CExprResolve;
63786
77470
  friend class ::WinIfExists;
63787
77471
  friend class ::WinImportHandler;
63788
77472
  friend class ::WinMacros;
63789
 
  friend class ::CMatchSyntax;
63790
 
  friend class ::ExtGnu;
 
77473
  friend class ::WinAsm;
 
77474
  friend class ::WinDeclSpecs;
 
77475
  friend class ::WinMemberExplSpec;
 
77476
  friend class ::WinTypeKeywords;
 
77477
  friend class ::WinFriend;
63791
77478
  friend class ::ExtAC;
63792
77479
  friend class ::ExtACBuilderCoupling;
63793
77480
  friend class ::ExtACSyntaxCoupling;
63794
77481
  friend class ::ExtACTree;
63795
77482
  friend class ::ExtACKeywords;
63796
 
  friend class ::WinAsm;
63797
 
  friend class ::WinDeclSpecs;
63798
 
  friend class ::WinMemberExplSpec;
63799
 
  friend class ::WinTypeKeywords;
 
77483
  friend class ::ExtGnu;
63800
77484
  friend class ::PragmaOnceUnitState;
63801
77485
  friend class ::PragmaOnce;
63802
 
  friend class ::CCExprResolve;
63803
 
  friend class ::CExprResolve;
 
77486
  friend class ::CMatchSyntax;
63804
77487
 
63805
 
#line 1297 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77488
#line 2413 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63806
77489
 
63807
77490
  CTree *sons[3]; // catch, exception_decl, stmt
63808
77491
 
63809
77492
public:
63810
77493
  CT_Handler (CTree *c, CTree *e, CTree *s) {
63811
 
    sons[0] = c; sons[1] = e; sons[2] = s;
 
77494
    AddSon (sons[0], c); AddSon (sons[1], e); AddSon (sons[2], s);
63812
77495
  }
 
77496
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63813
77497
  static const char *NodeId ();
 
77498
  /** Get the name of the node. Can be compared with NodeId(). */
63814
77499
  const char *NodeName () const { return NodeId (); }
 
77500
  /** Get the number of sons. */
63815
77501
  int Sons () const { return 3; }
 
77502
  /** Get the n-th son.
 
77503
   *  \param n The index of the son.
 
77504
   *  \return The n-th son or NULL. */
63816
77505
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
63817
77506
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
63818
77507
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
77508
  /** Replace a son.
 
77509
   *  \param old_son The son to replace.
 
77510
   *  \param new_son The new son. */
63819
77511
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63820
77512
    CTree::ReplaceSon (sons, 3, old_son, new_son);
63821
77513
  }
 
77514
  CSemScope *SemScope () const { return (CSemScope*)this; }
63822
77515
};
63823
77516
 
63824
77517
 
63825
 
#line 63826 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77518
#line 77519 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63826
77519
} // closed Puma
 
77520
class CCExprResolve;
 
77521
class CExprResolve;
63827
77522
class WinIfExists;
63828
77523
class WinImportHandler;
63829
77524
class WinMacros;
63830
 
class CMatchSyntax;
63831
 
class ExtGnu;
 
77525
class WinAsm;
 
77526
class WinDeclSpecs;
 
77527
class WinMemberExplSpec;
 
77528
class WinTypeKeywords;
 
77529
class WinFriend;
63832
77530
class ExtAC;
63833
77531
class ExtACBuilderCoupling;
63834
77532
class ExtACSyntaxCoupling;
63835
77533
class ExtACTree;
63836
77534
class ExtACKeywords;
63837
 
class WinAsm;
63838
 
class WinDeclSpecs;
63839
 
class WinMemberExplSpec;
63840
 
class WinTypeKeywords;
 
77535
class ExtGnu;
63841
77536
class PragmaOnceUnitState;
63842
77537
class PragmaOnce;
63843
 
class CCExprResolve;
63844
 
class CExprResolve;
 
77538
class CMatchSyntax;
63845
77539
namespace Puma {
63846
77540
 
63847
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77541
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63848
77542
class CT_LinkageSpec : public CT_Decl {
63849
 
#line 63850 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77543
#line 77544 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
77544
  friend class ::CCExprResolve;
 
77545
  friend class ::CExprResolve;
63850
77546
  friend class ::WinIfExists;
63851
77547
  friend class ::WinImportHandler;
63852
77548
  friend class ::WinMacros;
63853
 
  friend class ::CMatchSyntax;
63854
 
  friend class ::ExtGnu;
 
77549
  friend class ::WinAsm;
 
77550
  friend class ::WinDeclSpecs;
 
77551
  friend class ::WinMemberExplSpec;
 
77552
  friend class ::WinTypeKeywords;
 
77553
  friend class ::WinFriend;
63855
77554
  friend class ::ExtAC;
63856
77555
  friend class ::ExtACBuilderCoupling;
63857
77556
  friend class ::ExtACSyntaxCoupling;
63858
77557
  friend class ::ExtACTree;
63859
77558
  friend class ::ExtACKeywords;
63860
 
  friend class ::WinAsm;
63861
 
  friend class ::WinDeclSpecs;
63862
 
  friend class ::WinMemberExplSpec;
63863
 
  friend class ::WinTypeKeywords;
 
77559
  friend class ::ExtGnu;
63864
77560
  friend class ::PragmaOnceUnitState;
63865
77561
  friend class ::PragmaOnce;
63866
 
  friend class ::CCExprResolve;
63867
 
  friend class ::CExprResolve;
 
77562
  friend class ::CMatchSyntax;
63868
77563
 
63869
 
#line 1315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77564
#line 2441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63870
77565
 
63871
77566
  CTree *sons[5]; // extern, str, open, decls, close
63872
77567
 
63873
77568
public:
63874
77569
  CT_LinkageSpec (CTree *e, CTree *s, CTree *o, CTree *d, CTree *c) {
63875
 
    sons[0] = e; sons[1] = s; sons[2] = o; sons[3] = d; sons[4] = c;
 
77570
    AddSon (sons[0], e); AddSon (sons[1], s); AddSon (sons[2], o); 
 
77571
    AddSon (sons[3], d); AddSon (sons[4], c);
63876
77572
    if (isList ())
63877
77573
      ((CT_DeclList*)Decls ())->Linkage (this);
63878
77574
    else
63879
77575
      ((CT_Decl*)Decls ())->Linkage (this);
63880
77576
  }
 
77577
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63881
77578
  static const char *NodeId ();
 
77579
  /** Get the name of the node. Can be compared with NodeId(). */
63882
77580
  const char *NodeName () const { return NodeId (); }
 
77581
  /** Get the number of sons. */
63883
77582
  int Sons () const { return CTree::Sons (sons, 5); }
 
77583
  /** Get the n-th son.
 
77584
   *  \param n The index of the son.
 
77585
   *  \return The n-th son or NULL. */
63884
77586
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
63885
77587
  CT_String *Linkage () const { return (CT_String*)sons[1]; }
63886
77588
  CTree *Decls () const { return sons[3]; }
63887
77589
  bool isList () const {
63888
77590
    return Decls ()->NodeName () == CT_DeclList::NodeId ();
63889
77591
  }
 
77592
  /** Replace a son.
 
77593
   *  \param old_son The son to replace.
 
77594
   *  \param new_son The new son. */
63890
77595
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63891
77596
    CTree::ReplaceSon (sons, 5, old_son, new_son);
63892
77597
  }
63893
77598
};
63894
77599
 
63895
77600
 
63896
 
#line 63897 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77601
#line 77602 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63897
77602
} // closed Puma
 
77603
class CCExprResolve;
 
77604
class CExprResolve;
63898
77605
class WinIfExists;
63899
77606
class WinImportHandler;
63900
77607
class WinMacros;
63901
 
class CMatchSyntax;
63902
 
class ExtGnu;
 
77608
class WinAsm;
 
77609
class WinDeclSpecs;
 
77610
class WinMemberExplSpec;
 
77611
class WinTypeKeywords;
 
77612
class WinFriend;
63903
77613
class ExtAC;
63904
77614
class ExtACBuilderCoupling;
63905
77615
class ExtACSyntaxCoupling;
63906
77616
class ExtACTree;
63907
77617
class ExtACKeywords;
63908
 
class WinAsm;
63909
 
class WinDeclSpecs;
63910
 
class WinMemberExplSpec;
63911
 
class WinTypeKeywords;
 
77618
class ExtGnu;
63912
77619
class PragmaOnceUnitState;
63913
77620
class PragmaOnce;
63914
 
class CCExprResolve;
63915
 
class CExprResolve;
 
77621
class CMatchSyntax;
63916
77622
namespace Puma {
63917
77623
 
63918
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77624
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63919
77625
class CT_ArgDecl : public CT_Decl, public CSemObject {
63920
 
#line 63921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77626
#line 77627 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
77627
  friend class ::CCExprResolve;
 
77628
  friend class ::CExprResolve;
63921
77629
  friend class ::WinIfExists;
63922
77630
  friend class ::WinImportHandler;
63923
77631
  friend class ::WinMacros;
63924
 
  friend class ::CMatchSyntax;
63925
 
  friend class ::ExtGnu;
 
77632
  friend class ::WinAsm;
 
77633
  friend class ::WinDeclSpecs;
 
77634
  friend class ::WinMemberExplSpec;
 
77635
  friend class ::WinTypeKeywords;
 
77636
  friend class ::WinFriend;
63926
77637
  friend class ::ExtAC;
63927
77638
  friend class ::ExtACBuilderCoupling;
63928
77639
  friend class ::ExtACSyntaxCoupling;
63929
77640
  friend class ::ExtACTree;
63930
77641
  friend class ::ExtACKeywords;
63931
 
  friend class ::WinAsm;
63932
 
  friend class ::WinDeclSpecs;
63933
 
  friend class ::WinMemberExplSpec;
63934
 
  friend class ::WinTypeKeywords;
 
77642
  friend class ::ExtGnu;
63935
77643
  friend class ::PragmaOnceUnitState;
63936
77644
  friend class ::PragmaOnce;
63937
 
  friend class ::CCExprResolve;
63938
 
  friend class ::CExprResolve;
 
77645
  friend class ::CMatchSyntax;
63939
77646
 
63940
 
#line 1340 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77647
#line 2476 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63941
77648
 
63942
77649
  CTree *sons[4]; // declspecs, declarator, init, ellipsis
63943
77650
 
63944
77651
public:
63945
77652
  CT_ArgDecl (CTree *dsl, CTree *d) {
63946
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0; sons[3] = 0; 
 
77653
    AddSon (sons[0], dsl); AddSon (sons[1], d); 
 
77654
    AddSon (sons[2], 0); AddSon (sons[3], 0); 
63947
77655
  }
63948
77656
  CT_ArgDecl (CTree *ellipsis) {
63949
 
    sons[0] = 0; sons[1] = 0; sons[2] = 0; sons[3] = ellipsis; 
 
77657
    AddSon (sons[0], 0); AddSon (sons[1], 0); 
 
77658
    AddSon (sons[2], 0); AddSon (sons[3], ellipsis); 
63950
77659
  }
 
77660
  /** Get the identifier for this node type. Can be compared with NodeName(). */
63951
77661
  static const char *NodeId ();
 
77662
  /** Get the name of the node. Can be compared with NodeId(). */
63952
77663
  const char *NodeName () const { return NodeId (); }
 
77664
  /** Get the number of sons. */
63953
77665
  int Sons () const { return CTree::Sons (sons, 4); }
 
77666
  /** Get the n-th son.
 
77667
   *  \param n The index of the son.
 
77668
   *  \return The n-th son or NULL. */
63954
77669
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
63955
77670
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
63956
77671
  CTree *Declarator () const { return sons[1]; }
63957
77672
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
63958
77673
  CT_Token *Ellipsis () const { return (CT_Token*)sons[3]; }
63959
77674
  CSemObject *SemObject () const { return (CSemObject*)this; }
63960
 
  void Initializer (CTree *i) { sons[2] = i; }
 
77675
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
77676
  /** Replace a son.
 
77677
   *  \param old_son The son to replace.
 
77678
   *  \param new_son The new son. */
63961
77679
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
63962
77680
    CTree::ReplaceSon (sons, 4, old_son, new_son);
63963
77681
  }
63964
77682
};
63965
77683
 
63966
77684
 
63967
 
#line 63968 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77685
#line 77686 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
63968
77686
} // closed Puma
 
77687
class CCExprResolve;
 
77688
class CExprResolve;
63969
77689
class WinIfExists;
63970
77690
class WinImportHandler;
63971
77691
class WinMacros;
63972
 
class CMatchSyntax;
63973
 
class ExtGnu;
 
77692
class WinAsm;
 
77693
class WinDeclSpecs;
 
77694
class WinMemberExplSpec;
 
77695
class WinTypeKeywords;
 
77696
class WinFriend;
63974
77697
class ExtAC;
63975
77698
class ExtACBuilderCoupling;
63976
77699
class ExtACSyntaxCoupling;
63977
77700
class ExtACTree;
63978
77701
class ExtACKeywords;
63979
 
class WinAsm;
63980
 
class WinDeclSpecs;
63981
 
class WinMemberExplSpec;
63982
 
class WinTypeKeywords;
 
77702
class ExtGnu;
63983
77703
class PragmaOnceUnitState;
63984
77704
class PragmaOnce;
63985
 
class CCExprResolve;
63986
 
class CExprResolve;
 
77705
class CMatchSyntax;
63987
77706
namespace Puma {
63988
77707
 
63989
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77708
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
63990
77709
class CT_ArgDeclList : public CT_DeclList, public CSemScope {
63991
 
#line 63992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77710
#line 77711 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
77711
  friend class ::CCExprResolve;
 
77712
  friend class ::CExprResolve;
63992
77713
  friend class ::WinIfExists;
63993
77714
  friend class ::WinImportHandler;
63994
77715
  friend class ::WinMacros;
63995
 
  friend class ::CMatchSyntax;
63996
 
  friend class ::ExtGnu;
 
77716
  friend class ::WinAsm;
 
77717
  friend class ::WinDeclSpecs;
 
77718
  friend class ::WinMemberExplSpec;
 
77719
  friend class ::WinTypeKeywords;
 
77720
  friend class ::WinFriend;
63997
77721
  friend class ::ExtAC;
63998
77722
  friend class ::ExtACBuilderCoupling;
63999
77723
  friend class ::ExtACSyntaxCoupling;
64000
77724
  friend class ::ExtACTree;
64001
77725
  friend class ::ExtACKeywords;
64002
 
  friend class ::WinAsm;
64003
 
  friend class ::WinDeclSpecs;
64004
 
  friend class ::WinMemberExplSpec;
64005
 
  friend class ::WinTypeKeywords;
 
77726
  friend class ::ExtGnu;
64006
77727
  friend class ::PragmaOnceUnitState;
64007
77728
  friend class ::PragmaOnce;
64008
 
  friend class ::CCExprResolve;
64009
 
  friend class ::CExprResolve;
 
77729
  friend class ::CMatchSyntax;
64010
77730
 
64011
 
#line 1365 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77731
#line 2512 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64012
77732
 
64013
77733
public:
64014
77734
  CT_ArgDeclList (int size = 2, int props = SEPARATORS | OPEN_CLOSE) : 
64015
77735
   CT_DeclList (size, 2) { AddProperties (props); }
 
77736
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64016
77737
  static const char *NodeId ();
 
77738
  /** Get the name of the node. Can be compared with NodeId(). */
64017
77739
  const char *NodeName () const { return NodeId (); }
 
77740
  CSemScope *SemScope () const { return (CSemScope*)this; }
64018
77741
};
64019
77742
 
64020
77743
 
64021
 
#line 64022 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77744
#line 77745 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64022
77745
} // closed Puma
 
77746
class CCExprResolve;
 
77747
class CExprResolve;
64023
77748
class WinIfExists;
64024
77749
class WinImportHandler;
64025
77750
class WinMacros;
64026
 
class CMatchSyntax;
64027
 
class ExtGnu;
 
77751
class WinAsm;
 
77752
class WinDeclSpecs;
 
77753
class WinMemberExplSpec;
 
77754
class WinTypeKeywords;
 
77755
class WinFriend;
64028
77756
class ExtAC;
64029
77757
class ExtACBuilderCoupling;
64030
77758
class ExtACSyntaxCoupling;
64031
77759
class ExtACTree;
64032
77760
class ExtACKeywords;
64033
 
class WinAsm;
64034
 
class WinDeclSpecs;
64035
 
class WinMemberExplSpec;
64036
 
class WinTypeKeywords;
 
77761
class ExtGnu;
64037
77762
class PragmaOnceUnitState;
64038
77763
class PragmaOnce;
64039
 
class CCExprResolve;
64040
 
class CExprResolve;
 
77764
class CMatchSyntax;
64041
77765
namespace Puma {
64042
77766
 
64043
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77767
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64044
77768
class CT_ArgDeclSeq : public CT_DeclList, public CSemScope {
64045
 
#line 64046 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77769
#line 77770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
77770
  friend class ::CCExprResolve;
 
77771
  friend class ::CExprResolve;
64046
77772
  friend class ::WinIfExists;
64047
77773
  friend class ::WinImportHandler;
64048
77774
  friend class ::WinMacros;
64049
 
  friend class ::CMatchSyntax;
64050
 
  friend class ::ExtGnu;
 
77775
  friend class ::WinAsm;
 
77776
  friend class ::WinDeclSpecs;
 
77777
  friend class ::WinMemberExplSpec;
 
77778
  friend class ::WinTypeKeywords;
 
77779
  friend class ::WinFriend;
64051
77780
  friend class ::ExtAC;
64052
77781
  friend class ::ExtACBuilderCoupling;
64053
77782
  friend class ::ExtACSyntaxCoupling;
64054
77783
  friend class ::ExtACTree;
64055
77784
  friend class ::ExtACKeywords;
64056
 
  friend class ::WinAsm;
64057
 
  friend class ::WinDeclSpecs;
64058
 
  friend class ::WinMemberExplSpec;
64059
 
  friend class ::WinTypeKeywords;
 
77785
  friend class ::ExtGnu;
64060
77786
  friend class ::PragmaOnceUnitState;
64061
77787
  friend class ::PragmaOnce;
64062
 
  friend class ::CCExprResolve;
64063
 
  friend class ::CExprResolve;
 
77788
  friend class ::CMatchSyntax;
64064
77789
 
64065
 
#line 1373 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77790
#line 2523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64066
77791
 
64067
77792
public:
64068
77793
  CT_ArgDeclSeq (int size = 2) : CT_DeclList (size, 2) {}
 
77794
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64069
77795
  static const char *NodeId ();
 
77796
  /** Get the name of the node. Can be compared with NodeId(). */
64070
77797
  const char *NodeName () const { return NodeId (); }
 
77798
  CSemScope *SemScope () const { return (CSemScope*)this; }
64071
77799
};
64072
77800
 
64073
77801
 
64074
 
#line 64075 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77802
#line 77803 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64075
77803
} // closed Puma
 
77804
class CCExprResolve;
 
77805
class CExprResolve;
64076
77806
class WinIfExists;
64077
77807
class WinImportHandler;
64078
77808
class WinMacros;
64079
 
class CMatchSyntax;
64080
 
class ExtGnu;
 
77809
class WinAsm;
 
77810
class WinDeclSpecs;
 
77811
class WinMemberExplSpec;
 
77812
class WinTypeKeywords;
 
77813
class WinFriend;
64081
77814
class ExtAC;
64082
77815
class ExtACBuilderCoupling;
64083
77816
class ExtACSyntaxCoupling;
64084
77817
class ExtACTree;
64085
77818
class ExtACKeywords;
64086
 
class WinAsm;
64087
 
class WinDeclSpecs;
64088
 
class WinMemberExplSpec;
64089
 
class WinTypeKeywords;
 
77819
class ExtGnu;
64090
77820
class PragmaOnceUnitState;
64091
77821
class PragmaOnce;
64092
 
class CCExprResolve;
64093
 
class CExprResolve;
 
77822
class CMatchSyntax;
64094
77823
namespace Puma {
64095
77824
 
64096
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77825
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64097
77826
class CT_ArgNameList : public CT_ArgDeclList {
64098
 
#line 64099 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77827
#line 77828 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
77828
  friend class ::CCExprResolve;
 
77829
  friend class ::CExprResolve;
64099
77830
  friend class ::WinIfExists;
64100
77831
  friend class ::WinImportHandler;
64101
77832
  friend class ::WinMacros;
64102
 
  friend class ::CMatchSyntax;
64103
 
  friend class ::ExtGnu;
 
77833
  friend class ::WinAsm;
 
77834
  friend class ::WinDeclSpecs;
 
77835
  friend class ::WinMemberExplSpec;
 
77836
  friend class ::WinTypeKeywords;
 
77837
  friend class ::WinFriend;
64104
77838
  friend class ::ExtAC;
64105
77839
  friend class ::ExtACBuilderCoupling;
64106
77840
  friend class ::ExtACSyntaxCoupling;
64107
77841
  friend class ::ExtACTree;
64108
77842
  friend class ::ExtACKeywords;
64109
 
  friend class ::WinAsm;
64110
 
  friend class ::WinDeclSpecs;
64111
 
  friend class ::WinMemberExplSpec;
64112
 
  friend class ::WinTypeKeywords;
 
77843
  friend class ::ExtGnu;
64113
77844
  friend class ::PragmaOnceUnitState;
64114
77845
  friend class ::PragmaOnce;
64115
 
  friend class ::CCExprResolve;
64116
 
  friend class ::CExprResolve;
 
77846
  friend class ::CMatchSyntax;
64117
77847
 
64118
 
#line 1380 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77848
#line 2533 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64119
77849
 
64120
77850
public:
64121
77851
  CT_ArgNameList () : CT_ArgDeclList () {}
 
77852
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64122
77853
  static const char *NodeId ();
 
77854
  /** Get the name of the node. Can be compared with NodeId(). */
64123
77855
  const char *NodeName () const { return NodeId (); }
64124
77856
};
64125
77857
 
64126
77858
 
64127
 
#line 64128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77859
#line 77860 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64128
77860
} // closed Puma
 
77861
class CCExprResolve;
 
77862
class CExprResolve;
64129
77863
class WinIfExists;
64130
77864
class WinImportHandler;
64131
77865
class WinMacros;
64132
 
class CMatchSyntax;
64133
 
class ExtGnu;
 
77866
class WinAsm;
 
77867
class WinDeclSpecs;
 
77868
class WinMemberExplSpec;
 
77869
class WinTypeKeywords;
 
77870
class WinFriend;
64134
77871
class ExtAC;
64135
77872
class ExtACBuilderCoupling;
64136
77873
class ExtACSyntaxCoupling;
64137
77874
class ExtACTree;
64138
77875
class ExtACKeywords;
64139
 
class WinAsm;
64140
 
class WinDeclSpecs;
64141
 
class WinMemberExplSpec;
64142
 
class WinTypeKeywords;
 
77876
class ExtGnu;
64143
77877
class PragmaOnceUnitState;
64144
77878
class PragmaOnce;
64145
 
class CCExprResolve;
64146
 
class CExprResolve;
 
77879
class CMatchSyntax;
64147
77880
namespace Puma {
64148
77881
 
64149
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77882
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64150
77883
class CT_NamespaceDef : public CT_Decl, public CSemObject {
64151
 
#line 64152 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77884
#line 77885 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
77885
  friend class ::CCExprResolve;
 
77886
  friend class ::CExprResolve;
64152
77887
  friend class ::WinIfExists;
64153
77888
  friend class ::WinImportHandler;
64154
77889
  friend class ::WinMacros;
64155
 
  friend class ::CMatchSyntax;
64156
 
  friend class ::ExtGnu;
 
77890
  friend class ::WinAsm;
 
77891
  friend class ::WinDeclSpecs;
 
77892
  friend class ::WinMemberExplSpec;
 
77893
  friend class ::WinTypeKeywords;
 
77894
  friend class ::WinFriend;
64157
77895
  friend class ::ExtAC;
64158
77896
  friend class ::ExtACBuilderCoupling;
64159
77897
  friend class ::ExtACSyntaxCoupling;
64160
77898
  friend class ::ExtACTree;
64161
77899
  friend class ::ExtACKeywords;
64162
 
  friend class ::WinAsm;
64163
 
  friend class ::WinDeclSpecs;
64164
 
  friend class ::WinMemberExplSpec;
64165
 
  friend class ::WinTypeKeywords;
 
77900
  friend class ::ExtGnu;
64166
77901
  friend class ::PragmaOnceUnitState;
64167
77902
  friend class ::PragmaOnce;
64168
 
  friend class ::CCExprResolve;
64169
 
  friend class ::CExprResolve;
 
77903
  friend class ::CMatchSyntax;
64170
77904
 
64171
 
#line 1387 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77905
#line 2542 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64172
77906
 
64173
77907
  CTree *sons[3]; // ns, name, members
64174
77908
 
64175
77909
public:
64176
77910
  CT_NamespaceDef (CTree *n, CTree *nm) {
64177
 
    sons[0] = n; sons[1] = nm; sons[2] = 0; 
 
77911
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], 0); 
64178
77912
  }
64179
77913
  CT_NamespaceDef (CTree *n, CTree *nm, CTree *m) {
64180
 
    sons[0] = n; sons[1] = nm; sons[2] = m; 
 
77914
    AddSon (sons[0], n); AddSon (sons[1], nm); AddSon (sons[2], m); 
64181
77915
  }
 
77916
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64182
77917
  static const char *NodeId ();
 
77918
  /** Get the name of the node. Can be compared with NodeId(). */
64183
77919
  const char *NodeName () const { return NodeId (); }
 
77920
  /** Get the number of sons. */
64184
77921
  int Sons () const { return CTree::Sons (sons, 3); }
 
77922
  /** Get the n-th son.
 
77923
   *  \param n The index of the son.
 
77924
   *  \return The n-th son or NULL. */
64185
77925
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
64186
 
  void Members (CTree *m) { sons[2] = m; }
 
77926
  void Members (CTree *m) { AddSon (sons[2], m); }
64187
77927
  CT_MembList *Members () const { return (CT_MembList*)sons[2]; }
64188
77928
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
64189
77929
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
77930
  /** Replace a son.
 
77931
   *  \param old_son The son to replace.
 
77932
   *  \param new_son The new son. */
64190
77933
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64191
77934
    CTree::ReplaceSon (sons, 3, old_son, new_son);
64192
77935
  }
64193
77936
};
64194
77937
 
64195
77938
 
64196
 
#line 64197 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77939
#line 77940 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64197
77940
} // closed Puma
 
77941
class CCExprResolve;
 
77942
class CExprResolve;
64198
77943
class WinIfExists;
64199
77944
class WinImportHandler;
64200
77945
class WinMacros;
64201
 
class CMatchSyntax;
64202
 
class ExtGnu;
 
77946
class WinAsm;
 
77947
class WinDeclSpecs;
 
77948
class WinMemberExplSpec;
 
77949
class WinTypeKeywords;
 
77950
class WinFriend;
64203
77951
class ExtAC;
64204
77952
class ExtACBuilderCoupling;
64205
77953
class ExtACSyntaxCoupling;
64206
77954
class ExtACTree;
64207
77955
class ExtACKeywords;
64208
 
class WinAsm;
64209
 
class WinDeclSpecs;
64210
 
class WinMemberExplSpec;
64211
 
class WinTypeKeywords;
 
77956
class ExtGnu;
64212
77957
class PragmaOnceUnitState;
64213
77958
class PragmaOnce;
64214
 
class CCExprResolve;
64215
 
class CExprResolve;
 
77959
class CMatchSyntax;
64216
77960
namespace Puma {
64217
77961
 
64218
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77962
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64219
77963
class CT_NamespaceAliasDef : public CT_Decl, public CSemObject {
64220
 
#line 64221 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
77964
#line 77965 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
77965
  friend class ::CCExprResolve;
 
77966
  friend class ::CExprResolve;
64221
77967
  friend class ::WinIfExists;
64222
77968
  friend class ::WinImportHandler;
64223
77969
  friend class ::WinMacros;
64224
 
  friend class ::CMatchSyntax;
64225
 
  friend class ::ExtGnu;
 
77970
  friend class ::WinAsm;
 
77971
  friend class ::WinDeclSpecs;
 
77972
  friend class ::WinMemberExplSpec;
 
77973
  friend class ::WinTypeKeywords;
 
77974
  friend class ::WinFriend;
64226
77975
  friend class ::ExtAC;
64227
77976
  friend class ::ExtACBuilderCoupling;
64228
77977
  friend class ::ExtACSyntaxCoupling;
64229
77978
  friend class ::ExtACTree;
64230
77979
  friend class ::ExtACKeywords;
64231
 
  friend class ::WinAsm;
64232
 
  friend class ::WinDeclSpecs;
64233
 
  friend class ::WinMemberExplSpec;
64234
 
  friend class ::WinTypeKeywords;
 
77980
  friend class ::ExtGnu;
64235
77981
  friend class ::PragmaOnceUnitState;
64236
77982
  friend class ::PragmaOnce;
64237
 
  friend class ::CCExprResolve;
64238
 
  friend class ::CExprResolve;
 
77983
  friend class ::CMatchSyntax;
64239
77984
 
64240
 
#line 1410 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
77985
#line 2574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64241
77986
 
64242
77987
  CTree *sons[5]; // ns, alias, assign, name, semi_colon
64243
77988
 
64244
77989
public:
64245
77990
  CT_NamespaceAliasDef (CTree *n, CTree *a, CTree *as, CTree *nm, CTree *s) {
64246
 
    sons[0] = n; sons[1] = a; sons[2] = as; sons[3] = nm; sons[4] = s; 
 
77991
    AddSon (sons[0], n); AddSon (sons[1], a); AddSon (sons[2], as); 
 
77992
    AddSon (sons[3], nm); AddSon (sons[4], s); 
64247
77993
  }
 
77994
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64248
77995
  static const char *NodeId ();
 
77996
  /** Get the name of the node. Can be compared with NodeId(). */
64249
77997
  const char *NodeName () const { return NodeId (); }
 
77998
  /** Get the number of sons. */
64250
77999
  int Sons () const { return 5; }
 
78000
  /** Get the n-th son.
 
78001
   *  \param n The index of the son.
 
78002
   *  \return The n-th son or NULL. */
64251
78003
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
64252
78004
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[3]; }
64253
78005
  CT_SimpleName *Alias () const { return (CT_SimpleName*)sons[1]; }
64254
78006
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
78007
  /** Replace a son.
 
78008
   *  \param old_son The son to replace.
 
78009
   *  \param new_son The new son. */
64255
78010
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64256
78011
    CTree::ReplaceSon (sons, 5, old_son, new_son);
64257
78012
  }
64258
78013
};
64259
78014
 
64260
78015
 
64261
 
#line 64262 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78016
#line 78017 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64262
78017
} // closed Puma
 
78018
class CCExprResolve;
 
78019
class CExprResolve;
64263
78020
class WinIfExists;
64264
78021
class WinImportHandler;
64265
78022
class WinMacros;
64266
 
class CMatchSyntax;
64267
 
class ExtGnu;
 
78023
class WinAsm;
 
78024
class WinDeclSpecs;
 
78025
class WinMemberExplSpec;
 
78026
class WinTypeKeywords;
 
78027
class WinFriend;
64268
78028
class ExtAC;
64269
78029
class ExtACBuilderCoupling;
64270
78030
class ExtACSyntaxCoupling;
64271
78031
class ExtACTree;
64272
78032
class ExtACKeywords;
64273
 
class WinAsm;
64274
 
class WinDeclSpecs;
64275
 
class WinMemberExplSpec;
64276
 
class WinTypeKeywords;
 
78033
class ExtGnu;
64277
78034
class PragmaOnceUnitState;
64278
78035
class PragmaOnce;
64279
 
class CCExprResolve;
64280
 
class CExprResolve;
 
78036
class CMatchSyntax;
64281
78037
namespace Puma {
64282
78038
 
64283
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78039
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64284
78040
class CT_UsingDirective : public CT_Decl {
64285
 
#line 64286 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78041
#line 78042 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
78042
  friend class ::CCExprResolve;
 
78043
  friend class ::CExprResolve;
64286
78044
  friend class ::WinIfExists;
64287
78045
  friend class ::WinImportHandler;
64288
78046
  friend class ::WinMacros;
64289
 
  friend class ::CMatchSyntax;
64290
 
  friend class ::ExtGnu;
 
78047
  friend class ::WinAsm;
 
78048
  friend class ::WinDeclSpecs;
 
78049
  friend class ::WinMemberExplSpec;
 
78050
  friend class ::WinTypeKeywords;
 
78051
  friend class ::WinFriend;
64291
78052
  friend class ::ExtAC;
64292
78053
  friend class ::ExtACBuilderCoupling;
64293
78054
  friend class ::ExtACSyntaxCoupling;
64294
78055
  friend class ::ExtACTree;
64295
78056
  friend class ::ExtACKeywords;
64296
 
  friend class ::WinAsm;
64297
 
  friend class ::WinDeclSpecs;
64298
 
  friend class ::WinMemberExplSpec;
64299
 
  friend class ::WinTypeKeywords;
 
78057
  friend class ::ExtGnu;
64300
78058
  friend class ::PragmaOnceUnitState;
64301
78059
  friend class ::PragmaOnce;
64302
 
  friend class ::CCExprResolve;
64303
 
  friend class ::CExprResolve;
 
78060
  friend class ::CMatchSyntax;
64304
78061
 
64305
 
#line 1429 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78062
#line 2603 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64306
78063
 
64307
78064
  CTree *sons[4]; // using, ns, name, semi_colon
64308
78065
 
64309
78066
public:
64310
78067
  CT_UsingDirective (CTree *u, CTree *ns, CTree *n, CTree *s) {
64311
 
    sons[0] = u; sons[1] = ns; sons[2] = n; sons[3] = s; 
 
78068
    AddSon (sons[0], u); AddSon (sons[1], ns); AddSon (sons[2], n); 
 
78069
    AddSon (sons[3], s); 
64312
78070
  }
 
78071
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64313
78072
  static const char *NodeId ();
 
78073
  /** Get the name of the node. Can be compared with NodeId(). */
64314
78074
  const char *NodeName () const { return NodeId (); }
 
78075
  /** Get the number of sons. */
64315
78076
  int Sons () const { return 4; }
 
78077
  /** Get the n-th son.
 
78078
   *  \param n The index of the son.
 
78079
   *  \return The n-th son or NULL. */
64316
78080
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
64317
78081
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
78082
  /** Replace a son.
 
78083
   *  \param old_son The son to replace.
 
78084
   *  \param new_son The new son. */
64318
78085
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64319
78086
    CTree::ReplaceSon (sons, 4, old_son, new_son);
64320
78087
  }
64327
78094
/*****************************************************************************/
64328
78095
 
64329
78096
 
64330
 
#line 64331 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78097
#line 78098 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64331
78098
} // closed Puma
 
78099
class CCExprResolve;
 
78100
class CExprResolve;
64332
78101
class WinIfExists;
64333
78102
class WinImportHandler;
64334
78103
class WinMacros;
64335
 
class CMatchSyntax;
64336
 
class ExtGnu;
 
78104
class WinAsm;
 
78105
class WinDeclSpecs;
 
78106
class WinMemberExplSpec;
 
78107
class WinTypeKeywords;
 
78108
class WinFriend;
64337
78109
class ExtAC;
64338
78110
class ExtACBuilderCoupling;
64339
78111
class ExtACSyntaxCoupling;
64340
78112
class ExtACTree;
64341
78113
class ExtACKeywords;
64342
 
class WinAsm;
64343
 
class WinDeclSpecs;
64344
 
class WinMemberExplSpec;
64345
 
class WinTypeKeywords;
 
78114
class ExtGnu;
64346
78115
class PragmaOnceUnitState;
64347
78116
class PragmaOnce;
64348
 
class CCExprResolve;
64349
 
class CExprResolve;
 
78117
class CMatchSyntax;
64350
78118
namespace Puma {
64351
78119
 
64352
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78120
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64353
78121
class CT_Declarator : public CTree {
64354
 
#line 64355 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78122
#line 78123 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
78123
  friend class ::CCExprResolve;
 
78124
  friend class ::CExprResolve;
64355
78125
  friend class ::WinIfExists;
64356
78126
  friend class ::WinImportHandler;
64357
78127
  friend class ::WinMacros;
64358
 
  friend class ::CMatchSyntax;
64359
 
  friend class ::ExtGnu;
 
78128
  friend class ::WinAsm;
 
78129
  friend class ::WinDeclSpecs;
 
78130
  friend class ::WinMemberExplSpec;
 
78131
  friend class ::WinTypeKeywords;
 
78132
  friend class ::WinFriend;
64360
78133
  friend class ::ExtAC;
64361
78134
  friend class ::ExtACBuilderCoupling;
64362
78135
  friend class ::ExtACSyntaxCoupling;
64363
78136
  friend class ::ExtACTree;
64364
78137
  friend class ::ExtACKeywords;
64365
 
  friend class ::WinAsm;
64366
 
  friend class ::WinDeclSpecs;
64367
 
  friend class ::WinMemberExplSpec;
64368
 
  friend class ::WinTypeKeywords;
 
78138
  friend class ::ExtGnu;
64369
78139
  friend class ::PragmaOnceUnitState;
64370
78140
  friend class ::PragmaOnce;
64371
 
  friend class ::CCExprResolve;
64372
 
  friend class ::CExprResolve;
 
78141
  friend class ::CMatchSyntax;
64373
78142
 
64374
 
#line 1452 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78143
#line 2636 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64375
78144
 
64376
78145
protected:
64377
78146
  CT_Declarator () {}
64386
78155
};
64387
78156
 
64388
78157
 
64389
 
#line 64390 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78158
#line 78159 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64390
78159
} // closed Puma
 
78160
class CCExprResolve;
 
78161
class CExprResolve;
64391
78162
class WinIfExists;
64392
78163
class WinImportHandler;
64393
78164
class WinMacros;
64394
 
class CMatchSyntax;
64395
 
class ExtGnu;
 
78165
class WinAsm;
 
78166
class WinDeclSpecs;
 
78167
class WinMemberExplSpec;
 
78168
class WinTypeKeywords;
 
78169
class WinFriend;
64396
78170
class ExtAC;
64397
78171
class ExtACBuilderCoupling;
64398
78172
class ExtACSyntaxCoupling;
64399
78173
class ExtACTree;
64400
78174
class ExtACKeywords;
64401
 
class WinAsm;
64402
 
class WinDeclSpecs;
64403
 
class WinMemberExplSpec;
64404
 
class WinTypeKeywords;
 
78175
class ExtGnu;
64405
78176
class PragmaOnceUnitState;
64406
78177
class PragmaOnce;
64407
 
class CCExprResolve;
64408
 
class CExprResolve;
 
78178
class CMatchSyntax;
64409
78179
namespace Puma {
64410
78180
 
64411
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78181
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64412
78182
class CT_InitDeclarator : public CT_Declarator, public CSemObject {
64413
 
#line 64414 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78183
#line 78184 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
78184
  friend class ::CCExprResolve;
 
78185
  friend class ::CExprResolve;
64414
78186
  friend class ::WinIfExists;
64415
78187
  friend class ::WinImportHandler;
64416
78188
  friend class ::WinMacros;
64417
 
  friend class ::CMatchSyntax;
64418
 
  friend class ::ExtGnu;
 
78189
  friend class ::WinAsm;
 
78190
  friend class ::WinDeclSpecs;
 
78191
  friend class ::WinMemberExplSpec;
 
78192
  friend class ::WinTypeKeywords;
 
78193
  friend class ::WinFriend;
64419
78194
  friend class ::ExtAC;
64420
78195
  friend class ::ExtACBuilderCoupling;
64421
78196
  friend class ::ExtACSyntaxCoupling;
64422
78197
  friend class ::ExtACTree;
64423
78198
  friend class ::ExtACKeywords;
64424
 
  friend class ::WinAsm;
64425
 
  friend class ::WinDeclSpecs;
64426
 
  friend class ::WinMemberExplSpec;
64427
 
  friend class ::WinTypeKeywords;
 
78199
  friend class ::ExtGnu;
64428
78200
  friend class ::PragmaOnceUnitState;
64429
78201
  friend class ::PragmaOnce;
64430
 
  friend class ::CCExprResolve;
64431
 
  friend class ::CExprResolve;
64432
 
 
64433
 
#line 1465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
64434
 
 
64435
 
  CTree *sons[2]; // declarator, init
 
78202
  friend class ::CMatchSyntax;
 
78203
 
 
78204
#line 2649 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78205
 
 
78206
  CTree *sons[3]; // declarator, ext, init
64436
78207
  CTree *obj_decl;
64437
78208
 
64438
78209
public:
64439
 
  CT_InitDeclarator (CTree *d, CTree *i = (CTree*)0) {
64440
 
    sons[0] = d; sons[1] = i; obj_decl = 0; 
 
78210
  CT_InitDeclarator (CTree *d, CTree *e = 0, CTree *i = 0) {
 
78211
    AddSon (sons[0], d); AddSon (sons[1], e); AddSon (sons[2], i);
 
78212
    AddSon (obj_decl, 0); 
64441
78213
  }
 
78214
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64442
78215
  static const char *NodeId ();
 
78216
  /** Get the name of the node. Can be compared with NodeId(). */
64443
78217
  const char *NodeName () const { return NodeId (); }
64444
 
  int Sons () const { return CTree::Sons (sons, 2); }
64445
 
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
78218
  /** Get the number of sons. */
 
78219
  int Sons () const { return CTree::Sons (sons, 3); }
 
78220
  /** Get the n-th son.
 
78221
   *  \param n The index of the son.
 
78222
   *  \return The n-th son or NULL. */
 
78223
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
64446
78224
  CTree *Declarator () const { return sons[0]; }
64447
 
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[1]; }
 
78225
  CTree *Extension () const { return sons[1]; }
 
78226
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
64448
78227
  CSemObject *SemObject () const { return (CSemObject*)this; }
64449
78228
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
64450
 
  void Initializer (CTree* i) { sons[1] = i; }
64451
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
78229
  void Initializer (CTree* i) { AddSon (sons[2], i); }
 
78230
  void Extension (CTree* i) { AddSon (sons[1], i); }
 
78231
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
78232
  /** Replace a son.
 
78233
   *  \param old_son The son to replace.
 
78234
   *  \param new_son The new son. */
64452
78235
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64453
 
    CTree::ReplaceSon (sons, 2, old_son, new_son);
 
78236
    CTree::ReplaceSon (sons, 3, old_son, new_son);
64454
78237
  }
64455
78238
};
64456
78239
 
64457
78240
 
64458
 
#line 64459 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78241
#line 78242 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64459
78242
} // closed Puma
 
78243
class CCExprResolve;
 
78244
class CExprResolve;
64460
78245
class WinIfExists;
64461
78246
class WinImportHandler;
64462
78247
class WinMacros;
64463
 
class CMatchSyntax;
64464
 
class ExtGnu;
 
78248
class WinAsm;
 
78249
class WinDeclSpecs;
 
78250
class WinMemberExplSpec;
 
78251
class WinTypeKeywords;
 
78252
class WinFriend;
64465
78253
class ExtAC;
64466
78254
class ExtACBuilderCoupling;
64467
78255
class ExtACSyntaxCoupling;
64468
78256
class ExtACTree;
64469
78257
class ExtACKeywords;
64470
 
class WinAsm;
64471
 
class WinDeclSpecs;
64472
 
class WinMemberExplSpec;
64473
 
class WinTypeKeywords;
 
78258
class ExtGnu;
64474
78259
class PragmaOnceUnitState;
64475
78260
class PragmaOnce;
64476
 
class CCExprResolve;
64477
 
class CExprResolve;
 
78261
class CMatchSyntax;
64478
78262
namespace Puma {
64479
78263
 
64480
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78264
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64481
78265
class CT_BracedDeclarator : public CT_Declarator {
64482
 
#line 64483 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78266
#line 78267 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
78267
  friend class ::CCExprResolve;
 
78268
  friend class ::CExprResolve;
64483
78269
  friend class ::WinIfExists;
64484
78270
  friend class ::WinImportHandler;
64485
78271
  friend class ::WinMacros;
64486
 
  friend class ::CMatchSyntax;
64487
 
  friend class ::ExtGnu;
 
78272
  friend class ::WinAsm;
 
78273
  friend class ::WinDeclSpecs;
 
78274
  friend class ::WinMemberExplSpec;
 
78275
  friend class ::WinTypeKeywords;
 
78276
  friend class ::WinFriend;
64488
78277
  friend class ::ExtAC;
64489
78278
  friend class ::ExtACBuilderCoupling;
64490
78279
  friend class ::ExtACSyntaxCoupling;
64491
78280
  friend class ::ExtACTree;
64492
78281
  friend class ::ExtACKeywords;
64493
 
  friend class ::WinAsm;
64494
 
  friend class ::WinDeclSpecs;
64495
 
  friend class ::WinMemberExplSpec;
64496
 
  friend class ::WinTypeKeywords;
 
78282
  friend class ::ExtGnu;
64497
78283
  friend class ::PragmaOnceUnitState;
64498
78284
  friend class ::PragmaOnce;
64499
 
  friend class ::CCExprResolve;
64500
 
  friend class ::CExprResolve;
 
78285
  friend class ::CMatchSyntax;
64501
78286
 
64502
 
#line 1488 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78287
#line 2684 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64503
78288
 
64504
78289
  CTree *sons[4]; // open, win_specs, declarator, close
64505
78290
 
64506
78291
public:
64507
78292
  CT_BracedDeclarator (CTree *o, CTree *d, CTree *c) {
64508
 
    sons[0] = o; sons[1] = 0; sons[2] = d; sons[3] = c; 
 
78293
    AddSon (sons[0], o); AddSon (sons[1], 0); 
 
78294
    AddSon (sons[2], d); AddSon (sons[3], c); 
64509
78295
  }
64510
78296
  CT_BracedDeclarator (CTree *o, CTree *ws, CTree *d, CTree *c) {
64511
 
    sons[0] = o; sons[1] = ws; sons[2] = d; sons[3] = c; 
 
78297
    AddSon (sons[0], o); AddSon (sons[1], ws); 
 
78298
    AddSon (sons[2], d); AddSon (sons[3], c); 
64512
78299
  }
 
78300
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64513
78301
  static const char *NodeId ();
 
78302
  /** Get the name of the node. Can be compared with NodeId(). */
64514
78303
  const char *NodeName () const { return NodeId (); }
 
78304
  /** Get the number of sons. */
64515
78305
  int Sons () const { return CTree::Sons (sons, 4); }
 
78306
  /** Get the n-th son.
 
78307
   *  \param n The index of the son.
 
78308
   *  \return The n-th son or NULL. */
64516
78309
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
64517
78310
  CTree *Declarator () const { return sons[2]; }
 
78311
  /** Replace a son.
 
78312
   *  \param old_son The son to replace.
 
78313
   *  \param new_son The new son. */
64518
78314
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64519
78315
    CTree::ReplaceSon (sons, 4, old_son, new_son);
64520
78316
  }
64521
78317
};
64522
78318
 
64523
78319
 
64524
 
#line 64525 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78320
#line 78321 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64525
78321
} // closed Puma
 
78322
class CCExprResolve;
 
78323
class CExprResolve;
64526
78324
class WinIfExists;
64527
78325
class WinImportHandler;
64528
78326
class WinMacros;
64529
 
class CMatchSyntax;
64530
 
class ExtGnu;
 
78327
class WinAsm;
 
78328
class WinDeclSpecs;
 
78329
class WinMemberExplSpec;
 
78330
class WinTypeKeywords;
 
78331
class WinFriend;
64531
78332
class ExtAC;
64532
78333
class ExtACBuilderCoupling;
64533
78334
class ExtACSyntaxCoupling;
64534
78335
class ExtACTree;
64535
78336
class ExtACKeywords;
64536
 
class WinAsm;
64537
 
class WinDeclSpecs;
64538
 
class WinMemberExplSpec;
64539
 
class WinTypeKeywords;
 
78337
class ExtGnu;
64540
78338
class PragmaOnceUnitState;
64541
78339
class PragmaOnce;
64542
 
class CCExprResolve;
64543
 
class CExprResolve;
 
78340
class CMatchSyntax;
64544
78341
namespace Puma {
64545
78342
 
64546
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78343
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64547
78344
class CT_ArrayDelimiter : public CTree {
64548
 
#line 64549 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78345
#line 78346 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
78346
  friend class ::CCExprResolve;
 
78347
  friend class ::CExprResolve;
64549
78348
  friend class ::WinIfExists;
64550
78349
  friend class ::WinImportHandler;
64551
78350
  friend class ::WinMacros;
64552
 
  friend class ::CMatchSyntax;
64553
 
  friend class ::ExtGnu;
 
78351
  friend class ::WinAsm;
 
78352
  friend class ::WinDeclSpecs;
 
78353
  friend class ::WinMemberExplSpec;
 
78354
  friend class ::WinTypeKeywords;
 
78355
  friend class ::WinFriend;
64554
78356
  friend class ::ExtAC;
64555
78357
  friend class ::ExtACBuilderCoupling;
64556
78358
  friend class ::ExtACSyntaxCoupling;
64557
78359
  friend class ::ExtACTree;
64558
78360
  friend class ::ExtACKeywords;
64559
 
  friend class ::WinAsm;
64560
 
  friend class ::WinDeclSpecs;
64561
 
  friend class ::WinMemberExplSpec;
64562
 
  friend class ::WinTypeKeywords;
 
78361
  friend class ::ExtGnu;
64563
78362
  friend class ::PragmaOnceUnitState;
64564
78363
  friend class ::PragmaOnce;
64565
 
  friend class ::CCExprResolve;
64566
 
  friend class ::CExprResolve;
 
78364
  friend class ::CMatchSyntax;
64567
78365
 
64568
 
#line 1508 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78366
#line 2715 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64569
78367
 
64570
78368
  CTree *sons[4]; // star, static, quals, expr
64571
78369
  bool pos0;
64572
78370
 
64573
78371
public:
64574
78372
  CT_ArrayDelimiter (CTree *m, CTree *s, CTree *q, CTree *e, bool p = false) {
64575
 
    sons[0] = m; sons[1] = s; sons[2] = q; sons[3] = e; pos0 = p;
 
78373
    AddSon (sons[0], m); AddSon (sons[1], s); 
 
78374
    AddSon (sons[2], q); AddSon (sons[3], e); pos0 = p;
64576
78375
  }
 
78376
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64577
78377
  static const char *NodeId ();
 
78378
  /** Get the name of the node. Can be compared with NodeId(). */
64578
78379
  const char *NodeName () const { return NodeId (); }
 
78380
  /** Get the number of sons. */
64579
78381
  int Sons () const { return CTree::Sons (sons, 4); }
 
78382
  /** Get the n-th son.
 
78383
   *  \param n The index of the son.
 
78384
   *  \return The n-th son or NULL. */
64580
78385
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
64581
78386
  CT_Token *Star () const { return (CT_Token*)sons[0]; }
64582
78387
  CT_Token *Static () const { return (CT_Token*)sons[pos0?2:1]; }
64583
78388
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[pos0?1:2]; }
64584
78389
  CTree *Expr () const { return sons[3]; }
 
78390
  /** Replace a son.
 
78391
   *  \param old_son The son to replace.
 
78392
   *  \param new_son The new son. */
64585
78393
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64586
78394
    CTree::ReplaceSon (sons, 4, old_son, new_son);
64587
78395
  }
64588
78396
};
64589
78397
 
64590
78398
 
64591
 
#line 64592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78399
#line 78400 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64592
78400
} // closed Puma
 
78401
class CCExprResolve;
 
78402
class CExprResolve;
64593
78403
class WinIfExists;
64594
78404
class WinImportHandler;
64595
78405
class WinMacros;
64596
 
class CMatchSyntax;
64597
 
class ExtGnu;
 
78406
class WinAsm;
 
78407
class WinDeclSpecs;
 
78408
class WinMemberExplSpec;
 
78409
class WinTypeKeywords;
 
78410
class WinFriend;
64598
78411
class ExtAC;
64599
78412
class ExtACBuilderCoupling;
64600
78413
class ExtACSyntaxCoupling;
64601
78414
class ExtACTree;
64602
78415
class ExtACKeywords;
64603
 
class WinAsm;
64604
 
class WinDeclSpecs;
64605
 
class WinMemberExplSpec;
64606
 
class WinTypeKeywords;
 
78416
class ExtGnu;
64607
78417
class PragmaOnceUnitState;
64608
78418
class PragmaOnce;
64609
 
class CCExprResolve;
64610
 
class CExprResolve;
 
78419
class CMatchSyntax;
64611
78420
namespace Puma {
64612
78421
 
64613
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78422
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64614
78423
class CT_ArrayDeclarator : public CT_Declarator, public CSemValue {
64615
 
#line 64616 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78424
#line 78425 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
78425
  friend class ::CCExprResolve;
 
78426
  friend class ::CExprResolve;
64616
78427
  friend class ::WinIfExists;
64617
78428
  friend class ::WinImportHandler;
64618
78429
  friend class ::WinMacros;
64619
 
  friend class ::CMatchSyntax;
64620
 
  friend class ::ExtGnu;
 
78430
  friend class ::WinAsm;
 
78431
  friend class ::WinDeclSpecs;
 
78432
  friend class ::WinMemberExplSpec;
 
78433
  friend class ::WinTypeKeywords;
 
78434
  friend class ::WinFriend;
64621
78435
  friend class ::ExtAC;
64622
78436
  friend class ::ExtACBuilderCoupling;
64623
78437
  friend class ::ExtACSyntaxCoupling;
64624
78438
  friend class ::ExtACTree;
64625
78439
  friend class ::ExtACKeywords;
64626
 
  friend class ::WinAsm;
64627
 
  friend class ::WinDeclSpecs;
64628
 
  friend class ::WinMemberExplSpec;
64629
 
  friend class ::WinTypeKeywords;
 
78440
  friend class ::ExtGnu;
64630
78441
  friend class ::PragmaOnceUnitState;
64631
78442
  friend class ::PragmaOnce;
64632
 
  friend class ::CCExprResolve;
64633
 
  friend class ::CExprResolve;
 
78443
  friend class ::CMatchSyntax;
64634
78444
 
64635
 
#line 1529 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78445
#line 2746 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64636
78446
 
64637
78447
  CTree *sons[4]; // declarator, open, delim, close
64638
78448
 
64639
78449
public:
64640
78450
  CT_ArrayDeclarator (CTree *d, CTree *o, CTree *ad, CTree *c) {
64641
 
    sons[0] = d; sons[1] = o; sons[2] = ad; sons[3] = c; 
 
78451
    AddSon (sons[0], d); AddSon (sons[1], o); 
 
78452
    AddSon (sons[2], ad); AddSon (sons[3], c); 
64642
78453
  }
 
78454
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64643
78455
  static const char *NodeId ();
 
78456
  /** Get the name of the node. Can be compared with NodeId(). */
64644
78457
  const char *NodeName () const { return NodeId (); }
 
78458
  /** Get the number of sons. */
64645
78459
  int Sons () const { return 4; }
 
78460
  /** Get the n-th son.
 
78461
   *  \param n The index of the son.
 
78462
   *  \return The n-th son or NULL. */
64646
78463
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
64647
78464
  CTree *Declarator () const { return sons[0]; }
64648
78465
  CT_ArrayDelimiter *Delimiter () const 
64649
78466
   { return (CT_ArrayDelimiter*)sons[2]; }
 
78467
  /** Replace a son.
 
78468
   *  \param old_son The son to replace.
 
78469
   *  \param new_son The new son. */
64650
78470
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64651
78471
    CTree::ReplaceSon (sons, 4, old_son, new_son);
64652
78472
  }
64656
78476
};
64657
78477
 
64658
78478
 
64659
 
#line 64660 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78479
#line 78480 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64660
78480
} // closed Puma
 
78481
class CCExprResolve;
 
78482
class CExprResolve;
64661
78483
class WinIfExists;
64662
78484
class WinImportHandler;
64663
78485
class WinMacros;
64664
 
class CMatchSyntax;
64665
 
class ExtGnu;
 
78486
class WinAsm;
 
78487
class WinDeclSpecs;
 
78488
class WinMemberExplSpec;
 
78489
class WinTypeKeywords;
 
78490
class WinFriend;
64666
78491
class ExtAC;
64667
78492
class ExtACBuilderCoupling;
64668
78493
class ExtACSyntaxCoupling;
64669
78494
class ExtACTree;
64670
78495
class ExtACKeywords;
64671
 
class WinAsm;
64672
 
class WinDeclSpecs;
64673
 
class WinMemberExplSpec;
64674
 
class WinTypeKeywords;
 
78496
class ExtGnu;
64675
78497
class PragmaOnceUnitState;
64676
78498
class PragmaOnce;
64677
 
class CCExprResolve;
64678
 
class CExprResolve;
 
78499
class CMatchSyntax;
64679
78500
namespace Puma {
64680
78501
 
64681
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78502
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64682
78503
class CT_FctDeclarator : public CT_Declarator {
64683
 
#line 64684 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78504
#line 78505 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
78505
  friend class ::CCExprResolve;
 
78506
  friend class ::CExprResolve;
64684
78507
  friend class ::WinIfExists;
64685
78508
  friend class ::WinImportHandler;
64686
78509
  friend class ::WinMacros;
64687
 
  friend class ::CMatchSyntax;
64688
 
  friend class ::ExtGnu;
 
78510
  friend class ::WinAsm;
 
78511
  friend class ::WinDeclSpecs;
 
78512
  friend class ::WinMemberExplSpec;
 
78513
  friend class ::WinTypeKeywords;
 
78514
  friend class ::WinFriend;
64689
78515
  friend class ::ExtAC;
64690
78516
  friend class ::ExtACBuilderCoupling;
64691
78517
  friend class ::ExtACSyntaxCoupling;
64692
78518
  friend class ::ExtACTree;
64693
78519
  friend class ::ExtACKeywords;
64694
 
  friend class ::WinAsm;
64695
 
  friend class ::WinDeclSpecs;
64696
 
  friend class ::WinMemberExplSpec;
64697
 
  friend class ::WinTypeKeywords;
 
78520
  friend class ::ExtGnu;
64698
78521
  friend class ::PragmaOnceUnitState;
64699
78522
  friend class ::PragmaOnce;
64700
 
  friend class ::CCExprResolve;
64701
 
  friend class ::CExprResolve;
 
78523
  friend class ::CMatchSyntax;
64702
78524
 
64703
 
#line 1551 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78525
#line 2778 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64704
78526
 
64705
78527
  CTree *sons[4]; // declarator, args, cv_quals, exception_specs
64706
78528
 
64707
78529
public:
64708
78530
  CT_FctDeclarator (CTree *d, CTree *args, CTree *cv, CTree *es) {
64709
 
    sons[0] = d; sons[1] = args; sons[2] = cv; sons[3] = es; 
 
78531
    AddSon (sons[0], d); AddSon (sons[1], args); 
 
78532
    AddSon (sons[2], cv); AddSon (sons[3], es); 
64710
78533
  }
 
78534
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64711
78535
  static const char *NodeId ();
 
78536
  /** Get the name of the node. Can be compared with NodeId(). */
64712
78537
  const char *NodeName () const { return NodeId (); }
 
78538
  /** Get the number of sons. */
64713
78539
  int Sons () const { return CTree::Sons (sons, 4); }
 
78540
  /** Get the n-th son.
 
78541
   *  \param n The index of the son.
 
78542
   *  \return The n-th son or NULL. */
64714
78543
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
64715
78544
  CTree *Declarator () const { return sons[0]; }
64716
78545
  CT_ArgDeclList *Arguments () const { return (CT_ArgDeclList*)sons[1]; }
64717
78546
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[2]; }
64718
78547
  CT_ExceptionSpec *ExceptionSpecs () const { return (CT_ExceptionSpec*)sons[3]; }
 
78548
  /** Replace a son.
 
78549
   *  \param old_son The son to replace.
 
78550
   *  \param new_son The new son. */
64719
78551
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64720
78552
    CTree::ReplaceSon (sons, 4, old_son, new_son);
64721
78553
  }
64722
78554
};
64723
78555
 
64724
78556
 
64725
 
#line 64726 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78557
#line 78558 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64726
78558
} // closed Puma
 
78559
class CCExprResolve;
 
78560
class CExprResolve;
64727
78561
class WinIfExists;
64728
78562
class WinImportHandler;
64729
78563
class WinMacros;
64730
 
class CMatchSyntax;
64731
 
class ExtGnu;
 
78564
class WinAsm;
 
78565
class WinDeclSpecs;
 
78566
class WinMemberExplSpec;
 
78567
class WinTypeKeywords;
 
78568
class WinFriend;
64732
78569
class ExtAC;
64733
78570
class ExtACBuilderCoupling;
64734
78571
class ExtACSyntaxCoupling;
64735
78572
class ExtACTree;
64736
78573
class ExtACKeywords;
64737
 
class WinAsm;
64738
 
class WinDeclSpecs;
64739
 
class WinMemberExplSpec;
64740
 
class WinTypeKeywords;
 
78574
class ExtGnu;
64741
78575
class PragmaOnceUnitState;
64742
78576
class PragmaOnce;
64743
 
class CCExprResolve;
64744
 
class CExprResolve;
 
78577
class CMatchSyntax;
64745
78578
namespace Puma {
64746
78579
 
64747
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78580
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64748
78581
class CT_RefDeclarator : public CT_Declarator {
64749
 
#line 64750 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78582
#line 78583 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
78583
  friend class ::CCExprResolve;
 
78584
  friend class ::CExprResolve;
64750
78585
  friend class ::WinIfExists;
64751
78586
  friend class ::WinImportHandler;
64752
78587
  friend class ::WinMacros;
64753
 
  friend class ::CMatchSyntax;
64754
 
  friend class ::ExtGnu;
 
78588
  friend class ::WinAsm;
 
78589
  friend class ::WinDeclSpecs;
 
78590
  friend class ::WinMemberExplSpec;
 
78591
  friend class ::WinTypeKeywords;
 
78592
  friend class ::WinFriend;
64755
78593
  friend class ::ExtAC;
64756
78594
  friend class ::ExtACBuilderCoupling;
64757
78595
  friend class ::ExtACSyntaxCoupling;
64758
78596
  friend class ::ExtACTree;
64759
78597
  friend class ::ExtACKeywords;
64760
 
  friend class ::WinAsm;
64761
 
  friend class ::WinDeclSpecs;
64762
 
  friend class ::WinMemberExplSpec;
64763
 
  friend class ::WinTypeKeywords;
 
78598
  friend class ::ExtGnu;
64764
78599
  friend class ::PragmaOnceUnitState;
64765
78600
  friend class ::PragmaOnce;
64766
 
  friend class ::CCExprResolve;
64767
 
  friend class ::CExprResolve;
 
78601
  friend class ::CMatchSyntax;
64768
78602
 
64769
 
#line 1571 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78603
#line 2808 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64770
78604
 
64771
78605
  CTree *sons[2]; // ref, declarator
64772
78606
 
64773
78607
public:
64774
 
  CT_RefDeclarator (CTree *r, CTree *d) { sons[0] = r; sons[1] = d; }
 
78608
  CT_RefDeclarator (CTree *r, CTree *d) { AddSon (sons[0], r); AddSon (sons[1], d); }
 
78609
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64775
78610
  static const char *NodeId ();
 
78611
  /** Get the name of the node. Can be compared with NodeId(). */
64776
78612
  const char *NodeName () const { return NodeId (); }
 
78613
  /** Get the number of sons. */
64777
78614
  int Sons () const { return 2; }
 
78615
  /** Get the n-th son.
 
78616
   *  \param n The index of the son.
 
78617
   *  \return The n-th son or NULL. */
64778
78618
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
64779
78619
  CTree *Declarator () const { return sons[1]; }
 
78620
  /** Replace a son.
 
78621
   *  \param old_son The son to replace.
 
78622
   *  \param new_son The new son. */
64780
78623
  void ReplaceSon (CTree *old_son, CTree *new_son) {
64781
78624
    CTree::ReplaceSon (sons, 2, old_son, new_son);
64782
78625
  }
64783
78626
};
64784
78627
 
64785
78628
 
64786
 
#line 64787 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78629
#line 78630 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64787
78630
} // closed Puma
 
78631
class CCExprResolve;
 
78632
class CExprResolve;
64788
78633
class WinIfExists;
64789
78634
class WinImportHandler;
64790
78635
class WinMacros;
64791
 
class CMatchSyntax;
64792
 
class ExtGnu;
 
78636
class WinAsm;
 
78637
class WinDeclSpecs;
 
78638
class WinMemberExplSpec;
 
78639
class WinTypeKeywords;
 
78640
class WinFriend;
64793
78641
class ExtAC;
64794
78642
class ExtACBuilderCoupling;
64795
78643
class ExtACSyntaxCoupling;
64796
78644
class ExtACTree;
64797
78645
class ExtACKeywords;
64798
 
class WinAsm;
64799
 
class WinDeclSpecs;
64800
 
class WinMemberExplSpec;
64801
 
class WinTypeKeywords;
 
78646
class ExtGnu;
64802
78647
class PragmaOnceUnitState;
64803
78648
class PragmaOnce;
64804
 
class CCExprResolve;
64805
 
class CExprResolve;
 
78649
class CMatchSyntax;
64806
78650
namespace Puma {
64807
78651
 
64808
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78652
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64809
78653
class CT_PtrDeclarator : public CT_Declarator {
64810
 
#line 64811 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78654
#line 78655 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
78655
  friend class ::CCExprResolve;
 
78656
  friend class ::CExprResolve;
64811
78657
  friend class ::WinIfExists;
64812
78658
  friend class ::WinImportHandler;
64813
78659
  friend class ::WinMacros;
64814
 
  friend class ::CMatchSyntax;
64815
 
  friend class ::ExtGnu;
 
78660
  friend class ::WinAsm;
 
78661
  friend class ::WinDeclSpecs;
 
78662
  friend class ::WinMemberExplSpec;
 
78663
  friend class ::WinTypeKeywords;
 
78664
  friend class ::WinFriend;
64816
78665
  friend class ::ExtAC;
64817
78666
  friend class ::ExtACBuilderCoupling;
64818
78667
  friend class ::ExtACSyntaxCoupling;
64819
78668
  friend class ::ExtACTree;
64820
78669
  friend class ::ExtACKeywords;
64821
 
  friend class ::WinAsm;
64822
 
  friend class ::WinDeclSpecs;
64823
 
  friend class ::WinMemberExplSpec;
64824
 
  friend class ::WinTypeKeywords;
 
78670
  friend class ::ExtGnu;
64825
78671
  friend class ::PragmaOnceUnitState;
64826
78672
  friend class ::PragmaOnce;
64827
 
  friend class ::CCExprResolve;
64828
 
  friend class ::CExprResolve;
 
78673
  friend class ::CMatchSyntax;
64829
78674
 
64830
 
#line 1586 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78675
#line 2832 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64831
78676
 
64832
78677
  CTree *sons[3]; // ptr, cv_quals, declarator
64833
78678
 
64834
78679
public:
64835
78680
  CT_PtrDeclarator (CTree *p, CTree *c, CTree *d) {
64836
 
    sons[0] = p; sons[1] = c; sons[2] = d; 
 
78681
    AddSon (sons[0], p); AddSon (sons[1], c); AddSon (sons[2], d); 
64837
78682
  }
 
78683
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64838
78684
  static const char *NodeId ();
 
78685
  /** Get the name of the node. Can be compared with NodeId(). */
64839
78686
  const char *NodeName () const { return NodeId (); }
 
78687
  /** Get the number of sons. */
64840
78688
  int Sons () const { return CTree::Sons (sons, 3); }
 
78689
  /** Get the n-th son.
 
78690
   *  \param n The index of the son.
 
78691
   *  \return The n-th son or NULL. */
64841
78692
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
64842
78693
  CTree *Declarator () const { return sons[2]; }
64843
78694
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[1]; }
 
78695
  /** Replace a son.
 
78696
   *  \param old_son The son to replace.
 
78697
   *  \param new_son The new son. */
64844
78698
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64845
78699
    CTree::ReplaceSon (sons, 3, old_son, new_son);
64846
78700
  }
64847
78701
};
64848
78702
 
64849
78703
 
64850
 
#line 64851 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78704
#line 78705 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64851
78705
} // closed Puma
 
78706
class CCExprResolve;
 
78707
class CExprResolve;
64852
78708
class WinIfExists;
64853
78709
class WinImportHandler;
64854
78710
class WinMacros;
64855
 
class CMatchSyntax;
64856
 
class ExtGnu;
 
78711
class WinAsm;
 
78712
class WinDeclSpecs;
 
78713
class WinMemberExplSpec;
 
78714
class WinTypeKeywords;
 
78715
class WinFriend;
64857
78716
class ExtAC;
64858
78717
class ExtACBuilderCoupling;
64859
78718
class ExtACSyntaxCoupling;
64860
78719
class ExtACTree;
64861
78720
class ExtACKeywords;
64862
 
class WinAsm;
64863
 
class WinDeclSpecs;
64864
 
class WinMemberExplSpec;
64865
 
class WinTypeKeywords;
 
78721
class ExtGnu;
64866
78722
class PragmaOnceUnitState;
64867
78723
class PragmaOnce;
64868
 
class CCExprResolve;
64869
 
class CExprResolve;
 
78724
class CMatchSyntax;
64870
78725
namespace Puma {
64871
78726
 
64872
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78727
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64873
78728
class CT_MembPtrDeclarator : public CT_Declarator {
64874
 
#line 64875 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78729
#line 78730 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
78730
  friend class ::CCExprResolve;
 
78731
  friend class ::CExprResolve;
64875
78732
  friend class ::WinIfExists;
64876
78733
  friend class ::WinImportHandler;
64877
78734
  friend class ::WinMacros;
64878
 
  friend class ::CMatchSyntax;
64879
 
  friend class ::ExtGnu;
 
78735
  friend class ::WinAsm;
 
78736
  friend class ::WinDeclSpecs;
 
78737
  friend class ::WinMemberExplSpec;
 
78738
  friend class ::WinTypeKeywords;
 
78739
  friend class ::WinFriend;
64880
78740
  friend class ::ExtAC;
64881
78741
  friend class ::ExtACBuilderCoupling;
64882
78742
  friend class ::ExtACSyntaxCoupling;
64883
78743
  friend class ::ExtACTree;
64884
78744
  friend class ::ExtACKeywords;
64885
 
  friend class ::WinAsm;
64886
 
  friend class ::WinDeclSpecs;
64887
 
  friend class ::WinMemberExplSpec;
64888
 
  friend class ::WinTypeKeywords;
 
78745
  friend class ::ExtGnu;
64889
78746
  friend class ::PragmaOnceUnitState;
64890
78747
  friend class ::PragmaOnce;
64891
 
  friend class ::CCExprResolve;
64892
 
  friend class ::CExprResolve;
 
78748
  friend class ::CMatchSyntax;
64893
78749
 
64894
 
#line 1604 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78750
#line 2859 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64895
78751
 
64896
78752
  CTree *sons[5]; // class, colon, ptr, cv_quals, declarator
64897
78753
 
64898
78754
public:
64899
78755
  CT_MembPtrDeclarator (CTree *c, CTree *cc, CTree *p, CTree *q, CTree *d) {
64900
 
    sons[0] = c; sons[1] = cc; sons[2] = p; sons[3] = q; sons[4] = d; 
 
78756
    AddSon (sons[0], c); AddSon (sons[1], cc); AddSon (sons[2], p); 
 
78757
    AddSon (sons[3], q); AddSon (sons[4], d); 
64901
78758
  }
 
78759
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64902
78760
  static const char *NodeId ();
 
78761
  /** Get the name of the node. Can be compared with NodeId(). */
64903
78762
  const char *NodeName () const { return NodeId (); }
 
78763
  /** Get the number of sons. */
64904
78764
  int Sons () const { return CTree::Sons (sons, 5); }
 
78765
  /** Get the n-th son.
 
78766
   *  \param n The index of the son.
 
78767
   *  \return The n-th son or NULL. */
64905
78768
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
64906
78769
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[0]; }
64907
78770
  CTree *Declarator () const { return sons[4]; }
64908
78771
  CT_DeclSpecSeq *Qualifier () const { return (CT_DeclSpecSeq*)sons[3]; }
 
78772
  /** Replace a son.
 
78773
   *  \param old_son The son to replace.
 
78774
   *  \param new_son The new son. */
64909
78775
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64910
78776
    CTree::ReplaceSon (sons, 5, old_son, new_son);
64911
78777
  }
64912
78778
};
64913
78779
 
64914
78780
 
64915
 
#line 64916 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78781
#line 78782 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64916
78782
} // closed Puma
 
78783
class CCExprResolve;
 
78784
class CExprResolve;
64917
78785
class WinIfExists;
64918
78786
class WinImportHandler;
64919
78787
class WinMacros;
64920
 
class CMatchSyntax;
64921
 
class ExtGnu;
 
78788
class WinAsm;
 
78789
class WinDeclSpecs;
 
78790
class WinMemberExplSpec;
 
78791
class WinTypeKeywords;
 
78792
class WinFriend;
64922
78793
class ExtAC;
64923
78794
class ExtACBuilderCoupling;
64924
78795
class ExtACSyntaxCoupling;
64925
78796
class ExtACTree;
64926
78797
class ExtACKeywords;
64927
 
class WinAsm;
64928
 
class WinDeclSpecs;
64929
 
class WinMemberExplSpec;
64930
 
class WinTypeKeywords;
 
78798
class ExtGnu;
64931
78799
class PragmaOnceUnitState;
64932
78800
class PragmaOnce;
64933
 
class CCExprResolve;
64934
 
class CExprResolve;
 
78801
class CMatchSyntax;
64935
78802
namespace Puma {
64936
78803
 
64937
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78804
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64938
78805
class CT_BitFieldDeclarator : public CT_Declarator, public CSemObject {
64939
 
#line 64940 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78806
#line 78807 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
78807
  friend class ::CCExprResolve;
 
78808
  friend class ::CExprResolve;
64940
78809
  friend class ::WinIfExists;
64941
78810
  friend class ::WinImportHandler;
64942
78811
  friend class ::WinMacros;
64943
 
  friend class ::CMatchSyntax;
64944
 
  friend class ::ExtGnu;
 
78812
  friend class ::WinAsm;
 
78813
  friend class ::WinDeclSpecs;
 
78814
  friend class ::WinMemberExplSpec;
 
78815
  friend class ::WinTypeKeywords;
 
78816
  friend class ::WinFriend;
64945
78817
  friend class ::ExtAC;
64946
78818
  friend class ::ExtACBuilderCoupling;
64947
78819
  friend class ::ExtACSyntaxCoupling;
64948
78820
  friend class ::ExtACTree;
64949
78821
  friend class ::ExtACKeywords;
64950
 
  friend class ::WinAsm;
64951
 
  friend class ::WinDeclSpecs;
64952
 
  friend class ::WinMemberExplSpec;
64953
 
  friend class ::WinTypeKeywords;
 
78822
  friend class ::ExtGnu;
64954
78823
  friend class ::PragmaOnceUnitState;
64955
78824
  friend class ::PragmaOnce;
64956
 
  friend class ::CCExprResolve;
64957
 
  friend class ::CExprResolve;
 
78825
  friend class ::CMatchSyntax;
64958
78826
 
64959
 
#line 1623 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78827
#line 2888 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
64960
78828
 
64961
78829
  CTree *sons[3]; // declarator, colon, expr
64962
78830
 
64963
78831
public:
64964
78832
  CT_BitFieldDeclarator (CTree *d, CTree *c, CTree *e = 0) {
64965
 
    sons[0] = d; sons[1] = c; sons[2] = e; 
 
78833
    AddSon (sons[0], d); AddSon (sons[1], c); AddSon (sons[2], e); 
64966
78834
  }
 
78835
  /** Get the identifier for this node type. Can be compared with NodeName(). */
64967
78836
  static const char *NodeId ();
 
78837
  /** Get the name of the node. Can be compared with NodeId(). */
64968
78838
  const char *NodeName () const { return NodeId (); }
 
78839
  /** Get the number of sons. */
64969
78840
  int Sons () const { return CTree::Sons (sons, 3); }
 
78841
  /** Get the n-th son.
 
78842
   *  \param n The index of the son.
 
78843
   *  \return The n-th son or NULL. */
64970
78844
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
64971
78845
  CTree *Declarator () const { return sons[0]; }
64972
78846
  CTree *Expr () const { return sons[2]; }
64973
 
  void FieldSize (CTree *s) { sons[2] = s; }
 
78847
  void FieldSize (CTree *s) { AddSon (sons[2], s); }
64974
78848
  CSemObject *SemObject () const { return (CSemObject*)this; }
 
78849
  /** Replace a son.
 
78850
   *  \param old_son The son to replace.
 
78851
   *  \param new_son The new son. */
64975
78852
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
64976
78853
    CTree::ReplaceSon (sons, 3, old_son, new_son);
64977
78854
  }
64984
78861
/*****************************************************************************/
64985
78862
 
64986
78863
 
64987
 
#line 64988 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78864
#line 78865 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
64988
78865
} // closed Puma
 
78866
class CCExprResolve;
 
78867
class CExprResolve;
64989
78868
class WinIfExists;
64990
78869
class WinImportHandler;
64991
78870
class WinMacros;
64992
 
class CMatchSyntax;
64993
 
class ExtGnu;
 
78871
class WinAsm;
 
78872
class WinDeclSpecs;
 
78873
class WinMemberExplSpec;
 
78874
class WinTypeKeywords;
 
78875
class WinFriend;
64994
78876
class ExtAC;
64995
78877
class ExtACBuilderCoupling;
64996
78878
class ExtACSyntaxCoupling;
64997
78879
class ExtACTree;
64998
78880
class ExtACKeywords;
64999
 
class WinAsm;
65000
 
class WinDeclSpecs;
65001
 
class WinMemberExplSpec;
65002
 
class WinTypeKeywords;
 
78881
class ExtGnu;
65003
78882
class PragmaOnceUnitState;
65004
78883
class PragmaOnce;
65005
 
class CCExprResolve;
65006
 
class CExprResolve;
 
78884
class CMatchSyntax;
65007
78885
namespace Puma {
65008
78886
 
65009
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78887
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65010
78888
class CT_Statement : public CTree {
65011
 
#line 65012 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78889
#line 78890 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
78890
  friend class ::CCExprResolve;
 
78891
  friend class ::CExprResolve;
65012
78892
  friend class ::WinIfExists;
65013
78893
  friend class ::WinImportHandler;
65014
78894
  friend class ::WinMacros;
65015
 
  friend class ::CMatchSyntax;
65016
 
  friend class ::ExtGnu;
 
78895
  friend class ::WinAsm;
 
78896
  friend class ::WinDeclSpecs;
 
78897
  friend class ::WinMemberExplSpec;
 
78898
  friend class ::WinTypeKeywords;
 
78899
  friend class ::WinFriend;
65017
78900
  friend class ::ExtAC;
65018
78901
  friend class ::ExtACBuilderCoupling;
65019
78902
  friend class ::ExtACSyntaxCoupling;
65020
78903
  friend class ::ExtACTree;
65021
78904
  friend class ::ExtACKeywords;
65022
 
  friend class ::WinAsm;
65023
 
  friend class ::WinDeclSpecs;
65024
 
  friend class ::WinMemberExplSpec;
65025
 
  friend class ::WinTypeKeywords;
 
78905
  friend class ::ExtGnu;
65026
78906
  friend class ::PragmaOnceUnitState;
65027
78907
  friend class ::PragmaOnce;
65028
 
  friend class ::CCExprResolve;
65029
 
  friend class ::CExprResolve;
 
78908
  friend class ::CMatchSyntax;
65030
78909
 
65031
 
#line 1649 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78910
#line 2923 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65032
78911
 
65033
78912
protected:
65034
78913
  CT_Statement () {}
 
78914
  virtual CT_Statement *IsStatement () { return this; }
65035
78915
};
65036
78916
 
65037
78917
 
65038
 
#line 65039 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78918
#line 78919 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65039
78919
} // closed Puma
 
78920
class CCExprResolve;
 
78921
class CExprResolve;
65040
78922
class WinIfExists;
65041
78923
class WinImportHandler;
65042
78924
class WinMacros;
65043
 
class CMatchSyntax;
65044
 
class ExtGnu;
 
78925
class WinAsm;
 
78926
class WinDeclSpecs;
 
78927
class WinMemberExplSpec;
 
78928
class WinTypeKeywords;
 
78929
class WinFriend;
65045
78930
class ExtAC;
65046
78931
class ExtACBuilderCoupling;
65047
78932
class ExtACSyntaxCoupling;
65048
78933
class ExtACTree;
65049
78934
class ExtACKeywords;
65050
 
class WinAsm;
65051
 
class WinDeclSpecs;
65052
 
class WinMemberExplSpec;
65053
 
class WinTypeKeywords;
 
78935
class ExtGnu;
65054
78936
class PragmaOnceUnitState;
65055
78937
class PragmaOnce;
65056
 
class CCExprResolve;
65057
 
class CExprResolve;
 
78938
class CMatchSyntax;
65058
78939
namespace Puma {
65059
78940
 
65060
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78941
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65061
78942
class CT_LabelStmt : public CT_Statement {
65062
 
#line 65063 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78943
#line 78944 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
78944
  friend class ::CCExprResolve;
 
78945
  friend class ::CExprResolve;
65063
78946
  friend class ::WinIfExists;
65064
78947
  friend class ::WinImportHandler;
65065
78948
  friend class ::WinMacros;
65066
 
  friend class ::CMatchSyntax;
65067
 
  friend class ::ExtGnu;
 
78949
  friend class ::WinAsm;
 
78950
  friend class ::WinDeclSpecs;
 
78951
  friend class ::WinMemberExplSpec;
 
78952
  friend class ::WinTypeKeywords;
 
78953
  friend class ::WinFriend;
65068
78954
  friend class ::ExtAC;
65069
78955
  friend class ::ExtACBuilderCoupling;
65070
78956
  friend class ::ExtACSyntaxCoupling;
65071
78957
  friend class ::ExtACTree;
65072
78958
  friend class ::ExtACKeywords;
65073
 
  friend class ::WinAsm;
65074
 
  friend class ::WinDeclSpecs;
65075
 
  friend class ::WinMemberExplSpec;
65076
 
  friend class ::WinTypeKeywords;
 
78959
  friend class ::ExtGnu;
65077
78960
  friend class ::PragmaOnceUnitState;
65078
78961
  friend class ::PragmaOnce;
65079
 
  friend class ::CCExprResolve;
65080
 
  friend class ::CExprResolve;
 
78962
  friend class ::CMatchSyntax;
65081
78963
 
65082
 
#line 1654 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
78964
#line 2929 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65083
78965
 
65084
78966
  CTree *sons[3]; // id, colon, stmt
65085
78967
 
65086
78968
public:
65087
78969
  CT_LabelStmt (CTree *id, CTree *c, CTree *stmt) {
65088
 
    sons[0] = id; sons[1] = c; sons[2] = stmt; 
 
78970
    AddSon (sons[0], id); AddSon (sons[1], c); AddSon (sons[2], stmt); 
65089
78971
  }
 
78972
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65090
78973
  static const char *NodeId ();
 
78974
  /** Get the name of the node. Can be compared with NodeId(). */
65091
78975
  const char *NodeName () const { return NodeId (); }
 
78976
  /** Get the number of sons. */
65092
78977
  int Sons () const { return 3; }
 
78978
  /** Get the n-th son.
 
78979
   *  \param n The index of the son.
 
78980
   *  \return The n-th son or NULL. */
65093
78981
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
65094
78982
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
65095
78983
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[0]; }
 
78984
  /** Replace a son.
 
78985
   *  \param old_son The son to replace.
 
78986
   *  \param new_son The new son. */
65096
78987
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65097
78988
    CTree::ReplaceSon (sons, 3, old_son, new_son);
65098
78989
  }
65099
78990
};
65100
78991
 
65101
78992
 
65102
 
#line 65103 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
78993
#line 78994 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65103
78994
} // closed Puma
 
78995
class CCExprResolve;
 
78996
class CExprResolve;
65104
78997
class WinIfExists;
65105
78998
class WinImportHandler;
65106
78999
class WinMacros;
65107
 
class CMatchSyntax;
65108
 
class ExtGnu;
 
79000
class WinAsm;
 
79001
class WinDeclSpecs;
 
79002
class WinMemberExplSpec;
 
79003
class WinTypeKeywords;
 
79004
class WinFriend;
65109
79005
class ExtAC;
65110
79006
class ExtACBuilderCoupling;
65111
79007
class ExtACSyntaxCoupling;
65112
79008
class ExtACTree;
65113
79009
class ExtACKeywords;
65114
 
class WinAsm;
65115
 
class WinDeclSpecs;
65116
 
class WinMemberExplSpec;
65117
 
class WinTypeKeywords;
 
79010
class ExtGnu;
65118
79011
class PragmaOnceUnitState;
65119
79012
class PragmaOnce;
65120
 
class CCExprResolve;
65121
 
class CExprResolve;
 
79013
class CMatchSyntax;
65122
79014
namespace Puma {
65123
79015
 
65124
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79016
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65125
79017
class CT_DefaultStmt : public CT_Statement {
65126
 
#line 65127 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79018
#line 79019 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
79019
  friend class ::CCExprResolve;
 
79020
  friend class ::CExprResolve;
65127
79021
  friend class ::WinIfExists;
65128
79022
  friend class ::WinImportHandler;
65129
79023
  friend class ::WinMacros;
65130
 
  friend class ::CMatchSyntax;
65131
 
  friend class ::ExtGnu;
 
79024
  friend class ::WinAsm;
 
79025
  friend class ::WinDeclSpecs;
 
79026
  friend class ::WinMemberExplSpec;
 
79027
  friend class ::WinTypeKeywords;
 
79028
  friend class ::WinFriend;
65132
79029
  friend class ::ExtAC;
65133
79030
  friend class ::ExtACBuilderCoupling;
65134
79031
  friend class ::ExtACSyntaxCoupling;
65135
79032
  friend class ::ExtACTree;
65136
79033
  friend class ::ExtACKeywords;
65137
 
  friend class ::WinAsm;
65138
 
  friend class ::WinDeclSpecs;
65139
 
  friend class ::WinMemberExplSpec;
65140
 
  friend class ::WinTypeKeywords;
 
79034
  friend class ::ExtGnu;
65141
79035
  friend class ::PragmaOnceUnitState;
65142
79036
  friend class ::PragmaOnce;
65143
 
  friend class ::CCExprResolve;
65144
 
  friend class ::CExprResolve;
 
79037
  friend class ::CMatchSyntax;
65145
79038
 
65146
 
#line 1672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79039
#line 2956 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65147
79040
 
65148
79041
  CTree *sons[3]; // keyword, colon, stmt
65149
79042
 
65150
79043
public:
65151
79044
  CT_DefaultStmt (CTree *kw, CTree *c, CTree *stmt) {
65152
 
    sons[0] = kw; sons[1] = c; sons[2] = stmt; 
 
79045
    AddSon (sons[0], kw); AddSon (sons[1], c); AddSon (sons[2], stmt); 
65153
79046
  }
 
79047
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65154
79048
  static const char *NodeId ();
 
79049
  /** Get the name of the node. Can be compared with NodeId(). */
65155
79050
  const char *NodeName () const { return NodeId (); }
 
79051
  /** Get the number of sons. */
65156
79052
  int Sons () const { return 3; }
 
79053
  /** Get the n-th son.
 
79054
   *  \param n The index of the son.
 
79055
   *  \return The n-th son or NULL. */
65157
79056
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
65158
79057
  CT_Statement *Statement () const { return (CT_Statement*)sons[2]; }
 
79058
  /** Replace a son.
 
79059
   *  \param old_son The son to replace.
 
79060
   *  \param new_son The new son. */
65159
79061
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65160
79062
    CTree::ReplaceSon (sons, 3, old_son, new_son);
65161
79063
  }
65162
79064
};
65163
79065
 
65164
79066
 
65165
 
#line 65166 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79067
#line 79068 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65166
79068
} // closed Puma
 
79069
class CCExprResolve;
 
79070
class CExprResolve;
65167
79071
class WinIfExists;
65168
79072
class WinImportHandler;
65169
79073
class WinMacros;
65170
 
class CMatchSyntax;
65171
 
class ExtGnu;
 
79074
class WinAsm;
 
79075
class WinDeclSpecs;
 
79076
class WinMemberExplSpec;
 
79077
class WinTypeKeywords;
 
79078
class WinFriend;
65172
79079
class ExtAC;
65173
79080
class ExtACBuilderCoupling;
65174
79081
class ExtACSyntaxCoupling;
65175
79082
class ExtACTree;
65176
79083
class ExtACKeywords;
65177
 
class WinAsm;
65178
 
class WinDeclSpecs;
65179
 
class WinMemberExplSpec;
65180
 
class WinTypeKeywords;
 
79084
class ExtGnu;
65181
79085
class PragmaOnceUnitState;
65182
79086
class PragmaOnce;
65183
 
class CCExprResolve;
65184
 
class CExprResolve;
 
79087
class CMatchSyntax;
65185
79088
namespace Puma {
65186
79089
 
65187
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79090
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65188
79091
class CT_TryStmt : public CT_Statement {
65189
 
#line 65190 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79092
#line 79093 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
79093
  friend class ::CCExprResolve;
 
79094
  friend class ::CExprResolve;
65190
79095
  friend class ::WinIfExists;
65191
79096
  friend class ::WinImportHandler;
65192
79097
  friend class ::WinMacros;
65193
 
  friend class ::CMatchSyntax;
65194
 
  friend class ::ExtGnu;
 
79098
  friend class ::WinAsm;
 
79099
  friend class ::WinDeclSpecs;
 
79100
  friend class ::WinMemberExplSpec;
 
79101
  friend class ::WinTypeKeywords;
 
79102
  friend class ::WinFriend;
65195
79103
  friend class ::ExtAC;
65196
79104
  friend class ::ExtACBuilderCoupling;
65197
79105
  friend class ::ExtACSyntaxCoupling;
65198
79106
  friend class ::ExtACTree;
65199
79107
  friend class ::ExtACKeywords;
65200
 
  friend class ::WinAsm;
65201
 
  friend class ::WinDeclSpecs;
65202
 
  friend class ::WinMemberExplSpec;
65203
 
  friend class ::WinTypeKeywords;
 
79108
  friend class ::ExtGnu;
65204
79109
  friend class ::PragmaOnceUnitState;
65205
79110
  friend class ::PragmaOnce;
65206
 
  friend class ::CCExprResolve;
65207
 
  friend class ::CExprResolve;
 
79111
  friend class ::CMatchSyntax;
65208
79112
 
65209
 
#line 1689 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79113
#line 2982 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65210
79114
 
65211
79115
  CTree *sons[3]; // try, stmt, handlers
65212
79116
 
65213
79117
public:
65214
79118
  CT_TryStmt (CTree *t, CTree *s, CTree *h) {
65215
 
    sons[0] = t; sons[1] = s; sons[2] = h; 
 
79119
    AddSon (sons[0], t); AddSon (sons[1], s); AddSon (sons[2], h); 
65216
79120
  }
 
79121
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65217
79122
  static const char *NodeId ();
 
79123
  /** Get the name of the node. Can be compared with NodeId(). */
65218
79124
  const char *NodeName () const { return NodeId (); }
 
79125
  /** Get the number of sons. */
65219
79126
  int Sons () const { return 3; }
 
79127
  /** Get the n-th son.
 
79128
   *  \param n The index of the son.
 
79129
   *  \return The n-th son or NULL. */
65220
79130
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
65221
79131
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
65222
79132
  CT_HandlerSeq *Handlers () const { return (CT_HandlerSeq*)sons[2]; }
 
79133
  /** Replace a son.
 
79134
   *  \param old_son The son to replace.
 
79135
   *  \param new_son The new son. */
65223
79136
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65224
79137
    CTree::ReplaceSon (sons, 3, old_son, new_son);
65225
79138
  }
65226
79139
};
65227
79140
 
65228
79141
 
65229
 
#line 65230 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79142
#line 79143 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65230
79143
} // closed Puma
 
79144
class CCExprResolve;
 
79145
class CExprResolve;
65231
79146
class WinIfExists;
65232
79147
class WinImportHandler;
65233
79148
class WinMacros;
65234
 
class CMatchSyntax;
65235
 
class ExtGnu;
 
79149
class WinAsm;
 
79150
class WinDeclSpecs;
 
79151
class WinMemberExplSpec;
 
79152
class WinTypeKeywords;
 
79153
class WinFriend;
65236
79154
class ExtAC;
65237
79155
class ExtACBuilderCoupling;
65238
79156
class ExtACSyntaxCoupling;
65239
79157
class ExtACTree;
65240
79158
class ExtACKeywords;
65241
 
class WinAsm;
65242
 
class WinDeclSpecs;
65243
 
class WinMemberExplSpec;
65244
 
class WinTypeKeywords;
 
79159
class ExtGnu;
65245
79160
class PragmaOnceUnitState;
65246
79161
class PragmaOnce;
65247
 
class CCExprResolve;
65248
 
class CExprResolve;
 
79162
class CMatchSyntax;
65249
79163
namespace Puma {
65250
79164
 
65251
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79165
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65252
79166
class CT_CaseStmt : public CT_Statement {
65253
 
#line 65254 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79167
#line 79168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
79168
  friend class ::CCExprResolve;
 
79169
  friend class ::CExprResolve;
65254
79170
  friend class ::WinIfExists;
65255
79171
  friend class ::WinImportHandler;
65256
79172
  friend class ::WinMacros;
65257
 
  friend class ::CMatchSyntax;
65258
 
  friend class ::ExtGnu;
 
79173
  friend class ::WinAsm;
 
79174
  friend class ::WinDeclSpecs;
 
79175
  friend class ::WinMemberExplSpec;
 
79176
  friend class ::WinTypeKeywords;
 
79177
  friend class ::WinFriend;
65259
79178
  friend class ::ExtAC;
65260
79179
  friend class ::ExtACBuilderCoupling;
65261
79180
  friend class ::ExtACSyntaxCoupling;
65262
79181
  friend class ::ExtACTree;
65263
79182
  friend class ::ExtACKeywords;
65264
 
  friend class ::WinAsm;
65265
 
  friend class ::WinDeclSpecs;
65266
 
  friend class ::WinMemberExplSpec;
65267
 
  friend class ::WinTypeKeywords;
 
79183
  friend class ::ExtGnu;
65268
79184
  friend class ::PragmaOnceUnitState;
65269
79185
  friend class ::PragmaOnce;
65270
 
  friend class ::CCExprResolve;
65271
 
  friend class ::CExprResolve;
 
79186
  friend class ::CMatchSyntax;
65272
79187
 
65273
 
#line 1707 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79188
#line 3009 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65274
79189
 
65275
79190
  CTree *sons[4]; // keyword, expr, colon, stmt
65276
79191
 
65277
79192
public:
65278
79193
  CT_CaseStmt (CTree *kw, CTree *expr, CTree *c, CTree *stmt) {
65279
 
    sons[0] = kw; sons[1] = expr; sons[2] = c; sons[3] = stmt; 
 
79194
    AddSon (sons[0], kw); AddSon (sons[1], expr); 
 
79195
    AddSon (sons[2], c); AddSon (sons[3], stmt); 
65280
79196
  }
 
79197
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65281
79198
  static const char *NodeId ();
 
79199
  /** Get the name of the node. Can be compared with NodeId(). */
65282
79200
  const char *NodeName () const { return NodeId (); }
 
79201
  /** Get the number of sons. */
65283
79202
  int Sons () const { return 4; }
 
79203
  /** Get the n-th son.
 
79204
   *  \param n The index of the son.
 
79205
   *  \return The n-th son or NULL. */
65284
79206
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
65285
79207
  CT_Statement *Statement () const { return (CT_Statement*)sons[3]; }
65286
79208
  CTree *Expr () const { return sons[1]; }
 
79209
  /** Replace a son.
 
79210
   *  \param old_son The son to replace.
 
79211
   *  \param new_son The new son. */
65287
79212
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65288
79213
    CTree::ReplaceSon (sons, 4, old_son, new_son);
65289
79214
  }
65290
79215
};
65291
79216
 
65292
79217
 
65293
 
#line 65294 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79218
#line 79219 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65294
79219
} // closed Puma
 
79220
class CCExprResolve;
 
79221
class CExprResolve;
65295
79222
class WinIfExists;
65296
79223
class WinImportHandler;
65297
79224
class WinMacros;
65298
 
class CMatchSyntax;
65299
 
class ExtGnu;
 
79225
class WinAsm;
 
79226
class WinDeclSpecs;
 
79227
class WinMemberExplSpec;
 
79228
class WinTypeKeywords;
 
79229
class WinFriend;
65300
79230
class ExtAC;
65301
79231
class ExtACBuilderCoupling;
65302
79232
class ExtACSyntaxCoupling;
65303
79233
class ExtACTree;
65304
79234
class ExtACKeywords;
65305
 
class WinAsm;
65306
 
class WinDeclSpecs;
65307
 
class WinMemberExplSpec;
65308
 
class WinTypeKeywords;
 
79235
class ExtGnu;
65309
79236
class PragmaOnceUnitState;
65310
79237
class PragmaOnce;
65311
 
class CCExprResolve;
65312
 
class CExprResolve;
 
79238
class CMatchSyntax;
65313
79239
namespace Puma {
65314
79240
 
65315
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79241
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65316
79242
class CT_ExprStmt : public CT_Statement {
65317
 
#line 65318 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79243
#line 79244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
79244
  friend class ::CCExprResolve;
 
79245
  friend class ::CExprResolve;
65318
79246
  friend class ::WinIfExists;
65319
79247
  friend class ::WinImportHandler;
65320
79248
  friend class ::WinMacros;
65321
 
  friend class ::CMatchSyntax;
65322
 
  friend class ::ExtGnu;
 
79249
  friend class ::WinAsm;
 
79250
  friend class ::WinDeclSpecs;
 
79251
  friend class ::WinMemberExplSpec;
 
79252
  friend class ::WinTypeKeywords;
 
79253
  friend class ::WinFriend;
65323
79254
  friend class ::ExtAC;
65324
79255
  friend class ::ExtACBuilderCoupling;
65325
79256
  friend class ::ExtACSyntaxCoupling;
65326
79257
  friend class ::ExtACTree;
65327
79258
  friend class ::ExtACKeywords;
65328
 
  friend class ::WinAsm;
65329
 
  friend class ::WinDeclSpecs;
65330
 
  friend class ::WinMemberExplSpec;
65331
 
  friend class ::WinTypeKeywords;
 
79259
  friend class ::ExtGnu;
65332
79260
  friend class ::PragmaOnceUnitState;
65333
79261
  friend class ::PragmaOnce;
65334
 
  friend class ::CCExprResolve;
65335
 
  friend class ::CExprResolve;
 
79262
  friend class ::CMatchSyntax;
65336
79263
 
65337
 
#line 1725 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79264
#line 3037 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65338
79265
 
65339
79266
  CTree *sons[2]; // expr, semi_colon
65340
79267
 
65341
79268
public:
65342
 
  CT_ExprStmt (CTree *expr, CTree *sc) { sons[0] = expr; sons[1] = sc; }
 
79269
  CT_ExprStmt (CTree *expr, CTree *sc) { AddSon (sons[0], expr); AddSon (sons[1], sc); }
 
79270
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65343
79271
  static const char *NodeId ();
 
79272
  /** Get the name of the node. Can be compared with NodeId(). */
65344
79273
  const char *NodeName () const { return NodeId (); }
 
79274
  /** Get the number of sons. */
65345
79275
  int Sons () const { return CTree::Sons (sons, 2); }
 
79276
  /** Get the n-th son.
 
79277
   *  \param n The index of the son.
 
79278
   *  \return The n-th son or NULL. */
65346
79279
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
65347
79280
  CTree *Expr () const { return sons[0]; }
 
79281
  /** Replace a son.
 
79282
   *  \param old_son The son to replace.
 
79283
   *  \param new_son The new son. */
65348
79284
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65349
79285
    CTree::ReplaceSon (sons, 2, old_son, new_son);
65350
79286
  }
65351
79287
};
65352
79288
 
65353
79289
 
65354
 
#line 65355 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79290
#line 79291 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65355
79291
} // closed Puma
 
79292
class CCExprResolve;
 
79293
class CExprResolve;
65356
79294
class WinIfExists;
65357
79295
class WinImportHandler;
65358
79296
class WinMacros;
65359
 
class CMatchSyntax;
65360
 
class ExtGnu;
 
79297
class WinAsm;
 
79298
class WinDeclSpecs;
 
79299
class WinMemberExplSpec;
 
79300
class WinTypeKeywords;
 
79301
class WinFriend;
65361
79302
class ExtAC;
65362
79303
class ExtACBuilderCoupling;
65363
79304
class ExtACSyntaxCoupling;
65364
79305
class ExtACTree;
65365
79306
class ExtACKeywords;
65366
 
class WinAsm;
65367
 
class WinDeclSpecs;
65368
 
class WinMemberExplSpec;
65369
 
class WinTypeKeywords;
 
79307
class ExtGnu;
65370
79308
class PragmaOnceUnitState;
65371
79309
class PragmaOnce;
65372
 
class CCExprResolve;
65373
 
class CExprResolve;
 
79310
class CMatchSyntax;
65374
79311
namespace Puma {
65375
79312
 
65376
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79313
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65377
79314
class CT_DeclStmt : public CT_Statement {
65378
 
#line 65379 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79315
#line 79316 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
79316
  friend class ::CCExprResolve;
 
79317
  friend class ::CExprResolve;
65379
79318
  friend class ::WinIfExists;
65380
79319
  friend class ::WinImportHandler;
65381
79320
  friend class ::WinMacros;
65382
 
  friend class ::CMatchSyntax;
65383
 
  friend class ::ExtGnu;
 
79321
  friend class ::WinAsm;
 
79322
  friend class ::WinDeclSpecs;
 
79323
  friend class ::WinMemberExplSpec;
 
79324
  friend class ::WinTypeKeywords;
 
79325
  friend class ::WinFriend;
65384
79326
  friend class ::ExtAC;
65385
79327
  friend class ::ExtACBuilderCoupling;
65386
79328
  friend class ::ExtACSyntaxCoupling;
65387
79329
  friend class ::ExtACTree;
65388
79330
  friend class ::ExtACKeywords;
65389
 
  friend class ::WinAsm;
65390
 
  friend class ::WinDeclSpecs;
65391
 
  friend class ::WinMemberExplSpec;
65392
 
  friend class ::WinTypeKeywords;
 
79331
  friend class ::ExtGnu;
65393
79332
  friend class ::PragmaOnceUnitState;
65394
79333
  friend class ::PragmaOnce;
65395
 
  friend class ::CCExprResolve;
65396
 
  friend class ::CExprResolve;
 
79334
  friend class ::CMatchSyntax;
65397
79335
 
65398
 
#line 1740 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79336
#line 3061 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65399
79337
 
65400
79338
  CTree *_decl;
65401
79339
 
65402
79340
public:
65403
 
  CT_DeclStmt (CTree *decl) : _decl (decl) {}
 
79341
  CT_DeclStmt (CTree *decl) { AddSon (_decl, decl); }
 
79342
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65404
79343
  static const char *NodeId ();
 
79344
  /** Get the name of the node. Can be compared with NodeId(). */
65405
79345
  const char *NodeName () const { return NodeId (); }
 
79346
  /** Get the number of sons. */
65406
79347
  int Sons () const { return 1; }
 
79348
  /** Get the n-th son.
 
79349
   *  \param n The index of the son.
 
79350
   *  \return The n-th son or NULL. */
65407
79351
  CTree *Son (int n) const { return n == 0 ? _decl : (CTree*)0; }
 
79352
  /** Replace a son.
 
79353
   *  \param old_son The son to replace.
 
79354
   *  \param new_son The new son. */
65408
79355
  void ReplaceSon (CTree *old_son, CTree *new_son) 
65409
 
   { if (old_son == _decl) _decl = new_son; }
 
79356
   { CTree::ReplaceSon (_decl, old_son, new_son); }
65410
79357
};
65411
79358
 
65412
79359
 
65413
 
#line 65414 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79360
#line 79361 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65414
79361
} // closed Puma
 
79362
class CCExprResolve;
 
79363
class CExprResolve;
65415
79364
class WinIfExists;
65416
79365
class WinImportHandler;
65417
79366
class WinMacros;
65418
 
class CMatchSyntax;
65419
 
class ExtGnu;
 
79367
class WinAsm;
 
79368
class WinDeclSpecs;
 
79369
class WinMemberExplSpec;
 
79370
class WinTypeKeywords;
 
79371
class WinFriend;
65420
79372
class ExtAC;
65421
79373
class ExtACBuilderCoupling;
65422
79374
class ExtACSyntaxCoupling;
65423
79375
class ExtACTree;
65424
79376
class ExtACKeywords;
65425
 
class WinAsm;
65426
 
class WinDeclSpecs;
65427
 
class WinMemberExplSpec;
65428
 
class WinTypeKeywords;
 
79377
class ExtGnu;
65429
79378
class PragmaOnceUnitState;
65430
79379
class PragmaOnce;
65431
 
class CCExprResolve;
65432
 
class CExprResolve;
 
79380
class CMatchSyntax;
65433
79381
namespace Puma {
65434
79382
 
65435
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79383
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65436
79384
class CT_SwitchStmt : public CT_Statement, public CSemScope {
65437
 
#line 65438 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79385
#line 79386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
79386
  friend class ::CCExprResolve;
 
79387
  friend class ::CExprResolve;
65438
79388
  friend class ::WinIfExists;
65439
79389
  friend class ::WinImportHandler;
65440
79390
  friend class ::WinMacros;
65441
 
  friend class ::CMatchSyntax;
65442
 
  friend class ::ExtGnu;
 
79391
  friend class ::WinAsm;
 
79392
  friend class ::WinDeclSpecs;
 
79393
  friend class ::WinMemberExplSpec;
 
79394
  friend class ::WinTypeKeywords;
 
79395
  friend class ::WinFriend;
65443
79396
  friend class ::ExtAC;
65444
79397
  friend class ::ExtACBuilderCoupling;
65445
79398
  friend class ::ExtACSyntaxCoupling;
65446
79399
  friend class ::ExtACTree;
65447
79400
  friend class ::ExtACKeywords;
65448
 
  friend class ::WinAsm;
65449
 
  friend class ::WinDeclSpecs;
65450
 
  friend class ::WinMemberExplSpec;
65451
 
  friend class ::WinTypeKeywords;
 
79401
  friend class ::ExtGnu;
65452
79402
  friend class ::PragmaOnceUnitState;
65453
79403
  friend class ::PragmaOnce;
65454
 
  friend class ::CCExprResolve;
65455
 
  friend class ::CExprResolve;
 
79404
  friend class ::CMatchSyntax;
65456
79405
 
65457
 
#line 1753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79406
#line 3083 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65458
79407
 
65459
79408
  CTree *sons[5]; // keyword, open, cond, close, stmt
65460
79409
 
65461
79410
public:
65462
79411
  CT_SwitchStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
65463
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
79412
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
79413
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
65464
79414
  }
 
79415
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65465
79416
  static const char *NodeId ();
 
79417
  /** Get the name of the node. Can be compared with NodeId(). */
65466
79418
  const char *NodeName () const { return NodeId (); }
 
79419
  /** Get the number of sons. */
65467
79420
  int Sons () const { return 5; }
 
79421
  /** Get the n-th son.
 
79422
   *  \param n The index of the son.
 
79423
   *  \return The n-th son or NULL. */
65468
79424
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
65469
79425
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
65470
79426
  CTree *Condition () const { return sons[2]; }
 
79427
  /** Replace a son.
 
79428
   *  \param old_son The son to replace.
 
79429
   *  \param new_son The new son. */
65471
79430
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65472
79431
    CTree::ReplaceSon (sons, 5, old_son, new_son);
65473
79432
  }
 
79433
  CSemScope *SemScope () const { return (CSemScope*)this; }
65474
79434
};
65475
79435
 
65476
79436
 
65477
 
#line 65478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79437
#line 79438 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65478
79438
} // closed Puma
 
79439
class CCExprResolve;
 
79440
class CExprResolve;
65479
79441
class WinIfExists;
65480
79442
class WinImportHandler;
65481
79443
class WinMacros;
65482
 
class CMatchSyntax;
65483
 
class ExtGnu;
 
79444
class WinAsm;
 
79445
class WinDeclSpecs;
 
79446
class WinMemberExplSpec;
 
79447
class WinTypeKeywords;
 
79448
class WinFriend;
65484
79449
class ExtAC;
65485
79450
class ExtACBuilderCoupling;
65486
79451
class ExtACSyntaxCoupling;
65487
79452
class ExtACTree;
65488
79453
class ExtACKeywords;
65489
 
class WinAsm;
65490
 
class WinDeclSpecs;
65491
 
class WinMemberExplSpec;
65492
 
class WinTypeKeywords;
 
79454
class ExtGnu;
65493
79455
class PragmaOnceUnitState;
65494
79456
class PragmaOnce;
65495
 
class CCExprResolve;
65496
 
class CExprResolve;
 
79457
class CMatchSyntax;
65497
79458
namespace Puma {
65498
79459
 
65499
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79460
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65500
79461
class CT_IfStmt : public CT_Statement, public CSemScope {
65501
 
#line 65502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79462
#line 79463 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
79463
  friend class ::CCExprResolve;
 
79464
  friend class ::CExprResolve;
65502
79465
  friend class ::WinIfExists;
65503
79466
  friend class ::WinImportHandler;
65504
79467
  friend class ::WinMacros;
65505
 
  friend class ::CMatchSyntax;
65506
 
  friend class ::ExtGnu;
 
79468
  friend class ::WinAsm;
 
79469
  friend class ::WinDeclSpecs;
 
79470
  friend class ::WinMemberExplSpec;
 
79471
  friend class ::WinTypeKeywords;
 
79472
  friend class ::WinFriend;
65507
79473
  friend class ::ExtAC;
65508
79474
  friend class ::ExtACBuilderCoupling;
65509
79475
  friend class ::ExtACSyntaxCoupling;
65510
79476
  friend class ::ExtACTree;
65511
79477
  friend class ::ExtACKeywords;
65512
 
  friend class ::WinAsm;
65513
 
  friend class ::WinDeclSpecs;
65514
 
  friend class ::WinMemberExplSpec;
65515
 
  friend class ::WinTypeKeywords;
 
79478
  friend class ::ExtGnu;
65516
79479
  friend class ::PragmaOnceUnitState;
65517
79480
  friend class ::PragmaOnce;
65518
 
  friend class ::CCExprResolve;
65519
 
  friend class ::CExprResolve;
 
79481
  friend class ::CMatchSyntax;
65520
79482
 
65521
 
#line 1771 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79483
#line 3112 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65522
79484
 
65523
79485
  CTree *sons[5]; // keyword, open, cond, close, stmt
65524
79486
 
65525
79487
public:
65526
79488
  CT_IfStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
65527
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
79489
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
79490
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
65528
79491
  }
 
79492
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65529
79493
  static const char *NodeId ();
 
79494
  /** Get the name of the node. Can be compared with NodeId(). */
65530
79495
  const char *NodeName () const { return NodeId (); }
 
79496
  /** Get the number of sons. */
65531
79497
  int Sons () const { return 5; }
 
79498
  /** Get the n-th son.
 
79499
   *  \param n The index of the son.
 
79500
   *  \return The n-th son or NULL. */
65532
79501
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
65533
79502
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
65534
79503
  CTree *Condition () const { return sons[2]; }
 
79504
  /** Replace a son.
 
79505
   *  \param old_son The son to replace.
 
79506
   *  \param new_son The new son. */
65535
79507
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65536
79508
    CTree::ReplaceSon (sons, 5, old_son, new_son);
65537
79509
  }
 
79510
  CSemScope *SemScope () const { return (CSemScope*)this; }
65538
79511
};
65539
79512
 
65540
79513
 
65541
 
#line 65542 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79514
#line 79515 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65542
79515
} // closed Puma
 
79516
class CCExprResolve;
 
79517
class CExprResolve;
65543
79518
class WinIfExists;
65544
79519
class WinImportHandler;
65545
79520
class WinMacros;
65546
 
class CMatchSyntax;
65547
 
class ExtGnu;
 
79521
class WinAsm;
 
79522
class WinDeclSpecs;
 
79523
class WinMemberExplSpec;
 
79524
class WinTypeKeywords;
 
79525
class WinFriend;
65548
79526
class ExtAC;
65549
79527
class ExtACBuilderCoupling;
65550
79528
class ExtACSyntaxCoupling;
65551
79529
class ExtACTree;
65552
79530
class ExtACKeywords;
65553
 
class WinAsm;
65554
 
class WinDeclSpecs;
65555
 
class WinMemberExplSpec;
65556
 
class WinTypeKeywords;
 
79531
class ExtGnu;
65557
79532
class PragmaOnceUnitState;
65558
79533
class PragmaOnce;
65559
 
class CCExprResolve;
65560
 
class CExprResolve;
 
79534
class CMatchSyntax;
65561
79535
namespace Puma {
65562
79536
 
65563
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79537
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65564
79538
class CT_IfElseStmt : public CT_Statement, public CSemScope {
65565
 
#line 65566 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79539
#line 79540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
79540
  friend class ::CCExprResolve;
 
79541
  friend class ::CExprResolve;
65566
79542
  friend class ::WinIfExists;
65567
79543
  friend class ::WinImportHandler;
65568
79544
  friend class ::WinMacros;
65569
 
  friend class ::CMatchSyntax;
65570
 
  friend class ::ExtGnu;
 
79545
  friend class ::WinAsm;
 
79546
  friend class ::WinDeclSpecs;
 
79547
  friend class ::WinMemberExplSpec;
 
79548
  friend class ::WinTypeKeywords;
 
79549
  friend class ::WinFriend;
65571
79550
  friend class ::ExtAC;
65572
79551
  friend class ::ExtACBuilderCoupling;
65573
79552
  friend class ::ExtACSyntaxCoupling;
65574
79553
  friend class ::ExtACTree;
65575
79554
  friend class ::ExtACKeywords;
65576
 
  friend class ::WinAsm;
65577
 
  friend class ::WinDeclSpecs;
65578
 
  friend class ::WinMemberExplSpec;
65579
 
  friend class ::WinTypeKeywords;
 
79555
  friend class ::ExtGnu;
65580
79556
  friend class ::PragmaOnceUnitState;
65581
79557
  friend class ::PragmaOnce;
65582
 
  friend class ::CCExprResolve;
65583
 
  friend class ::CExprResolve;
 
79558
  friend class ::CMatchSyntax;
65584
79559
 
65585
 
#line 1789 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79560
#line 3141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65586
79561
 
65587
79562
  CTree *sons[7]; // if, open, cond, close, if_stmt, else, else_stmt
65588
79563
 
65589
79564
public:
65590
79565
  CT_IfElseStmt (CTree *i, CTree *o, CTree *cond, CTree *c, 
65591
79566
                 CTree *is, CTree *e, CTree *es) {
65592
 
    sons[0] = i; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = is; 
65593
 
    sons[5] = e; sons[6] = es; 
 
79567
    AddSon (sons[0], i); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
79568
    AddSon (sons[3], c); AddSon (sons[4], is); AddSon (sons[5], e); 
 
79569
    AddSon (sons[6], es); 
65594
79570
  }
 
79571
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65595
79572
  static const char *NodeId ();
 
79573
  /** Get the name of the node. Can be compared with NodeId(). */
65596
79574
  const char *NodeName () const { return NodeId (); }
 
79575
  /** Get the number of sons. */
65597
79576
  int Sons () const { return 7; }
 
79577
  /** Get the n-th son.
 
79578
   *  \param n The index of the son.
 
79579
   *  \return The n-th son or NULL. */
65598
79580
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
65599
79581
  CTree *Condition () const { return sons[2]; }
65600
79582
  CT_Statement *IfPart () const { return (CT_Statement*)sons[4]; }
65601
79583
  CT_Statement *ElsePart () const { return (CT_Statement*)sons[6]; }
 
79584
  /** Replace a son.
 
79585
   *  \param old_son The son to replace.
 
79586
   *  \param new_son The new son. */
65602
79587
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65603
79588
    CTree::ReplaceSon (sons, 7, old_son, new_son);
65604
79589
  }
 
79590
  CSemScope *SemScope () const { return (CSemScope*)this; }
65605
79591
};
65606
79592
 
65607
79593
 
65608
 
#line 65609 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79594
#line 79595 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65609
79595
} // closed Puma
 
79596
class CCExprResolve;
 
79597
class CExprResolve;
65610
79598
class WinIfExists;
65611
79599
class WinImportHandler;
65612
79600
class WinMacros;
65613
 
class CMatchSyntax;
65614
 
class ExtGnu;
 
79601
class WinAsm;
 
79602
class WinDeclSpecs;
 
79603
class WinMemberExplSpec;
 
79604
class WinTypeKeywords;
 
79605
class WinFriend;
65615
79606
class ExtAC;
65616
79607
class ExtACBuilderCoupling;
65617
79608
class ExtACSyntaxCoupling;
65618
79609
class ExtACTree;
65619
79610
class ExtACKeywords;
65620
 
class WinAsm;
65621
 
class WinDeclSpecs;
65622
 
class WinMemberExplSpec;
65623
 
class WinTypeKeywords;
 
79611
class ExtGnu;
65624
79612
class PragmaOnceUnitState;
65625
79613
class PragmaOnce;
65626
 
class CCExprResolve;
65627
 
class CExprResolve;
 
79614
class CMatchSyntax;
65628
79615
namespace Puma {
65629
79616
 
65630
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79617
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65631
79618
class CT_BreakStmt : public CT_Statement {
65632
 
#line 65633 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79619
#line 79620 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
79620
  friend class ::CCExprResolve;
 
79621
  friend class ::CExprResolve;
65633
79622
  friend class ::WinIfExists;
65634
79623
  friend class ::WinImportHandler;
65635
79624
  friend class ::WinMacros;
65636
 
  friend class ::CMatchSyntax;
65637
 
  friend class ::ExtGnu;
 
79625
  friend class ::WinAsm;
 
79626
  friend class ::WinDeclSpecs;
 
79627
  friend class ::WinMemberExplSpec;
 
79628
  friend class ::WinTypeKeywords;
 
79629
  friend class ::WinFriend;
65638
79630
  friend class ::ExtAC;
65639
79631
  friend class ::ExtACBuilderCoupling;
65640
79632
  friend class ::ExtACSyntaxCoupling;
65641
79633
  friend class ::ExtACTree;
65642
79634
  friend class ::ExtACKeywords;
65643
 
  friend class ::WinAsm;
65644
 
  friend class ::WinDeclSpecs;
65645
 
  friend class ::WinMemberExplSpec;
65646
 
  friend class ::WinTypeKeywords;
 
79635
  friend class ::ExtGnu;
65647
79636
  friend class ::PragmaOnceUnitState;
65648
79637
  friend class ::PragmaOnce;
65649
 
  friend class ::CCExprResolve;
65650
 
  friend class ::CExprResolve;
 
79638
  friend class ::CMatchSyntax;
65651
79639
 
65652
 
#line 1810 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79640
#line 3173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65653
79641
 
65654
79642
  CTree *sons[2]; // key, semi_colon
65655
79643
 
65656
79644
public:
65657
 
  CT_BreakStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
79645
  CT_BreakStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
79646
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65658
79647
  static const char *NodeId ();
 
79648
  /** Get the name of the node. Can be compared with NodeId(). */
65659
79649
  const char *NodeName () const { return NodeId (); }
 
79650
  /** Get the number of sons. */
65660
79651
  int Sons () const { return 2; }
 
79652
  /** Get the n-th son.
 
79653
   *  \param n The index of the son.
 
79654
   *  \return The n-th son or NULL. */
65661
79655
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
79656
  /** Replace a son.
 
79657
   *  \param old_son The son to replace.
 
79658
   *  \param new_son The new son. */
65662
79659
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65663
79660
    CTree::ReplaceSon (sons, 2, old_son, new_son);
65664
79661
  }
65665
79662
};
65666
79663
 
65667
79664
 
65668
 
#line 65669 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79665
#line 79666 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65669
79666
} // closed Puma
 
79667
class CCExprResolve;
 
79668
class CExprResolve;
65670
79669
class WinIfExists;
65671
79670
class WinImportHandler;
65672
79671
class WinMacros;
65673
 
class CMatchSyntax;
65674
 
class ExtGnu;
 
79672
class WinAsm;
 
79673
class WinDeclSpecs;
 
79674
class WinMemberExplSpec;
 
79675
class WinTypeKeywords;
 
79676
class WinFriend;
65675
79677
class ExtAC;
65676
79678
class ExtACBuilderCoupling;
65677
79679
class ExtACSyntaxCoupling;
65678
79680
class ExtACTree;
65679
79681
class ExtACKeywords;
65680
 
class WinAsm;
65681
 
class WinDeclSpecs;
65682
 
class WinMemberExplSpec;
65683
 
class WinTypeKeywords;
 
79682
class ExtGnu;
65684
79683
class PragmaOnceUnitState;
65685
79684
class PragmaOnce;
65686
 
class CCExprResolve;
65687
 
class CExprResolve;
 
79685
class CMatchSyntax;
65688
79686
namespace Puma {
65689
79687
 
65690
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79688
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65691
79689
class CT_ContinueStmt : public CT_Statement {
65692
 
#line 65693 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79690
#line 79691 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
79691
  friend class ::CCExprResolve;
 
79692
  friend class ::CExprResolve;
65693
79693
  friend class ::WinIfExists;
65694
79694
  friend class ::WinImportHandler;
65695
79695
  friend class ::WinMacros;
65696
 
  friend class ::CMatchSyntax;
65697
 
  friend class ::ExtGnu;
 
79696
  friend class ::WinAsm;
 
79697
  friend class ::WinDeclSpecs;
 
79698
  friend class ::WinMemberExplSpec;
 
79699
  friend class ::WinTypeKeywords;
 
79700
  friend class ::WinFriend;
65698
79701
  friend class ::ExtAC;
65699
79702
  friend class ::ExtACBuilderCoupling;
65700
79703
  friend class ::ExtACSyntaxCoupling;
65701
79704
  friend class ::ExtACTree;
65702
79705
  friend class ::ExtACKeywords;
65703
 
  friend class ::WinAsm;
65704
 
  friend class ::WinDeclSpecs;
65705
 
  friend class ::WinMemberExplSpec;
65706
 
  friend class ::WinTypeKeywords;
 
79706
  friend class ::ExtGnu;
65707
79707
  friend class ::PragmaOnceUnitState;
65708
79708
  friend class ::PragmaOnce;
65709
 
  friend class ::CCExprResolve;
65710
 
  friend class ::CExprResolve;
 
79709
  friend class ::CMatchSyntax;
65711
79710
 
65712
 
#line 1824 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79711
#line 3196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65713
79712
 
65714
79713
  CTree *sons[2]; // key, semi_colon
65715
79714
 
65716
79715
public:
65717
 
  CT_ContinueStmt (CTree *key, CTree *sc) { sons[0] = key; sons[1] = sc; }
 
79716
  CT_ContinueStmt (CTree *key, CTree *sc) { AddSon (sons[0], key); AddSon (sons[1], sc); }
 
79717
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65718
79718
  static const char *NodeId ();
 
79719
  /** Get the name of the node. Can be compared with NodeId(). */
65719
79720
  const char *NodeName () const { return NodeId (); }
 
79721
  /** Get the number of sons. */
65720
79722
  int Sons () const { return 2; }
 
79723
  /** Get the n-th son.
 
79724
   *  \param n The index of the son.
 
79725
   *  \return The n-th son or NULL. */
65721
79726
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
79727
  /** Replace a son.
 
79728
   *  \param old_son The son to replace.
 
79729
   *  \param new_son The new son. */
65722
79730
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65723
79731
    CTree::ReplaceSon (sons, 2, old_son, new_son);
65724
79732
  }
65725
79733
};
65726
79734
 
65727
79735
 
65728
 
#line 65729 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79736
#line 79737 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65729
79737
} // closed Puma
 
79738
class CCExprResolve;
 
79739
class CExprResolve;
65730
79740
class WinIfExists;
65731
79741
class WinImportHandler;
65732
79742
class WinMacros;
65733
 
class CMatchSyntax;
65734
 
class ExtGnu;
 
79743
class WinAsm;
 
79744
class WinDeclSpecs;
 
79745
class WinMemberExplSpec;
 
79746
class WinTypeKeywords;
 
79747
class WinFriend;
65735
79748
class ExtAC;
65736
79749
class ExtACBuilderCoupling;
65737
79750
class ExtACSyntaxCoupling;
65738
79751
class ExtACTree;
65739
79752
class ExtACKeywords;
65740
 
class WinAsm;
65741
 
class WinDeclSpecs;
65742
 
class WinMemberExplSpec;
65743
 
class WinTypeKeywords;
 
79753
class ExtGnu;
65744
79754
class PragmaOnceUnitState;
65745
79755
class PragmaOnce;
65746
 
class CCExprResolve;
65747
 
class CExprResolve;
 
79756
class CMatchSyntax;
65748
79757
namespace Puma {
65749
79758
 
65750
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79759
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65751
79760
class CT_GotoStmt : public CT_Statement {
65752
 
#line 65753 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79761
#line 79762 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
79762
  friend class ::CCExprResolve;
 
79763
  friend class ::CExprResolve;
65753
79764
  friend class ::WinIfExists;
65754
79765
  friend class ::WinImportHandler;
65755
79766
  friend class ::WinMacros;
65756
 
  friend class ::CMatchSyntax;
65757
 
  friend class ::ExtGnu;
 
79767
  friend class ::WinAsm;
 
79768
  friend class ::WinDeclSpecs;
 
79769
  friend class ::WinMemberExplSpec;
 
79770
  friend class ::WinTypeKeywords;
 
79771
  friend class ::WinFriend;
65758
79772
  friend class ::ExtAC;
65759
79773
  friend class ::ExtACBuilderCoupling;
65760
79774
  friend class ::ExtACSyntaxCoupling;
65761
79775
  friend class ::ExtACTree;
65762
79776
  friend class ::ExtACKeywords;
65763
 
  friend class ::WinAsm;
65764
 
  friend class ::WinDeclSpecs;
65765
 
  friend class ::WinMemberExplSpec;
65766
 
  friend class ::WinTypeKeywords;
 
79777
  friend class ::ExtGnu;
65767
79778
  friend class ::PragmaOnceUnitState;
65768
79779
  friend class ::PragmaOnce;
65769
 
  friend class ::CCExprResolve;
65770
 
  friend class ::CExprResolve;
 
79780
  friend class ::CMatchSyntax;
65771
79781
 
65772
 
#line 1838 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79782
#line 3219 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65773
79783
 
65774
79784
  CTree *sons[3]; // key, label, semi_colon
65775
79785
 
65776
79786
public:
65777
79787
  CT_GotoStmt (CTree *key, CTree *l, CTree *sc) {
65778
 
    sons[0] = key; sons[1] = l; sons[2] = sc; 
 
79788
    AddSon (sons[0], key); AddSon (sons[1], l); AddSon (sons[2], sc); 
65779
79789
  }
 
79790
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65780
79791
  static const char *NodeId ();
 
79792
  /** Get the name of the node. Can be compared with NodeId(). */
65781
79793
  const char *NodeName () const { return NodeId (); }
 
79794
  /** Get the number of sons. */
65782
79795
  int Sons () const { return 3; }
 
79796
  /** Get the n-th son.
 
79797
   *  \param n The index of the son.
 
79798
   *  \return The n-th son or NULL. */
65783
79799
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
65784
79800
  CT_SimpleName *Label () const { return (CT_SimpleName*)sons[1]; }
 
79801
  /** Replace a son.
 
79802
   *  \param old_son The son to replace.
 
79803
   *  \param new_son The new son. */
65785
79804
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65786
79805
    CTree::ReplaceSon (sons, 3, old_son, new_son);
65787
79806
  }
65788
79807
};
65789
79808
 
65790
79809
 
65791
 
#line 65792 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79810
#line 79811 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65792
79811
} // closed Puma
 
79812
class CCExprResolve;
 
79813
class CExprResolve;
65793
79814
class WinIfExists;
65794
79815
class WinImportHandler;
65795
79816
class WinMacros;
65796
 
class CMatchSyntax;
65797
 
class ExtGnu;
 
79817
class WinAsm;
 
79818
class WinDeclSpecs;
 
79819
class WinMemberExplSpec;
 
79820
class WinTypeKeywords;
 
79821
class WinFriend;
65798
79822
class ExtAC;
65799
79823
class ExtACBuilderCoupling;
65800
79824
class ExtACSyntaxCoupling;
65801
79825
class ExtACTree;
65802
79826
class ExtACKeywords;
65803
 
class WinAsm;
65804
 
class WinDeclSpecs;
65805
 
class WinMemberExplSpec;
65806
 
class WinTypeKeywords;
 
79827
class ExtGnu;
65807
79828
class PragmaOnceUnitState;
65808
79829
class PragmaOnce;
65809
 
class CCExprResolve;
65810
 
class CExprResolve;
 
79830
class CMatchSyntax;
65811
79831
namespace Puma {
65812
79832
 
65813
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79833
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65814
79834
class CT_ReturnStmt : public CT_Statement {
65815
 
#line 65816 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79835
#line 79836 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
79836
  friend class ::CCExprResolve;
 
79837
  friend class ::CExprResolve;
65816
79838
  friend class ::WinIfExists;
65817
79839
  friend class ::WinImportHandler;
65818
79840
  friend class ::WinMacros;
65819
 
  friend class ::CMatchSyntax;
65820
 
  friend class ::ExtGnu;
 
79841
  friend class ::WinAsm;
 
79842
  friend class ::WinDeclSpecs;
 
79843
  friend class ::WinMemberExplSpec;
 
79844
  friend class ::WinTypeKeywords;
 
79845
  friend class ::WinFriend;
65821
79846
  friend class ::ExtAC;
65822
79847
  friend class ::ExtACBuilderCoupling;
65823
79848
  friend class ::ExtACSyntaxCoupling;
65824
79849
  friend class ::ExtACTree;
65825
79850
  friend class ::ExtACKeywords;
65826
 
  friend class ::WinAsm;
65827
 
  friend class ::WinDeclSpecs;
65828
 
  friend class ::WinMemberExplSpec;
65829
 
  friend class ::WinTypeKeywords;
 
79851
  friend class ::ExtGnu;
65830
79852
  friend class ::PragmaOnceUnitState;
65831
79853
  friend class ::PragmaOnce;
65832
 
  friend class ::CCExprResolve;
65833
 
  friend class ::CExprResolve;
 
79854
  friend class ::CMatchSyntax;
65834
79855
 
65835
 
#line 1855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79856
#line 3245 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65836
79857
 
65837
79858
  CTree *sons[3]; // key, expr, semi_colon
65838
79859
 
65839
79860
public:
65840
79861
  CT_ReturnStmt (CTree *key, CTree *e, CTree *sc) {
65841
 
    sons[0] = key; sons[1] = e; sons[2] = sc; 
 
79862
    AddSon (sons[0], key); AddSon (sons[1], e); AddSon (sons[2], sc); 
65842
79863
  }
 
79864
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65843
79865
  static const char *NodeId ();
 
79866
  /** Get the name of the node. Can be compared with NodeId(). */
65844
79867
  const char *NodeName () const { return NodeId (); }
 
79868
  /** Get the number of sons. */
65845
79869
  int Sons () const { return CTree::Sons (sons, 3); }
 
79870
  /** Get the n-th son.
 
79871
   *  \param n The index of the son.
 
79872
   *  \return The n-th son or NULL. */
65846
79873
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
65847
79874
  CTree *Expr () const { return sons[1]; }
 
79875
  /** Replace a son.
 
79876
   *  \param old_son The son to replace.
 
79877
   *  \param new_son The new son. */
65848
79878
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65849
79879
    CTree::ReplaceSon (sons, 3, old_son, new_son);
65850
79880
  }
65851
79881
};
65852
79882
 
65853
79883
 
65854
 
#line 65855 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79884
#line 79885 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65855
79885
} // closed Puma
 
79886
class CCExprResolve;
 
79887
class CExprResolve;
65856
79888
class WinIfExists;
65857
79889
class WinImportHandler;
65858
79890
class WinMacros;
65859
 
class CMatchSyntax;
65860
 
class ExtGnu;
 
79891
class WinAsm;
 
79892
class WinDeclSpecs;
 
79893
class WinMemberExplSpec;
 
79894
class WinTypeKeywords;
 
79895
class WinFriend;
65861
79896
class ExtAC;
65862
79897
class ExtACBuilderCoupling;
65863
79898
class ExtACSyntaxCoupling;
65864
79899
class ExtACTree;
65865
79900
class ExtACKeywords;
65866
 
class WinAsm;
65867
 
class WinDeclSpecs;
65868
 
class WinMemberExplSpec;
65869
 
class WinTypeKeywords;
 
79901
class ExtGnu;
65870
79902
class PragmaOnceUnitState;
65871
79903
class PragmaOnce;
65872
 
class CCExprResolve;
65873
 
class CExprResolve;
 
79904
class CMatchSyntax;
65874
79905
namespace Puma {
65875
79906
 
65876
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79907
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65877
79908
class CT_WhileStmt : public CT_Statement, public CSemScope {
65878
 
#line 65879 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79909
#line 79910 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
79910
  friend class ::CCExprResolve;
 
79911
  friend class ::CExprResolve;
65879
79912
  friend class ::WinIfExists;
65880
79913
  friend class ::WinImportHandler;
65881
79914
  friend class ::WinMacros;
65882
 
  friend class ::CMatchSyntax;
65883
 
  friend class ::ExtGnu;
 
79915
  friend class ::WinAsm;
 
79916
  friend class ::WinDeclSpecs;
 
79917
  friend class ::WinMemberExplSpec;
 
79918
  friend class ::WinTypeKeywords;
 
79919
  friend class ::WinFriend;
65884
79920
  friend class ::ExtAC;
65885
79921
  friend class ::ExtACBuilderCoupling;
65886
79922
  friend class ::ExtACSyntaxCoupling;
65887
79923
  friend class ::ExtACTree;
65888
79924
  friend class ::ExtACKeywords;
65889
 
  friend class ::WinAsm;
65890
 
  friend class ::WinDeclSpecs;
65891
 
  friend class ::WinMemberExplSpec;
65892
 
  friend class ::WinTypeKeywords;
 
79925
  friend class ::ExtGnu;
65893
79926
  friend class ::PragmaOnceUnitState;
65894
79927
  friend class ::PragmaOnce;
65895
 
  friend class ::CCExprResolve;
65896
 
  friend class ::CExprResolve;
 
79928
  friend class ::CMatchSyntax;
65897
79929
 
65898
 
#line 1872 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79930
#line 3271 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65899
79931
 
65900
79932
  CTree *sons[5]; // key, open, cond, close, stmt
65901
79933
 
65902
79934
public:
65903
79935
  CT_WhileStmt (CTree *kw, CTree *o, CTree *cond, CTree *c, CTree *stmt) {
65904
 
    sons[0] = kw; sons[1] = o; sons[2] = cond; sons[3] = c; sons[4] = stmt; 
 
79936
    AddSon (sons[0], kw); AddSon (sons[1], o); AddSon (sons[2], cond); 
 
79937
    AddSon (sons[3], c); AddSon (sons[4], stmt); 
65905
79938
  }
 
79939
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65906
79940
  static const char *NodeId ();
 
79941
  /** Get the name of the node. Can be compared with NodeId(). */
65907
79942
  const char *NodeName () const { return NodeId (); }
 
79943
  /** Get the number of sons. */
65908
79944
  int Sons () const { return 5; }
 
79945
  /** Get the n-th son.
 
79946
   *  \param n The index of the son.
 
79947
   *  \return The n-th son or NULL. */
65909
79948
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
65910
79949
  CT_Statement *Statement () const { return (CT_Statement*)sons[4]; }
65911
79950
  CTree *Condition () const { return sons[2]; }
 
79951
  /** Replace a son.
 
79952
   *  \param old_son The son to replace.
 
79953
   *  \param new_son The new son. */
65912
79954
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65913
79955
    CTree::ReplaceSon (sons, 5, old_son, new_son);
65914
79956
  }
 
79957
  CSemScope *SemScope () const { return (CSemScope*)this; }
65915
79958
};
65916
79959
 
65917
79960
 
65918
 
#line 65919 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79961
#line 79962 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65919
79962
} // closed Puma
 
79963
class CCExprResolve;
 
79964
class CExprResolve;
65920
79965
class WinIfExists;
65921
79966
class WinImportHandler;
65922
79967
class WinMacros;
65923
 
class CMatchSyntax;
65924
 
class ExtGnu;
 
79968
class WinAsm;
 
79969
class WinDeclSpecs;
 
79970
class WinMemberExplSpec;
 
79971
class WinTypeKeywords;
 
79972
class WinFriend;
65925
79973
class ExtAC;
65926
79974
class ExtACBuilderCoupling;
65927
79975
class ExtACSyntaxCoupling;
65928
79976
class ExtACTree;
65929
79977
class ExtACKeywords;
65930
 
class WinAsm;
65931
 
class WinDeclSpecs;
65932
 
class WinMemberExplSpec;
65933
 
class WinTypeKeywords;
 
79978
class ExtGnu;
65934
79979
class PragmaOnceUnitState;
65935
79980
class PragmaOnce;
65936
 
class CCExprResolve;
65937
 
class CExprResolve;
 
79981
class CMatchSyntax;
65938
79982
namespace Puma {
65939
79983
 
65940
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
79984
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65941
79985
class CT_DoStmt : public CT_Statement {
65942
 
#line 65943 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
79986
#line 79987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
79987
  friend class ::CCExprResolve;
 
79988
  friend class ::CExprResolve;
65943
79989
  friend class ::WinIfExists;
65944
79990
  friend class ::WinImportHandler;
65945
79991
  friend class ::WinMacros;
65946
 
  friend class ::CMatchSyntax;
65947
 
  friend class ::ExtGnu;
 
79992
  friend class ::WinAsm;
 
79993
  friend class ::WinDeclSpecs;
 
79994
  friend class ::WinMemberExplSpec;
 
79995
  friend class ::WinTypeKeywords;
 
79996
  friend class ::WinFriend;
65948
79997
  friend class ::ExtAC;
65949
79998
  friend class ::ExtACBuilderCoupling;
65950
79999
  friend class ::ExtACSyntaxCoupling;
65951
80000
  friend class ::ExtACTree;
65952
80001
  friend class ::ExtACKeywords;
65953
 
  friend class ::WinAsm;
65954
 
  friend class ::WinDeclSpecs;
65955
 
  friend class ::WinMemberExplSpec;
65956
 
  friend class ::WinTypeKeywords;
 
80002
  friend class ::ExtGnu;
65957
80003
  friend class ::PragmaOnceUnitState;
65958
80004
  friend class ::PragmaOnce;
65959
 
  friend class ::CCExprResolve;
65960
 
  friend class ::CExprResolve;
 
80005
  friend class ::CMatchSyntax;
65961
80006
 
65962
 
#line 1890 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80007
#line 3300 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
65963
80008
 
65964
80009
  CTree *sons[7]; // do, stmt, while, open, expr, close, semi_colon
65965
80010
 
65966
80011
public:
65967
80012
  CT_DoStmt (CTree *d, CTree *stmt, CTree *w, CTree *o, CTree *e, 
65968
80013
             CTree *c, CTree *sc) {
65969
 
    sons[0] = d; sons[1] = stmt; sons[2] = w; sons[3] = o; sons[4] = e; 
65970
 
    sons[5] = c; sons[6] = sc; 
 
80014
    AddSon (sons[0], d); AddSon (sons[1], stmt); AddSon (sons[2], w); 
 
80015
    AddSon (sons[3], o); AddSon (sons[4], e); AddSon (sons[5], c); 
 
80016
    AddSon (sons[6], sc); 
65971
80017
  }
 
80018
  /** Get the identifier for this node type. Can be compared with NodeName(). */
65972
80019
  static const char *NodeId ();
 
80020
  /** Get the name of the node. Can be compared with NodeId(). */
65973
80021
  const char *NodeName () const { return NodeId (); }
 
80022
  /** Get the number of sons. */
65974
80023
  int Sons () const { return 7; }
 
80024
  /** Get the n-th son.
 
80025
   *  \param n The index of the son.
 
80026
   *  \return The n-th son or NULL. */
65975
80027
  CTree *Son (int n) const { return CTree::Son (sons, 7, n); }
65976
80028
  CT_Statement *Statement () const { return (CT_Statement*)sons[1]; }
65977
80029
  CTree *Expr () const { return sons[4]; }
 
80030
  /** Replace a son.
 
80031
   *  \param old_son The son to replace.
 
80032
   *  \param new_son The new son. */
65978
80033
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
65979
80034
    CTree::ReplaceSon (sons, 7, old_son, new_son);
65980
80035
  }
65981
80036
};
65982
80037
 
65983
80038
 
65984
 
#line 65985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80039
#line 80040 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
65985
80040
} // closed Puma
 
80041
class CCExprResolve;
 
80042
class CExprResolve;
65986
80043
class WinIfExists;
65987
80044
class WinImportHandler;
65988
80045
class WinMacros;
65989
 
class CMatchSyntax;
65990
 
class ExtGnu;
 
80046
class WinAsm;
 
80047
class WinDeclSpecs;
 
80048
class WinMemberExplSpec;
 
80049
class WinTypeKeywords;
 
80050
class WinFriend;
65991
80051
class ExtAC;
65992
80052
class ExtACBuilderCoupling;
65993
80053
class ExtACSyntaxCoupling;
65994
80054
class ExtACTree;
65995
80055
class ExtACKeywords;
65996
 
class WinAsm;
65997
 
class WinDeclSpecs;
65998
 
class WinMemberExplSpec;
65999
 
class WinTypeKeywords;
 
80056
class ExtGnu;
66000
80057
class PragmaOnceUnitState;
66001
80058
class PragmaOnce;
66002
 
class CCExprResolve;
66003
 
class CExprResolve;
 
80059
class CMatchSyntax;
66004
80060
namespace Puma {
66005
80061
 
66006
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80062
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66007
80063
class CT_ForStmt : public CT_Statement, public CSemScope {
66008
 
#line 66009 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80064
#line 80065 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80065
  friend class ::CCExprResolve;
 
80066
  friend class ::CExprResolve;
66009
80067
  friend class ::WinIfExists;
66010
80068
  friend class ::WinImportHandler;
66011
80069
  friend class ::WinMacros;
66012
 
  friend class ::CMatchSyntax;
66013
 
  friend class ::ExtGnu;
 
80070
  friend class ::WinAsm;
 
80071
  friend class ::WinDeclSpecs;
 
80072
  friend class ::WinMemberExplSpec;
 
80073
  friend class ::WinTypeKeywords;
 
80074
  friend class ::WinFriend;
66014
80075
  friend class ::ExtAC;
66015
80076
  friend class ::ExtACBuilderCoupling;
66016
80077
  friend class ::ExtACSyntaxCoupling;
66017
80078
  friend class ::ExtACTree;
66018
80079
  friend class ::ExtACKeywords;
66019
 
  friend class ::WinAsm;
66020
 
  friend class ::WinDeclSpecs;
66021
 
  friend class ::WinMemberExplSpec;
66022
 
  friend class ::WinTypeKeywords;
 
80080
  friend class ::ExtGnu;
66023
80081
  friend class ::PragmaOnceUnitState;
66024
80082
  friend class ::PragmaOnce;
66025
 
  friend class ::CCExprResolve;
66026
 
  friend class ::CExprResolve;
 
80083
  friend class ::CMatchSyntax;
66027
80084
 
66028
 
#line 1910 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80085
#line 3330 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66029
80086
 
66030
80087
  CTree *sons[8]; // key, open, init, cond, semi_colon, expr, close, stmt
66031
80088
 
66032
80089
public:
66033
80090
  CT_ForStmt (CTree *k, CTree *o, CTree *i, CTree *co, CTree *sc,
66034
80091
              CTree *e, CTree *c, CTree *stmt) {
66035
 
    sons[0] = k; sons[1] = o; sons[2] = i; sons[3] = co; 
66036
 
    sons[4] = sc; sons[5] = e; sons[6] = c; sons[7] = stmt; 
 
80092
    AddSon (sons[0], k); AddSon (sons[1], o); AddSon (sons[2], i); 
 
80093
    AddSon (sons[3], co); AddSon (sons[4], sc); AddSon (sons[5], e); 
 
80094
    AddSon (sons[6], c); AddSon (sons[7], stmt); 
66037
80095
  }
 
80096
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66038
80097
  static const char *NodeId ();
 
80098
  /** Get the name of the node. Can be compared with NodeId(). */
66039
80099
  const char *NodeName () const { return NodeId (); }
 
80100
  /** Get the number of sons. */
66040
80101
  int Sons () const { return CTree::Sons (sons, 8); }
 
80102
  /** Get the n-th son.
 
80103
   *  \param n The index of the son.
 
80104
   *  \return The n-th son or NULL. */
66041
80105
  CTree *Son (int n) const { return CTree::Son (sons, 8, n); }
66042
80106
  CTree *InitStmt () const { return sons[2]; }
66043
80107
  CTree *Condition () const { return sons[3]; }
66044
80108
  CTree *Expr () const { return sons[5]; }
66045
80109
  CT_Statement *Statement () const { return (CT_Statement*)sons[7]; }
 
80110
  /** Replace a son.
 
80111
   *  \param old_son The son to replace.
 
80112
   *  \param new_son The new son. */
66046
80113
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66047
80114
    CTree::ReplaceSon (sons, 8, old_son, new_son);
66048
80115
  }
 
80116
  CSemScope *SemScope () const { return (CSemScope*)this; }
66049
80117
};
66050
80118
 
66051
80119
 
66052
 
#line 66053 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80120
#line 80121 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66053
80121
} // closed Puma
 
80122
class CCExprResolve;
 
80123
class CExprResolve;
66054
80124
class WinIfExists;
66055
80125
class WinImportHandler;
66056
80126
class WinMacros;
66057
 
class CMatchSyntax;
66058
 
class ExtGnu;
 
80127
class WinAsm;
 
80128
class WinDeclSpecs;
 
80129
class WinMemberExplSpec;
 
80130
class WinTypeKeywords;
 
80131
class WinFriend;
66059
80132
class ExtAC;
66060
80133
class ExtACBuilderCoupling;
66061
80134
class ExtACSyntaxCoupling;
66062
80135
class ExtACTree;
66063
80136
class ExtACKeywords;
66064
 
class WinAsm;
66065
 
class WinDeclSpecs;
66066
 
class WinMemberExplSpec;
66067
 
class WinTypeKeywords;
 
80137
class ExtGnu;
66068
80138
class PragmaOnceUnitState;
66069
80139
class PragmaOnce;
66070
 
class CCExprResolve;
66071
 
class CExprResolve;
 
80140
class CMatchSyntax;
66072
80141
namespace Puma {
66073
80142
 
66074
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80143
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66075
80144
class CT_Condition : public CT_Decl, public CSemObject {
66076
 
#line 66077 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80145
#line 80146 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80146
  friend class ::CCExprResolve;
 
80147
  friend class ::CExprResolve;
66077
80148
  friend class ::WinIfExists;
66078
80149
  friend class ::WinImportHandler;
66079
80150
  friend class ::WinMacros;
66080
 
  friend class ::CMatchSyntax;
66081
 
  friend class ::ExtGnu;
 
80151
  friend class ::WinAsm;
 
80152
  friend class ::WinDeclSpecs;
 
80153
  friend class ::WinMemberExplSpec;
 
80154
  friend class ::WinTypeKeywords;
 
80155
  friend class ::WinFriend;
66082
80156
  friend class ::ExtAC;
66083
80157
  friend class ::ExtACBuilderCoupling;
66084
80158
  friend class ::ExtACSyntaxCoupling;
66085
80159
  friend class ::ExtACTree;
66086
80160
  friend class ::ExtACKeywords;
66087
 
  friend class ::WinAsm;
66088
 
  friend class ::WinDeclSpecs;
66089
 
  friend class ::WinMemberExplSpec;
66090
 
  friend class ::WinTypeKeywords;
 
80161
  friend class ::ExtGnu;
66091
80162
  friend class ::PragmaOnceUnitState;
66092
80163
  friend class ::PragmaOnce;
66093
 
  friend class ::CCExprResolve;
66094
 
  friend class ::CExprResolve;
 
80164
  friend class ::CMatchSyntax;
66095
80165
 
66096
 
#line 1932 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80166
#line 3363 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66097
80167
 
66098
80168
  CTree *sons[3]; // declspecs, declarator, init
66099
80169
 
66100
80170
public:
66101
80171
  CT_Condition (CTree *dsl, CTree *d) {
66102
 
    sons[0] = dsl; sons[1] = d; sons[2] = 0;
 
80172
    AddSon (sons[0], dsl); AddSon (sons[1], d); AddSon (sons[2], 0);
66103
80173
  }
 
80174
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66104
80175
  static const char *NodeId ();
 
80176
  /** Get the name of the node. Can be compared with NodeId(). */
66105
80177
  const char *NodeName () const { return NodeId (); }
 
80178
  /** Get the number of sons. */
66106
80179
  int Sons () const { return CTree::Sons (sons, 3); }
 
80180
  /** Get the n-th son.
 
80181
   *  \param n The index of the son.
 
80182
   *  \return The n-th son or NULL. */
66107
80183
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
66108
80184
  CT_DeclSpecSeq *DeclSpecs () const { return (CT_DeclSpecSeq*)sons[0]; }
66109
80185
  CTree *Declarator () const { return sons[1]; }
66110
80186
  CT_ExprList *Initializer () const { return (CT_ExprList*)sons[2]; }
66111
80187
  CSemObject *SemObject () const { return (CSemObject*)this; }
66112
 
  void Initializer (CTree *i) { sons[2] = i; }
 
80188
  void Initializer (CTree *i) { AddSon (sons[2], i); }
 
80189
  /** Replace a son.
 
80190
   *  \param old_son The son to replace.
 
80191
   *  \param new_son The new son. */
66113
80192
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66114
80193
    CTree::ReplaceSon (sons, 3, old_son, new_son);
66115
80194
  }
66122
80201
/*****************************************************************************/
66123
80202
 
66124
80203
 
66125
 
#line 66126 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80204
#line 80205 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66126
80205
} // closed Puma
 
80206
class CCExprResolve;
 
80207
class CExprResolve;
66127
80208
class WinIfExists;
66128
80209
class WinImportHandler;
66129
80210
class WinMacros;
66130
 
class CMatchSyntax;
66131
 
class ExtGnu;
 
80211
class WinAsm;
 
80212
class WinDeclSpecs;
 
80213
class WinMemberExplSpec;
 
80214
class WinTypeKeywords;
 
80215
class WinFriend;
66132
80216
class ExtAC;
66133
80217
class ExtACBuilderCoupling;
66134
80218
class ExtACSyntaxCoupling;
66135
80219
class ExtACTree;
66136
80220
class ExtACKeywords;
66137
 
class WinAsm;
66138
 
class WinDeclSpecs;
66139
 
class WinMemberExplSpec;
66140
 
class WinTypeKeywords;
 
80221
class ExtGnu;
66141
80222
class PragmaOnceUnitState;
66142
80223
class PragmaOnce;
66143
 
class CCExprResolve;
66144
 
class CExprResolve;
66145
 
namespace Puma {
66146
 
 
66147
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80224
class CMatchSyntax;
 
80225
namespace Puma {
 
80226
 
 
80227
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80228
 
 
80229
#line 80230 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80230
} // closed Puma
 
80231
 
 
80232
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
80233
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
80234
#include "ExtACTree.ah"
 
80235
#endif
 
80236
namespace Puma {
 
80237
 
 
80238
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66148
80239
class CT_ClassDef : public CT_Decl, public CSemObject {
66149
 
#line 66150 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80240
#line 80241 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80241
  friend class ::CCExprResolve;
 
80242
  friend class ::CExprResolve;
66150
80243
  friend class ::WinIfExists;
66151
80244
  friend class ::WinImportHandler;
66152
80245
  friend class ::WinMacros;
66153
 
  friend class ::CMatchSyntax;
66154
 
  friend class ::ExtGnu;
 
80246
  friend class ::WinAsm;
 
80247
  friend class ::WinDeclSpecs;
 
80248
  friend class ::WinMemberExplSpec;
 
80249
  friend class ::WinTypeKeywords;
 
80250
  friend class ::WinFriend;
66155
80251
  friend class ::ExtAC;
66156
80252
  friend class ::ExtACBuilderCoupling;
66157
80253
  friend class ::ExtACSyntaxCoupling;
66158
80254
  friend class ::ExtACTree;
66159
80255
  friend class ::ExtACKeywords;
66160
 
  friend class ::WinAsm;
66161
 
  friend class ::WinDeclSpecs;
66162
 
  friend class ::WinMemberExplSpec;
66163
 
  friend class ::WinTypeKeywords;
 
80256
  friend class ::ExtGnu;
66164
80257
  friend class ::PragmaOnceUnitState;
66165
80258
  friend class ::PragmaOnce;
66166
 
  friend class ::CCExprResolve;
66167
 
  friend class ::CExprResolve;
 
80259
  friend class ::CMatchSyntax;
66168
80260
 
66169
 
#line 1959 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80261
#line 3399 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66170
80262
 
66171
80263
   
66172
 
#line 66173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80264
#line 80265 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66173
80265
 
66174
80266
  struct __ac_wrapper_sons {
66175
80267
    typedef ::Puma::CTree * E; typedef E A[4]; A _data;
66184
80276
    template <typename I> E& operator [] (I i) { return _data[i]; } // for VC++ 2003
66185
80277
    template <typename I> const E& operator [] (I i) const { return _data[i]; } // for VC++ 2003
66186
80278
  } sons
66187
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80279
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66188
80280
 
66189
 
#line 1960 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80281
#line 3400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66190
80282
; // key, name, bases, members
66191
80283
  CTree *obj_decl;
66192
80284
 
66193
80285
public:
66194
80286
  
66195
 
#line 66196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
66196
 
 
66197
 
 
66198
 
struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
66199
 
  typedef void Result;
66200
 
  typedef ::Puma::CT_ClassDef That;
66201
 
  typedef ::Puma::CT_ClassDef Target;
66202
 
  static const int JPID = 4;
 
80287
#line 80288 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80288
 
 
80289
 
 
80290
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 {
 
80291
  typedef TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 __TJP;
 
80292
  typedef TResult Result;
 
80293
  typedef TThat   That;
 
80294
  typedef TTarget Target;
 
80295
  enum { ARGS = TArgs::ARGS };
 
80296
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
80297
  static const int JPID = 55;
66203
80298
  static const AC::JPType JPTYPE = (AC::JPType)16;
66204
80299
  struct Res {
66205
80300
    typedef void Type;
66206
80301
    typedef void ReferredType;
66207
80302
  };
66208
 
  enum { ARGS = 3 };
66209
 
  template <int I, int DUMMY = 0> struct Arg {
66210
 
    typedef void Type;
66211
 
    typedef void ReferredType;
66212
 
  };
66213
 
  template <int DUMMY> struct Arg<0, DUMMY> {
66214
 
    typedef ::Puma::CTree * Type;
66215
 
    typedef ::Puma::CTree * ReferredType;
66216
 
  };
66217
 
  template <int DUMMY> struct Arg<1, DUMMY> {
66218
 
    typedef ::Puma::CTree * Type;
66219
 
    typedef ::Puma::CTree * ReferredType;
66220
 
  };
66221
 
  template <int DUMMY> struct Arg<2, DUMMY> {
66222
 
    typedef ::Puma::CTree * Type;
66223
 
    typedef ::Puma::CTree * ReferredType;
66224
 
  };
66225
80303
 
66226
80304
  That *_that;
66227
80305
 
66230
80308
};
66231
80309
 
66232
80310
 
66233
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80311
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66234
80312
CT_ClassDef (CTree * arg0, CTree * arg1, CTree * arg2 = (CTree*)0) 
66235
 
#line 66236 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80313
#line 80314 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66236
80314
{
66237
 
  TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0 tjp;
66238
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0::That*)this;
66239
 
this->__exec_old_C1(arg0, arg1, arg2);
66240
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1EPN4PumaE5CTreePN4PumaE5CTreePN4PumaE5CTree_0> (&tjp);
66241
 
 
 
80315
  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;
 
80316
    __TJP tjp;
 
80317
  tjp._that =  (__TJP::That*)this;
 
80318
    this->__exec_old_C1(arg0, arg1, arg2);
 
80319
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
 
80320
  
66242
80321
}
66243
 
inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
66244
 
#line 1964 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80322
__attribute__((always_inline)) inline void __exec_old_C1(::Puma::CTree * k,::Puma::CTree * n,::Puma::CTree * b)
 
80323
#line 3404 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66245
80324
{
66246
 
    sons[0] = k; sons[1] = n; sons[2] = b; sons[3] = 0; obj_decl = 0; 
 
80325
    AddSon (sons[0], k); AddSon (sons[1], n); AddSon (sons[2], b); 
 
80326
    AddSon (sons[3], 0); AddSon (obj_decl, 0); 
66247
80327
  }
 
80328
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66248
80329
  static const char *NodeId ();
 
80330
  /** Get the name of the node. Can be compared with NodeId(). */
66249
80331
  const char *NodeName () const { return NodeId (); }
 
80332
  /** Get the number of sons. */
66250
80333
  int Sons () const { return CTree::Sons (sons, 4); }
 
80334
  /** Get the n-th son.
 
80335
   *  \param n The index of the son.
 
80336
   *  \return The n-th son or NULL. */
66251
80337
  CTree *Son (int n) const { return CTree::Son (sons, 4, n); }
66252
80338
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[1]; }
66253
80339
  CT_MembList *Members () const { return (CT_MembList*)sons[3]; }
66254
80340
  CT_BaseSpecList *BaseClasses () const { return (CT_BaseSpecList*)sons[2]; }
66255
80341
  CT_ObjDecl *ObjDecl () const { return (CT_ObjDecl*)obj_decl; }
66256
80342
  CSemObject *SemObject () const { return (CSemObject*)this; }
66257
 
  void Members (CTree *m) { sons[3] = m; }
66258
 
  void BaseClasses (CTree *bc) { sons[2] = bc; }
66259
 
  void ObjDecl (CTree *od) { obj_decl = od; }
 
80343
  void Members (CTree *m) { AddSon (sons[3], m); }
 
80344
  void BaseClasses (CTree *bc) { AddSon (sons[2], bc); }
 
80345
  void ObjDecl (CTree *od) { AddSon (obj_decl, od); }
 
80346
  /** Replace a son.
 
80347
   *  \param old_son The son to replace.
 
80348
   *  \param new_son The new son. */
66260
80349
  void ReplaceSon (CTree *old_son, CTree *new_son) {
66261
 
    // &(...) is used here to avoid strange warnings by mingw32-g++
66262
 
    CTree::ReplaceSon (&(sons[0]), 4, old_son, new_son);
 
80350
    CTree::ReplaceSon (sons, 4, old_son, new_son);
66263
80351
  }
66264
80352
   private:
66265
80353
 
66266
 
#line 39 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACTree.ah"
66267
 
 CTree * _intro_members ;
 
80354
#line 37 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtACTree.ah"
 
80355
 Puma :: CTree * _intro_members ;
 
80356
Puma :: CTree * _base_intros ;
66268
80357
public :
66269
 
CTree * IntroMembers ( ) const { return _intro_members ; }
66270
 
void IntroMembers ( CTree * members ) { _intro_members = members ; }
66271
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66272
 
 
66273
 
#line 66274 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
66274
 
 
66275
 
struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
66276
 
  typedef void Result;
66277
 
  typedef ::Puma::CT_ClassDef That;
66278
 
  typedef ::Puma::CT_ClassDef Target;
66279
 
  static const int JPID = 4;
 
80358
Puma :: CTree * IntroMembers ( ) const { return _intro_members ; }
 
80359
void IntroMembers ( Puma :: CTree * members ) { _intro_members = members ; }
 
80360
Puma :: CTree * BaseIntros ( ) const { return _base_intros ; }
 
80361
void BaseIntros ( Puma :: CTree * bases ) { _base_intros = bases ; }
 
80362
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80363
 
 
80364
#line 80365 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80365
 
 
80366
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 {
 
80367
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 __TJP;
 
80368
  typedef TResult Result;
 
80369
  typedef TThat   That;
 
80370
  typedef TTarget Target;
 
80371
  enum { ARGS = TArgs::ARGS };
 
80372
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
80373
  static const int JPID = 6550;
66280
80374
  static const AC::JPType JPTYPE = (AC::JPType)16;
66281
80375
  struct Res {
66282
80376
    typedef void Type;
66283
80377
    typedef void ReferredType;
66284
80378
  };
66285
 
  enum { ARGS = 1 };
66286
 
  template <int I, int DUMMY = 0> struct Arg {
66287
 
    typedef void Type;
66288
 
    typedef void ReferredType;
66289
 
  };
66290
 
  template <int DUMMY> struct Arg<0, DUMMY> {
66291
 
    typedef const ::Puma::CT_ClassDef & Type;
66292
 
    typedef const ::Puma::CT_ClassDef ReferredType;
66293
 
  };
66294
80379
 
66295
80380
  That *_that;
66296
80381
 
66299
80384
};
66300
80385
 
66301
80386
 
66302
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80387
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66303
80388
 
66304
 
#line 66305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80389
#line 80390 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66305
80390
 
66306
80391
public:
66307
 
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) {
66308
 
  TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0 tjp;
66309
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0::That*)this;
66310
 
  AC::invoke_ExtACTree_ExtACTree_a0_after<TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0> (&tjp);
 
80392
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) {
 
80393
  typedef TJP__ZN4Puma11CT_ClassDefC1ERKN4PumaE11CT_ClassDef_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TL< const ::Puma::CT_ClassDef & , AC::TLE > > __TJP;
 
80394
  __TJP tjp;
 
80395
  tjp._that =  (__TJP::That*)this;
 
80396
  AC::invoke_ExtACTree_ExtACTree_a0_after<__TJP> (&tjp);
66311
80397
 
66312
80398
}
66313
80399
 
66314
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
66315
 
 
66316
 
#line 66317 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
66317
 
 
66318
 
struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
66319
 
  typedef void Result;
66320
 
  typedef ::Puma::CT_ClassDef That;
66321
 
  typedef ::Puma::CT_ClassDef Target;
66322
 
  static const int JPID = 4;
 
80400
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80401
 
 
80402
#line 80403 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80403
 
 
80404
template <typename TResult, typename TThat, typename TTarget, typename TArgs> struct TJP__ZN4Puma11CT_ClassDefD1Ev_0 {
 
80405
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0 __TJP;
 
80406
  typedef TResult Result;
 
80407
  typedef TThat   That;
 
80408
  typedef TTarget Target;
 
80409
  enum { ARGS = TArgs::ARGS };
 
80410
  template <int I> struct Arg : AC::Arg<TArgs, I> {};
 
80411
  static const int JPID = 6548;
66323
80412
  static const AC::JPType JPTYPE = (AC::JPType)32;
66324
80413
  struct Res {
66325
80414
    typedef void Type;
66326
80415
    typedef void ReferredType;
66327
80416
  };
66328
 
  enum { ARGS = 0 };
66329
 
  template <int I, int DUMMY = 0> struct Arg {
66330
 
    typedef void Type;
66331
 
    typedef void ReferredType;
66332
 
  };
66333
80417
 
66334
80418
  That *_that;
66335
80419
 
66338
80422
};
66339
80423
 
66340
80424
 
66341
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80425
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66342
80426
 
66343
 
#line 66344 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80427
#line 80428 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66344
80428
 
66345
80429
public:
66346
80430
inline ~CT_ClassDef () {
66347
 
  TJP__ZN4Puma11CT_ClassDefD1Ev_0 tjp;
66348
 
  tjp._that =  (TJP__ZN4Puma11CT_ClassDefD1Ev_0::That*)this;
66349
 
  AC::invoke_ExtACTree_ExtACTree_a1_before<TJP__ZN4Puma11CT_ClassDefD1Ev_0> (&tjp);
 
80431
  typedef TJP__ZN4Puma11CT_ClassDefD1Ev_0< void, ::Puma::CT_ClassDef , ::Puma::CT_ClassDef ,  AC::TLE > __TJP;
 
80432
  __TJP tjp;
 
80433
  tjp._that =  (__TJP::That*)this;
 
80434
  AC::invoke_ExtACTree_ExtACTree_a1_before<__TJP> (&tjp);
66350
80435
 
66351
80436
}
66352
80437
 
66353
 
#line 1983 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80438
#line 3432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66354
80439
};
66355
80440
      
66356
80441
 
66357
 
#line 66358 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80442
#line 80443 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66358
80443
} // closed Puma
 
80444
class CCExprResolve;
 
80445
class CExprResolve;
66359
80446
class WinIfExists;
66360
80447
class WinImportHandler;
66361
80448
class WinMacros;
66362
 
class CMatchSyntax;
66363
 
class ExtGnu;
 
80449
class WinAsm;
 
80450
class WinDeclSpecs;
 
80451
class WinMemberExplSpec;
 
80452
class WinTypeKeywords;
 
80453
class WinFriend;
66364
80454
class ExtAC;
66365
80455
class ExtACBuilderCoupling;
66366
80456
class ExtACSyntaxCoupling;
66367
80457
class ExtACTree;
66368
80458
class ExtACKeywords;
66369
 
class WinAsm;
66370
 
class WinDeclSpecs;
66371
 
class WinMemberExplSpec;
66372
 
class WinTypeKeywords;
 
80459
class ExtGnu;
66373
80460
class PragmaOnceUnitState;
66374
80461
class PragmaOnce;
66375
 
class CCExprResolve;
66376
 
class CExprResolve;
 
80462
class CMatchSyntax;
66377
80463
namespace Puma {
66378
80464
 
66379
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80465
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66380
80466
class CT_UnionDef : public CT_ClassDef {
66381
 
#line 66382 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80467
#line 80468 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80468
  friend class ::CCExprResolve;
 
80469
  friend class ::CExprResolve;
66382
80470
  friend class ::WinIfExists;
66383
80471
  friend class ::WinImportHandler;
66384
80472
  friend class ::WinMacros;
66385
 
  friend class ::CMatchSyntax;
66386
 
  friend class ::ExtGnu;
 
80473
  friend class ::WinAsm;
 
80474
  friend class ::WinDeclSpecs;
 
80475
  friend class ::WinMemberExplSpec;
 
80476
  friend class ::WinTypeKeywords;
 
80477
  friend class ::WinFriend;
66387
80478
  friend class ::ExtAC;
66388
80479
  friend class ::ExtACBuilderCoupling;
66389
80480
  friend class ::ExtACSyntaxCoupling;
66390
80481
  friend class ::ExtACTree;
66391
80482
  friend class ::ExtACKeywords;
66392
 
  friend class ::WinAsm;
66393
 
  friend class ::WinDeclSpecs;
66394
 
  friend class ::WinMemberExplSpec;
66395
 
  friend class ::WinTypeKeywords;
 
80483
  friend class ::ExtGnu;
66396
80484
  friend class ::PragmaOnceUnitState;
66397
80485
  friend class ::PragmaOnce;
66398
 
  friend class ::CCExprResolve;
66399
 
  friend class ::CExprResolve;
 
80486
  friend class ::CMatchSyntax;
66400
80487
 
66401
 
#line 1985 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80488
#line 3434 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66402
80489
 
66403
80490
public:
66404
80491
  CT_UnionDef (CTree *k, CTree *n, CTree *b = 0) : CT_ClassDef (k, n, b) {}
66405
80492
  static const char *NodeId ();
 
80493
  /** Get the name of the node. Can be compared with NodeId(). */
66406
80494
  const char *NodeName () const { return NodeId (); }
66407
80495
};
66408
80496
      
66409
80497
 
66410
 
#line 66411 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80498
#line 80499 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66411
80499
} // closed Puma
 
80500
class CCExprResolve;
 
80501
class CExprResolve;
66412
80502
class WinIfExists;
66413
80503
class WinImportHandler;
66414
80504
class WinMacros;
66415
 
class CMatchSyntax;
66416
 
class ExtGnu;
 
80505
class WinAsm;
 
80506
class WinDeclSpecs;
 
80507
class WinMemberExplSpec;
 
80508
class WinTypeKeywords;
 
80509
class WinFriend;
66417
80510
class ExtAC;
66418
80511
class ExtACBuilderCoupling;
66419
80512
class ExtACSyntaxCoupling;
66420
80513
class ExtACTree;
66421
80514
class ExtACKeywords;
66422
 
class WinAsm;
66423
 
class WinDeclSpecs;
66424
 
class WinMemberExplSpec;
66425
 
class WinTypeKeywords;
 
80515
class ExtGnu;
66426
80516
class PragmaOnceUnitState;
66427
80517
class PragmaOnce;
66428
 
class CCExprResolve;
66429
 
class CExprResolve;
 
80518
class CMatchSyntax;
66430
80519
namespace Puma {
66431
80520
 
66432
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80521
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66433
80522
class CT_MembList : public CT_DeclList, public CSemScope {
66434
 
#line 66435 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80523
#line 80524 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80524
  friend class ::CCExprResolve;
 
80525
  friend class ::CExprResolve;
66435
80526
  friend class ::WinIfExists;
66436
80527
  friend class ::WinImportHandler;
66437
80528
  friend class ::WinMacros;
66438
 
  friend class ::CMatchSyntax;
66439
 
  friend class ::ExtGnu;
 
80529
  friend class ::WinAsm;
 
80530
  friend class ::WinDeclSpecs;
 
80531
  friend class ::WinMemberExplSpec;
 
80532
  friend class ::WinTypeKeywords;
 
80533
  friend class ::WinFriend;
66440
80534
  friend class ::ExtAC;
66441
80535
  friend class ::ExtACBuilderCoupling;
66442
80536
  friend class ::ExtACSyntaxCoupling;
66443
80537
  friend class ::ExtACTree;
66444
80538
  friend class ::ExtACKeywords;
66445
 
  friend class ::WinAsm;
66446
 
  friend class ::WinDeclSpecs;
66447
 
  friend class ::WinMemberExplSpec;
66448
 
  friend class ::WinTypeKeywords;
 
80539
  friend class ::ExtGnu;
66449
80540
  friend class ::PragmaOnceUnitState;
66450
80541
  friend class ::PragmaOnce;
66451
 
  friend class ::CCExprResolve;
66452
 
  friend class ::CExprResolve;
 
80542
  friend class ::CMatchSyntax;
66453
80543
 
66454
 
#line 1992 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80544
#line 3442 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66455
80545
 
66456
80546
public:
66457
80547
  CT_MembList (int size = 10, int incr = 10) : 
66458
80548
    CT_DeclList (size, incr) {}
 
80549
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66459
80550
  static const char *NodeId ();
 
80551
  /** Get the name of the node. Can be compared with NodeId(). */
66460
80552
  const char *NodeName () const { return NodeId (); }
 
80553
  CSemScope *SemScope () const { return (CSemScope*)this; }
66461
80554
};
66462
80555
 
66463
80556
 
66464
 
#line 66465 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80557
#line 80558 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66465
80558
} // closed Puma
 
80559
class CCExprResolve;
 
80560
class CExprResolve;
66466
80561
class WinIfExists;
66467
80562
class WinImportHandler;
66468
80563
class WinMacros;
66469
 
class CMatchSyntax;
66470
 
class ExtGnu;
 
80564
class WinAsm;
 
80565
class WinDeclSpecs;
 
80566
class WinMemberExplSpec;
 
80567
class WinTypeKeywords;
 
80568
class WinFriend;
66471
80569
class ExtAC;
66472
80570
class ExtACBuilderCoupling;
66473
80571
class ExtACSyntaxCoupling;
66474
80572
class ExtACTree;
66475
80573
class ExtACKeywords;
66476
 
class WinAsm;
66477
 
class WinDeclSpecs;
66478
 
class WinMemberExplSpec;
66479
 
class WinTypeKeywords;
 
80574
class ExtGnu;
66480
80575
class PragmaOnceUnitState;
66481
80576
class PragmaOnce;
66482
 
class CCExprResolve;
66483
 
class CExprResolve;
 
80577
class CMatchSyntax;
66484
80578
namespace Puma {
66485
80579
 
66486
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80580
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66487
80581
class CT_MembInitList : public CT_List, public CSemScope {
66488
 
#line 66489 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80582
#line 80583 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80583
  friend class ::CCExprResolve;
 
80584
  friend class ::CExprResolve;
66489
80585
  friend class ::WinIfExists;
66490
80586
  friend class ::WinImportHandler;
66491
80587
  friend class ::WinMacros;
66492
 
  friend class ::CMatchSyntax;
66493
 
  friend class ::ExtGnu;
 
80588
  friend class ::WinAsm;
 
80589
  friend class ::WinDeclSpecs;
 
80590
  friend class ::WinMemberExplSpec;
 
80591
  friend class ::WinTypeKeywords;
 
80592
  friend class ::WinFriend;
66494
80593
  friend class ::ExtAC;
66495
80594
  friend class ::ExtACBuilderCoupling;
66496
80595
  friend class ::ExtACSyntaxCoupling;
66497
80596
  friend class ::ExtACTree;
66498
80597
  friend class ::ExtACKeywords;
66499
 
  friend class ::WinAsm;
66500
 
  friend class ::WinDeclSpecs;
66501
 
  friend class ::WinMemberExplSpec;
66502
 
  friend class ::WinTypeKeywords;
 
80598
  friend class ::ExtGnu;
66503
80599
  friend class ::PragmaOnceUnitState;
66504
80600
  friend class ::PragmaOnce;
66505
 
  friend class ::CCExprResolve;
66506
 
  friend class ::CExprResolve;
 
80601
  friend class ::CMatchSyntax;
66507
80602
 
66508
 
#line 2000 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80603
#line 3453 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66509
80604
 
66510
80605
public:
66511
80606
  CT_MembInitList (int size = 2) : 
66512
80607
    CT_List (size, 2, CT_List::OPEN) {}
66513
80608
  static const char *NodeId ();
 
80609
  /** Get the name of the node. Can be compared with NodeId(). */
66514
80610
  const char *NodeName () const { return NodeId (); }
 
80611
  CSemScope *SemScope () const { return (CSemScope*)this; }
66515
80612
};
66516
80613
 
66517
80614
 
66518
 
#line 66519 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80615
#line 80616 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66519
80616
} // closed Puma
 
80617
class CCExprResolve;
 
80618
class CExprResolve;
66520
80619
class WinIfExists;
66521
80620
class WinImportHandler;
66522
80621
class WinMacros;
66523
 
class CMatchSyntax;
66524
 
class ExtGnu;
 
80622
class WinAsm;
 
80623
class WinDeclSpecs;
 
80624
class WinMemberExplSpec;
 
80625
class WinTypeKeywords;
 
80626
class WinFriend;
66525
80627
class ExtAC;
66526
80628
class ExtACBuilderCoupling;
66527
80629
class ExtACSyntaxCoupling;
66528
80630
class ExtACTree;
66529
80631
class ExtACKeywords;
66530
 
class WinAsm;
66531
 
class WinDeclSpecs;
66532
 
class WinMemberExplSpec;
66533
 
class WinTypeKeywords;
 
80632
class ExtGnu;
66534
80633
class PragmaOnceUnitState;
66535
80634
class PragmaOnce;
66536
 
class CCExprResolve;
66537
 
class CExprResolve;
66538
 
namespace Puma {
66539
 
 
66540
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80635
class CMatchSyntax;
 
80636
namespace Puma {
 
80637
 
 
80638
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80639
 
 
80640
#line 80641 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80641
} // closed Puma
 
80642
 
 
80643
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80644
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
 
80645
#include "CCExprResolveH.ah"
 
80646
#endif
 
80647
namespace Puma {
 
80648
 
 
80649
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80650
 
 
80651
#line 80652 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80652
} // closed Puma
 
80653
 
 
80654
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80655
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CExprResolveH_ah__
 
80656
#include "CExprResolveH.ah"
 
80657
#endif
 
80658
namespace Puma {
 
80659
 
 
80660
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66541
80661
class CT_MembInit : public CT_Expression, public CSemObject {
66542
 
#line 66543 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80662
#line 80663 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80663
  friend class ::CCExprResolve;
 
80664
  friend class ::CExprResolve;
66543
80665
  friend class ::WinIfExists;
66544
80666
  friend class ::WinImportHandler;
66545
80667
  friend class ::WinMacros;
66546
 
  friend class ::CMatchSyntax;
66547
 
  friend class ::ExtGnu;
 
80668
  friend class ::WinAsm;
 
80669
  friend class ::WinDeclSpecs;
 
80670
  friend class ::WinMemberExplSpec;
 
80671
  friend class ::WinTypeKeywords;
 
80672
  friend class ::WinFriend;
66548
80673
  friend class ::ExtAC;
66549
80674
  friend class ::ExtACBuilderCoupling;
66550
80675
  friend class ::ExtACSyntaxCoupling;
66551
80676
  friend class ::ExtACTree;
66552
80677
  friend class ::ExtACKeywords;
66553
 
  friend class ::WinAsm;
66554
 
  friend class ::WinDeclSpecs;
66555
 
  friend class ::WinMemberExplSpec;
66556
 
  friend class ::WinTypeKeywords;
 
80678
  friend class ::ExtGnu;
66557
80679
  friend class ::PragmaOnceUnitState;
66558
80680
  friend class ::PragmaOnce;
66559
 
  friend class ::CCExprResolve;
66560
 
  friend class ::CExprResolve;
 
80681
  friend class ::CMatchSyntax;
66561
80682
 
66562
 
#line 2008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80683
#line 3463 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66563
80684
 
66564
80685
  CTree *sons[2]; // name, init
66565
80686
 
66566
80687
public:
66567
 
  CT_MembInit (CTree *n, CTree *i) { sons[0] = n; sons[1] = i; }
 
80688
  CT_MembInit (CTree *n, CTree *i) { AddSon (sons[0], n); AddSon (sons[1], i); }
 
80689
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66568
80690
  static const char *NodeId ();
 
80691
  /** Get the name of the node. Can be compared with NodeId(). */
66569
80692
  const char *NodeName () const { return NodeId (); }
 
80693
  /** Get the number of sons. */
66570
80694
  int Sons () const { return 2; }
 
80695
  /** Get the n-th son.
 
80696
   *  \param n The index of the son.
 
80697
   *  \return The n-th son or NULL. */
66571
80698
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
80699
  /** Replace a son.
 
80700
   *  \param old_son The son to replace.
 
80701
   *  \param new_son The new son. */
66572
80702
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66573
80703
    CTree::ReplaceSon (sons, 2, old_son, new_son);
66574
80704
  }
66578
80708
   private:
66579
80709
  typedef CT_MembInit CCExprResolveExpr;
66580
80710
 
66581
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
 
80711
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CCExprResolveH.ah"
66582
80712
 public :
66583
 
virtual CTypeInfo * resolve ( CCSemExpr & sem_expr , CTree * base ) ;  private:
 
80713
virtual Puma :: CTypeInfo * resolve ( Puma :: CCSemExpr & sem_expr , Puma :: CTree * base ) ;   private:
66584
80714
  typedef CT_MembInit CExprResolveExpr;
66585
80715
 
66586
 
#line 38 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/CExprResolveH.ah"
 
80716
#line 36 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CExprResolveH.ah"
66587
80717
 public :
66588
 
virtual CTypeInfo * resolve ( CSemExpr & sem_expr , CTree * base ) ;
66589
 
#line 2023 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80718
virtual Puma :: CTypeInfo * resolve ( Puma :: CSemExpr & sem_expr , Puma :: CTree * base ) ;
 
80719
#line 3487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66590
80720
};
66591
80721
 
66592
80722
 
66593
 
#line 66594 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80723
#line 80724 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66594
80724
} // closed Puma
 
80725
class CCExprResolve;
 
80726
class CExprResolve;
66595
80727
class WinIfExists;
66596
80728
class WinImportHandler;
66597
80729
class WinMacros;
66598
 
class CMatchSyntax;
66599
 
class ExtGnu;
 
80730
class WinAsm;
 
80731
class WinDeclSpecs;
 
80732
class WinMemberExplSpec;
 
80733
class WinTypeKeywords;
 
80734
class WinFriend;
66600
80735
class ExtAC;
66601
80736
class ExtACBuilderCoupling;
66602
80737
class ExtACSyntaxCoupling;
66603
80738
class ExtACTree;
66604
80739
class ExtACKeywords;
66605
 
class WinAsm;
66606
 
class WinDeclSpecs;
66607
 
class WinMemberExplSpec;
66608
 
class WinTypeKeywords;
 
80740
class ExtGnu;
66609
80741
class PragmaOnceUnitState;
66610
80742
class PragmaOnce;
66611
 
class CCExprResolve;
66612
 
class CExprResolve;
 
80743
class CMatchSyntax;
66613
80744
namespace Puma {
66614
80745
 
66615
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80746
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66616
80747
class CT_BaseSpecList : public CT_List {
66617
 
#line 66618 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80748
#line 80749 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80749
  friend class ::CCExprResolve;
 
80750
  friend class ::CExprResolve;
66618
80751
  friend class ::WinIfExists;
66619
80752
  friend class ::WinImportHandler;
66620
80753
  friend class ::WinMacros;
66621
 
  friend class ::CMatchSyntax;
66622
 
  friend class ::ExtGnu;
 
80754
  friend class ::WinAsm;
 
80755
  friend class ::WinDeclSpecs;
 
80756
  friend class ::WinMemberExplSpec;
 
80757
  friend class ::WinTypeKeywords;
 
80758
  friend class ::WinFriend;
66623
80759
  friend class ::ExtAC;
66624
80760
  friend class ::ExtACBuilderCoupling;
66625
80761
  friend class ::ExtACSyntaxCoupling;
66626
80762
  friend class ::ExtACTree;
66627
80763
  friend class ::ExtACKeywords;
66628
 
  friend class ::WinAsm;
66629
 
  friend class ::WinDeclSpecs;
66630
 
  friend class ::WinMemberExplSpec;
66631
 
  friend class ::WinTypeKeywords;
 
80764
  friend class ::ExtGnu;
66632
80765
  friend class ::PragmaOnceUnitState;
66633
80766
  friend class ::PragmaOnce;
66634
 
  friend class ::CCExprResolve;
66635
 
  friend class ::CExprResolve;
 
80767
  friend class ::CMatchSyntax;
66636
80768
 
66637
 
#line 2025 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80769
#line 3489 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66638
80770
 
66639
80771
public:
66640
80772
  CT_BaseSpecList (int size = 2) : 
66641
80773
    CT_List (size, 2, CT_List::OPEN|CT_List::SEPARATORS) {}
 
80774
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66642
80775
  static const char *NodeId ();
 
80776
  /** Get the name of the node. Can be compared with NodeId(). */
66643
80777
  const char *NodeName () const { return NodeId (); }
66644
80778
};
66645
80779
 
66646
80780
 
66647
 
#line 66648 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80781
#line 80782 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66648
80782
} // closed Puma
 
80783
class CCExprResolve;
 
80784
class CExprResolve;
66649
80785
class WinIfExists;
66650
80786
class WinImportHandler;
66651
80787
class WinMacros;
66652
 
class CMatchSyntax;
66653
 
class ExtGnu;
 
80788
class WinAsm;
 
80789
class WinDeclSpecs;
 
80790
class WinMemberExplSpec;
 
80791
class WinTypeKeywords;
 
80792
class WinFriend;
66654
80793
class ExtAC;
66655
80794
class ExtACBuilderCoupling;
66656
80795
class ExtACSyntaxCoupling;
66657
80796
class ExtACTree;
66658
80797
class ExtACKeywords;
66659
 
class WinAsm;
66660
 
class WinDeclSpecs;
66661
 
class WinMemberExplSpec;
66662
 
class WinTypeKeywords;
 
80798
class ExtGnu;
66663
80799
class PragmaOnceUnitState;
66664
80800
class PragmaOnce;
66665
 
class CCExprResolve;
66666
 
class CExprResolve;
 
80801
class CMatchSyntax;
66667
80802
namespace Puma {
66668
80803
 
66669
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80804
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66670
80805
class CT_AccessSpec : public CTree {
66671
 
#line 66672 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80806
#line 80807 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80807
  friend class ::CCExprResolve;
 
80808
  friend class ::CExprResolve;
66672
80809
  friend class ::WinIfExists;
66673
80810
  friend class ::WinImportHandler;
66674
80811
  friend class ::WinMacros;
66675
 
  friend class ::CMatchSyntax;
66676
 
  friend class ::ExtGnu;
 
80812
  friend class ::WinAsm;
 
80813
  friend class ::WinDeclSpecs;
 
80814
  friend class ::WinMemberExplSpec;
 
80815
  friend class ::WinTypeKeywords;
 
80816
  friend class ::WinFriend;
66677
80817
  friend class ::ExtAC;
66678
80818
  friend class ::ExtACBuilderCoupling;
66679
80819
  friend class ::ExtACSyntaxCoupling;
66680
80820
  friend class ::ExtACTree;
66681
80821
  friend class ::ExtACKeywords;
66682
 
  friend class ::WinAsm;
66683
 
  friend class ::WinDeclSpecs;
66684
 
  friend class ::WinMemberExplSpec;
66685
 
  friend class ::WinTypeKeywords;
 
80822
  friend class ::ExtGnu;
66686
80823
  friend class ::PragmaOnceUnitState;
66687
80824
  friend class ::PragmaOnce;
66688
 
  friend class ::CCExprResolve;
66689
 
  friend class ::CExprResolve;
 
80825
  friend class ::CMatchSyntax;
66690
80826
 
66691
 
#line 2033 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80827
#line 3499 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66692
80828
 
66693
80829
  CTree *sons[2]; // access, colon
66694
80830
 
66695
80831
public:
66696
 
  CT_AccessSpec (CTree *a, CTree *c) { sons[0] = a; sons[1] = c; }
 
80832
  CT_AccessSpec (CTree *a, CTree *c) { AddSon (sons[0], a); AddSon (sons[1], c); }
 
80833
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66697
80834
  static const char *NodeId ();
 
80835
  /** Get the name of the node. Can be compared with NodeId(). */
66698
80836
  const char *NodeName () const { return NodeId (); }
 
80837
  /** Get the number of sons. */
66699
80838
  int Sons () const { return 2; }
 
80839
  /** Get the n-th son.
 
80840
   *  \param n The index of the son.
 
80841
   *  \return The n-th son or NULL. */
66700
80842
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
66701
80843
  int Access () const { return sons[0]->token ()->type (); }
 
80844
  /** Replace a son.
 
80845
   *  \param old_son The son to replace.
 
80846
   *  \param new_son The new son. */
66702
80847
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66703
80848
    CTree::ReplaceSon (sons, 2, old_son, new_son);
66704
80849
  }
66705
80850
};
66706
80851
 
66707
80852
 
66708
 
#line 66709 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80853
#line 80854 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66709
80854
} // closed Puma
 
80855
class CCExprResolve;
 
80856
class CExprResolve;
66710
80857
class WinIfExists;
66711
80858
class WinImportHandler;
66712
80859
class WinMacros;
66713
 
class CMatchSyntax;
66714
 
class ExtGnu;
 
80860
class WinAsm;
 
80861
class WinDeclSpecs;
 
80862
class WinMemberExplSpec;
 
80863
class WinTypeKeywords;
 
80864
class WinFriend;
66715
80865
class ExtAC;
66716
80866
class ExtACBuilderCoupling;
66717
80867
class ExtACSyntaxCoupling;
66718
80868
class ExtACTree;
66719
80869
class ExtACKeywords;
66720
 
class WinAsm;
66721
 
class WinDeclSpecs;
66722
 
class WinMemberExplSpec;
66723
 
class WinTypeKeywords;
 
80870
class ExtGnu;
66724
80871
class PragmaOnceUnitState;
66725
80872
class PragmaOnce;
66726
 
class CCExprResolve;
66727
 
class CExprResolve;
 
80873
class CMatchSyntax;
66728
80874
namespace Puma {
66729
80875
 
66730
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80876
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66731
80877
class CT_BaseSpec : public CTree {
66732
 
#line 66733 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80878
#line 80879 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80879
  friend class ::CCExprResolve;
 
80880
  friend class ::CExprResolve;
66733
80881
  friend class ::WinIfExists;
66734
80882
  friend class ::WinImportHandler;
66735
80883
  friend class ::WinMacros;
66736
 
  friend class ::CMatchSyntax;
66737
 
  friend class ::ExtGnu;
 
80884
  friend class ::WinAsm;
 
80885
  friend class ::WinDeclSpecs;
 
80886
  friend class ::WinMemberExplSpec;
 
80887
  friend class ::WinTypeKeywords;
 
80888
  friend class ::WinFriend;
66738
80889
  friend class ::ExtAC;
66739
80890
  friend class ::ExtACBuilderCoupling;
66740
80891
  friend class ::ExtACSyntaxCoupling;
66741
80892
  friend class ::ExtACTree;
66742
80893
  friend class ::ExtACKeywords;
66743
 
  friend class ::WinAsm;
66744
 
  friend class ::WinDeclSpecs;
66745
 
  friend class ::WinMemberExplSpec;
66746
 
  friend class ::WinTypeKeywords;
 
80894
  friend class ::ExtGnu;
66747
80895
  friend class ::PragmaOnceUnitState;
66748
80896
  friend class ::PragmaOnce;
66749
 
  friend class ::CCExprResolve;
66750
 
  friend class ::CExprResolve;
 
80897
  friend class ::CMatchSyntax;
66751
80898
 
66752
 
#line 2048 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80899
#line 3523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66753
80900
 
66754
80901
  CTree *sons[3]; // virtual, access, name
66755
80902
 
66756
80903
public:
66757
80904
  CT_BaseSpec (CTree *v, CTree *a, CTree *n) {
66758
 
    sons[0] = v; sons[1] = a; sons[2] = n; 
 
80905
    AddSon (sons[0], v); AddSon (sons[1], a); AddSon (sons[2], n); 
66759
80906
  }
 
80907
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66760
80908
  static const char *NodeId ();
 
80909
  /** Get the name of the node. Can be compared with NodeId(). */
66761
80910
  const char *NodeName () const { return NodeId (); }
 
80911
  /** Get the number of sons. */
66762
80912
  int Sons () const { return CTree::Sons (sons, 3); }
 
80913
  /** Get the n-th son.
 
80914
   *  \param n The index of the son.
 
80915
   *  \return The n-th son or NULL. */
66763
80916
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
66764
80917
  int Access () const { return sons[1]->token ()->type (); }
66765
80918
  CTree *AccessSpec () const { return sons[1]; }
66766
80919
  CTree *Virtual () const { return sons[0]; }
66767
80920
  CT_SimpleName *Name () const { return (CT_SimpleName*)sons[2]; }
 
80921
  /** Replace a son.
 
80922
   *  \param old_son The son to replace.
 
80923
   *  \param new_son The new son. */
66768
80924
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66769
80925
    CTree::ReplaceSon (sons, 3, old_son, new_son);
66770
80926
  }
66771
80927
};
66772
80928
 
66773
80929
 
66774
 
#line 66775 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80930
#line 80931 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66775
80931
} // closed Puma
 
80932
class CCExprResolve;
 
80933
class CExprResolve;
66776
80934
class WinIfExists;
66777
80935
class WinImportHandler;
66778
80936
class WinMacros;
66779
 
class CMatchSyntax;
66780
 
class ExtGnu;
 
80937
class WinAsm;
 
80938
class WinDeclSpecs;
 
80939
class WinMemberExplSpec;
 
80940
class WinTypeKeywords;
 
80941
class WinFriend;
66781
80942
class ExtAC;
66782
80943
class ExtACBuilderCoupling;
66783
80944
class ExtACSyntaxCoupling;
66784
80945
class ExtACTree;
66785
80946
class ExtACKeywords;
66786
 
class WinAsm;
66787
 
class WinDeclSpecs;
66788
 
class WinMemberExplSpec;
66789
 
class WinTypeKeywords;
 
80947
class ExtGnu;
66790
80948
class PragmaOnceUnitState;
66791
80949
class PragmaOnce;
66792
 
class CCExprResolve;
66793
 
class CExprResolve;
 
80950
class CMatchSyntax;
66794
80951
namespace Puma {
66795
80952
 
66796
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80953
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66797
80954
class CT_AccessDecl : public CT_Decl {
66798
 
#line 66799 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
80955
#line 80956 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
80956
  friend class ::CCExprResolve;
 
80957
  friend class ::CExprResolve;
66799
80958
  friend class ::WinIfExists;
66800
80959
  friend class ::WinImportHandler;
66801
80960
  friend class ::WinMacros;
66802
 
  friend class ::CMatchSyntax;
66803
 
  friend class ::ExtGnu;
 
80961
  friend class ::WinAsm;
 
80962
  friend class ::WinDeclSpecs;
 
80963
  friend class ::WinMemberExplSpec;
 
80964
  friend class ::WinTypeKeywords;
 
80965
  friend class ::WinFriend;
66804
80966
  friend class ::ExtAC;
66805
80967
  friend class ::ExtACBuilderCoupling;
66806
80968
  friend class ::ExtACSyntaxCoupling;
66807
80969
  friend class ::ExtACTree;
66808
80970
  friend class ::ExtACKeywords;
66809
 
  friend class ::WinAsm;
66810
 
  friend class ::WinDeclSpecs;
66811
 
  friend class ::WinMemberExplSpec;
66812
 
  friend class ::WinTypeKeywords;
 
80971
  friend class ::ExtGnu;
66813
80972
  friend class ::PragmaOnceUnitState;
66814
80973
  friend class ::PragmaOnce;
66815
 
  friend class ::CCExprResolve;
66816
 
  friend class ::CExprResolve;
 
80974
  friend class ::CMatchSyntax;
66817
80975
 
66818
 
#line 2068 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
80976
#line 3552 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66819
80977
 
66820
80978
  CTree *sons[2]; // name, semi_colon
66821
80979
 
66822
80980
public:
66823
 
  CT_AccessDecl (CTree *n, CTree *s) { sons[0] = n; sons[1] = s; }
 
80981
  CT_AccessDecl (CTree *n, CTree *s) { AddSon (sons[0], n); AddSon (sons[1], s); }
 
80982
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66824
80983
  static const char *NodeId ();
 
80984
  /** Get the name of the node. Can be compared with NodeId(). */
66825
80985
  const char *NodeName () const { return NodeId (); }
 
80986
  /** Get the number of sons. */
66826
80987
  int Sons () const { return 2; }
 
80988
  /** Get the n-th son.
 
80989
   *  \param n The index of the son.
 
80990
   *  \return The n-th son or NULL. */
66827
80991
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
66828
80992
  CT_QualName *Member () const { return (CT_QualName*)sons[0]; }
 
80993
  /** Replace a son.
 
80994
   *  \param old_son The son to replace.
 
80995
   *  \param new_son The new son. */
66829
80996
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66830
80997
    CTree::ReplaceSon (sons, 2, old_son, new_son);
66831
80998
  }
66832
80999
};
66833
81000
 
66834
81001
 
66835
 
#line 66836 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81002
#line 81003 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66836
81003
} // closed Puma
 
81004
class CCExprResolve;
 
81005
class CExprResolve;
66837
81006
class WinIfExists;
66838
81007
class WinImportHandler;
66839
81008
class WinMacros;
66840
 
class CMatchSyntax;
66841
 
class ExtGnu;
 
81009
class WinAsm;
 
81010
class WinDeclSpecs;
 
81011
class WinMemberExplSpec;
 
81012
class WinTypeKeywords;
 
81013
class WinFriend;
66842
81014
class ExtAC;
66843
81015
class ExtACBuilderCoupling;
66844
81016
class ExtACSyntaxCoupling;
66845
81017
class ExtACTree;
66846
81018
class ExtACKeywords;
66847
 
class WinAsm;
66848
 
class WinDeclSpecs;
66849
 
class WinMemberExplSpec;
66850
 
class WinTypeKeywords;
 
81019
class ExtGnu;
66851
81020
class PragmaOnceUnitState;
66852
81021
class PragmaOnce;
66853
 
class CCExprResolve;
66854
 
class CExprResolve;
 
81022
class CMatchSyntax;
66855
81023
namespace Puma {
66856
81024
 
66857
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81025
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66858
81026
class CT_UsingDecl : public CT_AccessDecl {
66859
 
#line 66860 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81027
#line 81028 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81028
  friend class ::CCExprResolve;
 
81029
  friend class ::CExprResolve;
66860
81030
  friend class ::WinIfExists;
66861
81031
  friend class ::WinImportHandler;
66862
81032
  friend class ::WinMacros;
66863
 
  friend class ::CMatchSyntax;
66864
 
  friend class ::ExtGnu;
 
81033
  friend class ::WinAsm;
 
81034
  friend class ::WinDeclSpecs;
 
81035
  friend class ::WinMemberExplSpec;
 
81036
  friend class ::WinTypeKeywords;
 
81037
  friend class ::WinFriend;
66865
81038
  friend class ::ExtAC;
66866
81039
  friend class ::ExtACBuilderCoupling;
66867
81040
  friend class ::ExtACSyntaxCoupling;
66868
81041
  friend class ::ExtACTree;
66869
81042
  friend class ::ExtACKeywords;
66870
 
  friend class ::WinAsm;
66871
 
  friend class ::WinDeclSpecs;
66872
 
  friend class ::WinMemberExplSpec;
66873
 
  friend class ::WinTypeKeywords;
 
81043
  friend class ::ExtGnu;
66874
81044
  friend class ::PragmaOnceUnitState;
66875
81045
  friend class ::PragmaOnce;
66876
 
  friend class ::CCExprResolve;
66877
 
  friend class ::CExprResolve;
 
81046
  friend class ::CMatchSyntax;
66878
81047
 
66879
 
#line 2083 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81048
#line 3576 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66880
81049
 
66881
81050
  CTree *sons[2]; // using, typename
66882
81051
 
66883
81052
public:
66884
81053
  CT_UsingDecl (CTree *u, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
66885
 
    sons[0] = u; sons[1] = 0; 
 
81054
    AddSon (sons[0], u); AddSon (sons[1], 0); 
66886
81055
  }
66887
81056
  CT_UsingDecl (CTree *u, CTree *t, CTree *n, CTree *s) : CT_AccessDecl (n, s) {
66888
 
    sons[0] = u; sons[1] = t; 
 
81057
    AddSon (sons[0], u); AddSon (sons[1], t); 
66889
81058
  }
 
81059
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66890
81060
  static const char *NodeId ();
 
81061
  /** Get the name of the node. Can be compared with NodeId(). */
66891
81062
  const char *NodeName () const { return NodeId (); }
 
81063
  /** Get the number of sons. */
66892
81064
  int Sons () const { return CTree::Sons (sons, 2) + CT_AccessDecl::Sons (); }
 
81065
  /** Get the n-th son.
 
81066
   *  \param n The index of the son.
 
81067
   *  \return The n-th son or NULL. */
66893
81068
  CTree *Son (int n) const {
66894
81069
    int num = CTree::Sons (sons, 2);
66895
81070
    CTree *result = CTree::Son (sons, 2, n);
66896
81071
    return result ? result : CT_AccessDecl::Son (n-num);
66897
81072
  }
66898
81073
  CTree *Typename () const { return sons[1]; }
 
81074
  /** Replace a son.
 
81075
   *  \param old_son The son to replace.
 
81076
   *  \param new_son The new son. */
66899
81077
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66900
81078
    CTree::ReplaceSon (sons, 2, old_son, new_son);
66901
81079
    CT_AccessDecl::ReplaceSon (old_son, new_son);
66909
81087
/*****************************************************************************/
66910
81088
 
66911
81089
 
66912
 
#line 66913 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81090
#line 81091 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66913
81091
} // closed Puma
 
81092
class CCExprResolve;
 
81093
class CExprResolve;
66914
81094
class WinIfExists;
66915
81095
class WinImportHandler;
66916
81096
class WinMacros;
66917
 
class CMatchSyntax;
66918
 
class ExtGnu;
 
81097
class WinAsm;
 
81098
class WinDeclSpecs;
 
81099
class WinMemberExplSpec;
 
81100
class WinTypeKeywords;
 
81101
class WinFriend;
66919
81102
class ExtAC;
66920
81103
class ExtACBuilderCoupling;
66921
81104
class ExtACSyntaxCoupling;
66922
81105
class ExtACTree;
66923
81106
class ExtACKeywords;
66924
 
class WinAsm;
66925
 
class WinDeclSpecs;
66926
 
class WinMemberExplSpec;
66927
 
class WinTypeKeywords;
 
81107
class ExtGnu;
66928
81108
class PragmaOnceUnitState;
66929
81109
class PragmaOnce;
66930
 
class CCExprResolve;
66931
 
class CExprResolve;
 
81110
class CMatchSyntax;
66932
81111
namespace Puma {
66933
81112
 
66934
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81113
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66935
81114
class CT_Any : public CTree {
66936
 
#line 66937 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81115
#line 81116 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81116
  friend class ::CCExprResolve;
 
81117
  friend class ::CExprResolve;
66937
81118
  friend class ::WinIfExists;
66938
81119
  friend class ::WinImportHandler;
66939
81120
  friend class ::WinMacros;
66940
 
  friend class ::CMatchSyntax;
66941
 
  friend class ::ExtGnu;
 
81121
  friend class ::WinAsm;
 
81122
  friend class ::WinDeclSpecs;
 
81123
  friend class ::WinMemberExplSpec;
 
81124
  friend class ::WinTypeKeywords;
 
81125
  friend class ::WinFriend;
66942
81126
  friend class ::ExtAC;
66943
81127
  friend class ::ExtACBuilderCoupling;
66944
81128
  friend class ::ExtACSyntaxCoupling;
66945
81129
  friend class ::ExtACTree;
66946
81130
  friend class ::ExtACKeywords;
66947
 
  friend class ::WinAsm;
66948
 
  friend class ::WinDeclSpecs;
66949
 
  friend class ::WinMemberExplSpec;
66950
 
  friend class ::WinTypeKeywords;
 
81131
  friend class ::ExtGnu;
66951
81132
  friend class ::PragmaOnceUnitState;
66952
81133
  friend class ::PragmaOnce;
66953
 
  friend class ::CCExprResolve;
66954
 
  friend class ::CExprResolve;
 
81134
  friend class ::CMatchSyntax;
66955
81135
 
66956
 
#line 2114 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81136
#line 3616 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66957
81137
 
66958
81138
  CTree *sons[2]; // keyword, extension
66959
81139
 
66960
81140
public:
66961
 
  CT_Any (CTree *k, CTree *e = (CTree*)0) { sons[0] = k; sons[1] = e; }
 
81141
  CT_Any (CTree *k, CTree *e = (CTree*)0) { AddSon (sons[0], k); AddSon (sons[1], e); }
 
81142
  /** Get the identifier for this node type. Can be compared with NodeName(). */
66962
81143
  static const char *NodeId ();
 
81144
  /** Get the name of the node. Can be compared with NodeId(). */
66963
81145
  const char *NodeName () const { return NodeId (); }
 
81146
  /** Get the number of sons. */
66964
81147
  int Sons () const { return CTree::Sons (sons, 2); }
 
81148
  /** Get the n-th son.
 
81149
   *  \param n The index of the son.
 
81150
   *  \return The n-th son or NULL. */
66965
81151
  CTree *Son (int n) const { return CTree::Son (sons, 2, n); }
 
81152
  /** Replace a son.
 
81153
   *  \param old_son The son to replace.
 
81154
   *  \param new_son The new son. */
66966
81155
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
66967
81156
    CTree::ReplaceSon (sons, 2, old_son, new_son);
66968
81157
  }
66971
81160
};
66972
81161
 
66973
81162
 
66974
 
#line 66975 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81163
#line 81164 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
66975
81164
} // closed Puma
 
81165
class CCExprResolve;
 
81166
class CExprResolve;
66976
81167
class WinIfExists;
66977
81168
class WinImportHandler;
66978
81169
class WinMacros;
66979
 
class CMatchSyntax;
66980
 
class ExtGnu;
 
81170
class WinAsm;
 
81171
class WinDeclSpecs;
 
81172
class WinMemberExplSpec;
 
81173
class WinTypeKeywords;
 
81174
class WinFriend;
66981
81175
class ExtAC;
66982
81176
class ExtACBuilderCoupling;
66983
81177
class ExtACSyntaxCoupling;
66984
81178
class ExtACTree;
66985
81179
class ExtACKeywords;
66986
 
class WinAsm;
66987
 
class WinDeclSpecs;
66988
 
class WinMemberExplSpec;
66989
 
class WinTypeKeywords;
 
81180
class ExtGnu;
66990
81181
class PragmaOnceUnitState;
66991
81182
class PragmaOnce;
66992
 
class CCExprResolve;
66993
 
class CExprResolve;
 
81183
class CMatchSyntax;
66994
81184
namespace Puma {
66995
81185
 
66996
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81186
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
66997
81187
class CT_AnyList : public CT_Any {
66998
 
#line 66999 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81188
#line 81189 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81189
  friend class ::CCExprResolve;
 
81190
  friend class ::CExprResolve;
66999
81191
  friend class ::WinIfExists;
67000
81192
  friend class ::WinImportHandler;
67001
81193
  friend class ::WinMacros;
67002
 
  friend class ::CMatchSyntax;
67003
 
  friend class ::ExtGnu;
 
81194
  friend class ::WinAsm;
 
81195
  friend class ::WinDeclSpecs;
 
81196
  friend class ::WinMemberExplSpec;
 
81197
  friend class ::WinTypeKeywords;
 
81198
  friend class ::WinFriend;
67004
81199
  friend class ::ExtAC;
67005
81200
  friend class ::ExtACBuilderCoupling;
67006
81201
  friend class ::ExtACSyntaxCoupling;
67007
81202
  friend class ::ExtACTree;
67008
81203
  friend class ::ExtACKeywords;
67009
 
  friend class ::WinAsm;
67010
 
  friend class ::WinDeclSpecs;
67011
 
  friend class ::WinMemberExplSpec;
67012
 
  friend class ::WinTypeKeywords;
 
81204
  friend class ::ExtGnu;
67013
81205
  friend class ::PragmaOnceUnitState;
67014
81206
  friend class ::PragmaOnce;
67015
 
  friend class ::CCExprResolve;
67016
 
  friend class ::CExprResolve;
 
81207
  friend class ::CMatchSyntax;
67017
81208
 
67018
 
#line 2130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81209
#line 3641 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67019
81210
 
67020
81211
public:
67021
81212
  CT_AnyList (CTree *k, CTree *e = (CTree*)0) : CT_Any (k, e) {}
 
81213
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67022
81214
  static const char *NodeId ();
 
81215
  /** Get the name of the node. Can be compared with NodeId(). */
67023
81216
  const char *NodeName () const { return NodeId (); }
67024
81217
};
67025
81218
 
67026
81219
 
67027
 
#line 67028 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81220
#line 81221 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67028
81221
} // closed Puma
 
81222
class CCExprResolve;
 
81223
class CExprResolve;
67029
81224
class WinIfExists;
67030
81225
class WinImportHandler;
67031
81226
class WinMacros;
67032
 
class CMatchSyntax;
67033
 
class ExtGnu;
 
81227
class WinAsm;
 
81228
class WinDeclSpecs;
 
81229
class WinMemberExplSpec;
 
81230
class WinTypeKeywords;
 
81231
class WinFriend;
67034
81232
class ExtAC;
67035
81233
class ExtACBuilderCoupling;
67036
81234
class ExtACSyntaxCoupling;
67037
81235
class ExtACTree;
67038
81236
class ExtACKeywords;
67039
 
class WinAsm;
67040
 
class WinDeclSpecs;
67041
 
class WinMemberExplSpec;
67042
 
class WinTypeKeywords;
 
81237
class ExtGnu;
67043
81238
class PragmaOnceUnitState;
67044
81239
class PragmaOnce;
67045
 
class CCExprResolve;
67046
 
class CExprResolve;
 
81240
class CMatchSyntax;
67047
81241
namespace Puma {
67048
81242
 
67049
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81243
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67050
81244
class CT_AnyExtension : public CTree, public CSemValue {
67051
 
#line 67052 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81245
#line 81246 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81246
  friend class ::CCExprResolve;
 
81247
  friend class ::CExprResolve;
67052
81248
  friend class ::WinIfExists;
67053
81249
  friend class ::WinImportHandler;
67054
81250
  friend class ::WinMacros;
67055
 
  friend class ::CMatchSyntax;
67056
 
  friend class ::ExtGnu;
 
81251
  friend class ::WinAsm;
 
81252
  friend class ::WinDeclSpecs;
 
81253
  friend class ::WinMemberExplSpec;
 
81254
  friend class ::WinTypeKeywords;
 
81255
  friend class ::WinFriend;
67057
81256
  friend class ::ExtAC;
67058
81257
  friend class ::ExtACBuilderCoupling;
67059
81258
  friend class ::ExtACSyntaxCoupling;
67060
81259
  friend class ::ExtACTree;
67061
81260
  friend class ::ExtACKeywords;
67062
 
  friend class ::WinAsm;
67063
 
  friend class ::WinDeclSpecs;
67064
 
  friend class ::WinMemberExplSpec;
67065
 
  friend class ::WinTypeKeywords;
 
81261
  friend class ::ExtGnu;
67066
81262
  friend class ::PragmaOnceUnitState;
67067
81263
  friend class ::PragmaOnce;
67068
 
  friend class ::CCExprResolve;
67069
 
  friend class ::CExprResolve;
 
81264
  friend class ::CMatchSyntax;
67070
81265
 
67071
 
#line 2137 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81266
#line 3650 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67072
81267
 
67073
81268
  CTree *sons[5]; // open, string, comma, cond, close
67074
81269
 
67075
81270
public:
67076
81271
  CT_AnyExtension (CTree *o, CTree *n, CTree *co, CTree *c, CTree *cr) {
67077
 
    sons[0] = o; sons[1] = n; sons[2] = co; sons[3] = c; sons[4] = cr; 
 
81272
    AddSon (sons[0], o); AddSon (sons[1], n); AddSon (sons[2], co); 
 
81273
    AddSon (sons[3], c); AddSon (sons[4], cr); 
67078
81274
  }
 
81275
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67079
81276
  static const char *NodeId ();
 
81277
  /** Get the name of the node. Can be compared with NodeId(). */
67080
81278
  const char *NodeName () const { return NodeId (); }
 
81279
  /** Get the number of sons. */
67081
81280
  int Sons () const { return CTree::Sons (sons, 5); }
 
81281
  /** Get the n-th son.
 
81282
   *  \param n The index of the son.
 
81283
   *  \return The n-th son or NULL. */
67082
81284
  CTree *Son (int n) const { return CTree::Son (sons, 5, n); }
 
81285
  /** Replace a son.
 
81286
   *  \param old_son The son to replace.
 
81287
   *  \param new_son The new son. */
67083
81288
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67084
81289
    CTree::ReplaceSon (sons, 5, old_son, new_son);
67085
81290
  }
67093
81298
};
67094
81299
 
67095
81300
 
67096
 
#line 67097 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81301
#line 81302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67097
81302
} // closed Puma
 
81303
class CCExprResolve;
 
81304
class CExprResolve;
67098
81305
class WinIfExists;
67099
81306
class WinImportHandler;
67100
81307
class WinMacros;
67101
 
class CMatchSyntax;
67102
 
class ExtGnu;
 
81308
class WinAsm;
 
81309
class WinDeclSpecs;
 
81310
class WinMemberExplSpec;
 
81311
class WinTypeKeywords;
 
81312
class WinFriend;
67103
81313
class ExtAC;
67104
81314
class ExtACBuilderCoupling;
67105
81315
class ExtACSyntaxCoupling;
67106
81316
class ExtACTree;
67107
81317
class ExtACKeywords;
67108
 
class WinAsm;
67109
 
class WinDeclSpecs;
67110
 
class WinMemberExplSpec;
67111
 
class WinTypeKeywords;
 
81318
class ExtGnu;
67112
81319
class PragmaOnceUnitState;
67113
81320
class PragmaOnce;
67114
 
class CCExprResolve;
67115
 
class CExprResolve;
 
81321
class CMatchSyntax;
67116
81322
namespace Puma {
67117
81323
 
67118
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81324
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67119
81325
class CT_AnyCondition : public CTree {
67120
 
#line 67121 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81326
#line 81327 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81327
  friend class ::CCExprResolve;
 
81328
  friend class ::CExprResolve;
67121
81329
  friend class ::WinIfExists;
67122
81330
  friend class ::WinImportHandler;
67123
81331
  friend class ::WinMacros;
67124
 
  friend class ::CMatchSyntax;
67125
 
  friend class ::ExtGnu;
 
81332
  friend class ::WinAsm;
 
81333
  friend class ::WinDeclSpecs;
 
81334
  friend class ::WinMemberExplSpec;
 
81335
  friend class ::WinTypeKeywords;
 
81336
  friend class ::WinFriend;
67126
81337
  friend class ::ExtAC;
67127
81338
  friend class ::ExtACBuilderCoupling;
67128
81339
  friend class ::ExtACSyntaxCoupling;
67129
81340
  friend class ::ExtACTree;
67130
81341
  friend class ::ExtACKeywords;
67131
 
  friend class ::WinAsm;
67132
 
  friend class ::WinDeclSpecs;
67133
 
  friend class ::WinMemberExplSpec;
67134
 
  friend class ::WinTypeKeywords;
 
81342
  friend class ::ExtGnu;
67135
81343
  friend class ::PragmaOnceUnitState;
67136
81344
  friend class ::PragmaOnce;
67137
 
  friend class ::CCExprResolve;
67138
 
  friend class ::CExprResolve;
 
81345
  friend class ::CMatchSyntax;
67139
81346
 
67140
 
#line 2160 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
 
81347
#line 3683 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CTree.h"
67141
81348
 
67142
81349
  CTree *sons[3]; // arg1, arg2, arg3
67143
81350
 
67144
81351
public:
67145
81352
  CT_AnyCondition (CTree *a1, CTree *a2 = (CTree*)0, CTree *a3 = (CTree*)0) {
67146
 
    sons[0] = a1; sons[1] = a2; sons[2] = a3; 
 
81353
    AddSon (sons[0], a1); AddSon (sons[1], a2); AddSon (sons[2], a3); 
67147
81354
  }
 
81355
  /** Get the identifier for this node type. Can be compared with NodeName(). */
67148
81356
  static const char *NodeId ();
 
81357
  /** Get the name of the node. Can be compared with NodeId(). */
67149
81358
  const char *NodeName () const { return NodeId (); }
 
81359
  /** Get the number of sons. */
67150
81360
  int Sons () const { return CTree::Sons (sons, 3); }
 
81361
  /** Get the n-th son.
 
81362
   *  \param n The index of the son.
 
81363
   *  \return The n-th son or NULL. */
67151
81364
  CTree *Son (int n) const { return CTree::Son (sons, 3, n); }
 
81365
  /** Replace a son.
 
81366
   *  \param old_son The son to replace.
 
81367
   *  \param new_son The new son. */
67152
81368
  void ReplaceSon (CTree *old_son, CTree *new_son) { 
67153
81369
    CTree::ReplaceSon (sons, 3, old_son, new_son);
67154
81370
  }
67159
81375
 
67160
81376
#endif /* __CTree_h__ */
67161
81377
 
67162
 
#line 67163 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
67163
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CTree_h__
67164
 
 
67165
 
#line 2179 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CTree.h"
67166
 
 
67167
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
81378
#line 25 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
67168
81379
namespace Puma {
67169
81380
 
67170
81381
 
67171
81382
class ErrorSink;
67172
81383
 
67173
81384
 
67174
 
#line 67175 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81385
#line 81386 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67175
81386
} // closed Puma
 
81387
class CCExprResolve;
 
81388
class CExprResolve;
67176
81389
class WinIfExists;
67177
81390
class WinImportHandler;
67178
81391
class WinMacros;
67179
 
class CMatchSyntax;
67180
 
class ExtGnu;
 
81392
class WinAsm;
 
81393
class WinDeclSpecs;
 
81394
class WinMemberExplSpec;
 
81395
class WinTypeKeywords;
 
81396
class WinFriend;
67181
81397
class ExtAC;
67182
81398
class ExtACBuilderCoupling;
67183
81399
class ExtACSyntaxCoupling;
67184
81400
class ExtACTree;
67185
81401
class ExtACKeywords;
67186
 
class WinAsm;
67187
 
class WinDeclSpecs;
67188
 
class WinMemberExplSpec;
67189
 
class WinTypeKeywords;
 
81402
class ExtGnu;
67190
81403
class PragmaOnceUnitState;
67191
81404
class PragmaOnce;
67192
 
class CCExprResolve;
67193
 
class CExprResolve;
67194
 
namespace Puma {
67195
 
 
67196
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
81405
class CMatchSyntax;
 
81406
namespace Puma {
 
81407
 
 
81408
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
81409
 
 
81410
#line 81411 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81411
} // closed Puma
 
81412
 
 
81413
#ifndef __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
81414
#define __ac_guard__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
81415
 
 
81416
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
81417
// This file is part of PUMA.
 
81418
// Copyright (C) 1999-2003  The PUMA developer team.
 
81419
//                                                                
 
81420
// This program is free software;  you can redistribute it and/or 
 
81421
// modify it under the terms of the GNU General Public License as 
 
81422
// published by the Free Software Foundation; either version 2 of 
 
81423
// the License, or (at your option) any later version.            
 
81424
//                                                                
 
81425
// This program is distributed in the hope that it will be useful,
 
81426
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
81427
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
81428
// GNU General Public License for more details.                   
 
81429
//                                                                
 
81430
// You should have received a copy of the GNU General Public      
 
81431
// License along with this program; if not, write to the Free     
 
81432
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
81433
// MA  02111-1307  USA                                            
 
81434
 
 
81435
#ifndef __ext_gnu_csem_decl_specs_ah__
 
81436
#define __ext_gnu_csem_decl_specs_ah__
 
81437
 
 
81438
 
 
81439
#line 24 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
81440
namespace Puma {
 
81441
  
 
81442
#line 29 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
 
81443
 
 
81444
}
 
81445
 
 
81446
#endif /* __ext_gnu_csem_decl_specs_ah__ */
 
81447
 
 
81448
#line 8 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
81449
#endif
 
81450
namespace Puma {
 
81451
 
 
81452
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
67197
81453
class CSemDeclSpecs {
67198
 
#line 67199 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81454
#line 81455 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81455
  friend class ::CCExprResolve;
 
81456
  friend class ::CExprResolve;
67199
81457
  friend class ::WinIfExists;
67200
81458
  friend class ::WinImportHandler;
67201
81459
  friend class ::WinMacros;
67202
 
  friend class ::CMatchSyntax;
67203
 
  friend class ::ExtGnu;
 
81460
  friend class ::WinAsm;
 
81461
  friend class ::WinDeclSpecs;
 
81462
  friend class ::WinMemberExplSpec;
 
81463
  friend class ::WinTypeKeywords;
 
81464
  friend class ::WinFriend;
67204
81465
  friend class ::ExtAC;
67205
81466
  friend class ::ExtACBuilderCoupling;
67206
81467
  friend class ::ExtACSyntaxCoupling;
67207
81468
  friend class ::ExtACTree;
67208
81469
  friend class ::ExtACKeywords;
67209
 
  friend class ::WinAsm;
67210
 
  friend class ::WinDeclSpecs;
67211
 
  friend class ::WinMemberExplSpec;
67212
 
  friend class ::WinTypeKeywords;
 
81470
  friend class ::ExtGnu;
67213
81471
  friend class ::PragmaOnceUnitState;
67214
81472
  friend class ::PragmaOnce;
67215
 
  friend class ::CCExprResolve;
67216
 
  friend class ::CExprResolve;
 
81473
  friend class ::CMatchSyntax;
67217
81474
 
67218
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
81475
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
67219
81476
 
67220
81477
 
67221
81478
  // initialization context
67242
81499
  // analyses the syntax tree nodes of the decl-spec sequence. Return false
67243
81500
  // if an error was detected. 
67244
81501
  
67245
 
#line 67246 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
67246
 
public: inline bool __exec_old_analyze_seq();
 
81502
#line 81503 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81503
public: __attribute__((always_inline)) inline bool __exec_old_analyze_seq();
67247
81504
private:
67248
81505
 
67249
 
#line 55 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
81506
#line 55 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
67250
81507
bool analyze_seq ();
67251
81508
  
67252
81509
  // analyzes the current declaration specifier in the sequence and set some
67253
81510
  // attributes according to the result. Returns false if the specifier type
67254
81511
  // is unknown.
67255
81512
  
67256
 
#line 67257 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
67257
 
public: inline bool __exec_old_analyze(::Puma::CTree * spec);
 
81513
#line 81514 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81514
public: __attribute__((always_inline)) inline bool __exec_old_analyze(::Puma::CTree * spec);
67258
81515
private:
67259
81516
 
67260
 
#line 60 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
81517
#line 60 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
67261
81518
bool analyze (CTree *spec);
67262
81519
 
67263
81520
  // check functions (used after analyse_seq()
67264
81521
  bool check_prim_decl_specs (bool &have_type);
67265
81522
  
67266
 
#line 67267 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
67267
 
public: inline bool __exec_old_check_complex_decl_specs(bool & have_type);
 
81523
#line 81524 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81524
public: __attribute__((always_inline)) inline bool __exec_old_check_complex_decl_specs(bool & have_type);
67268
81525
private:
67269
81526
 
67270
 
#line 64 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
81527
#line 64 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
67271
81528
bool check_complex_decl_specs (bool &have_type);  
67272
81529
  bool check_storage_class ();
67273
81530
  
67274
 
#line 67275 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
67275
 
public: inline bool __exec_old_check_signed_unsigned();
 
81531
#line 81532 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81532
public: __attribute__((always_inline)) inline bool __exec_old_check_signed_unsigned();
67276
81533
private:
67277
81534
 
67278
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
81535
#line 66 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
67279
81536
bool check_signed_unsigned ();
67280
81537
  bool check_long_short (); 
67281
81538
  
67282
 
#line 67283 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
67283
 
public: inline bool __exec_old_check_finally();
 
81539
#line 81540 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81540
public: __attribute__((always_inline)) inline bool __exec_old_check_finally();
67284
81541
private:
67285
81542
 
67286
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
81543
#line 68 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
67287
81544
bool check_finally ();
67288
81545
  
67289
81546
  // type creation code
67290
81547
  
67291
 
#line 67292 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
67292
 
public: inline ::Puma::CTypeInfo * __exec_old_create_type();
 
81548
#line 81549 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81549
public: __attribute__((always_inline)) inline ::Puma::CTypeInfo * __exec_old_create_type();
67293
81550
private:
67294
81551
 
67295
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
81552
#line 71 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
67296
81553
CTypeInfo *create_type ();
67297
81554
  CTypeInfo *create_qualifiers (CTypeInfo *type);
67298
81555
  
67299
81556
public:
67300
 
  CSemDeclSpecs (ErrorSink *, CT_DeclSpecSeq *);
 
81557
  CSemDeclSpecs (ErrorSink *, CT_DeclSpecSeq *, bool support_implicit_int = false);
67301
81558
  ~CSemDeclSpecs ();
67302
81559
 
67303
81560
  CTypeInfo *make_type () const;
67308
81565
  bool defUnion () const;
67309
81566
  bool defEnum () const;
67310
81567
   private:
 
81568
  typedef CSemDeclSpecs ExtGnuCSemDeclSpecs;
67311
81569
 
67312
 
#line 151 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81570
#line 26 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnuCSemDeclSpecs.ah"
67313
81571
 public :
67314
81572
int _typeofs ;
67315
81573
CT_GnuTypeof * _typeof_node ;
67316
 
#line 85 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
 
81574
#line 85 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
67317
81575
};
67318
81576
 
67319
81577
inline CSemDeclSpecs::~CSemDeclSpecs () 
67339
81597
 
67340
81598
#endif /* __c_sem_decl_specs_h__ */
67341
81599
 
67342
 
#line 67343 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
67343
 
#endif // __ac_guard__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_inc_Puma_CSemDeclSpecs_h__
67344
 
 
67345
 
#line 108 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CSemDeclSpecs.h"
67346
 
 
67347
 
#line 31 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81600
#line 32 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67348
81601
namespace Puma {
67349
81602
  class CCSyntax;
67350
81603
  class CSyntax;
67351
 
} // namespace Puma
67352
 
 
67353
 
 
67354
 
using namespace Puma;
 
81604
}
 
81605
 
67355
81606
 
67356
81607
namespace Puma {
67357
81608
  
67358
 
#line 40 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67359
 
 
67360
 
  
67361
 
#line 41 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67362
 
 
67363
 
  
67364
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67365
 
 
67366
 
  
67367
 
#line 43 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67368
 
 
67369
 
  
67370
 
#line 44 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67371
 
 
67372
 
  
67373
 
#line 45 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67374
 
 
67375
 
  
67376
 
#line 46 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67377
 
 
67378
 
  
67379
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67380
 
 
67381
 
  
67382
 
#line 48 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67383
 
 
67384
 
  
67385
 
#line 49 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81609
#line 39 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81610
 
 
81611
  
 
81612
#line 40 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81613
 
 
81614
  
 
81615
#line 41 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81616
 
 
81617
  
 
81618
#line 42 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81619
 
 
81620
  
 
81621
#line 43 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81622
 
 
81623
  
 
81624
#line 44 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81625
 
 
81626
  
 
81627
#line 45 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81628
 
 
81629
  
 
81630
#line 46 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81631
 
 
81632
  
 
81633
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81634
 
 
81635
  
 
81636
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67386
81637
 
67387
81638
}
67388
81639
 
67389
81640
 
67390
 
#line 67391 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81641
#line 81642 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81642
class CCExprResolve;
 
81643
class CExprResolve;
67391
81644
class WinIfExists;
67392
81645
class WinImportHandler;
67393
81646
class WinMacros;
67394
 
class CMatchSyntax;
 
81647
class WinAsm;
 
81648
class WinDeclSpecs;
 
81649
class WinMemberExplSpec;
 
81650
class WinTypeKeywords;
 
81651
class WinFriend;
67395
81652
class ExtAC;
67396
81653
class ExtACBuilderCoupling;
67397
81654
class ExtACSyntaxCoupling;
67398
81655
class ExtACTree;
67399
81656
class ExtACKeywords;
67400
 
class WinAsm;
67401
 
class WinDeclSpecs;
67402
 
class WinMemberExplSpec;
67403
 
class WinTypeKeywords;
67404
81657
class PragmaOnceUnitState;
67405
81658
class PragmaOnce;
67406
 
class CCExprResolve;
67407
 
class CExprResolve;
 
81659
class CMatchSyntax;
67408
81660
 
67409
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81661
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67410
81662
class ExtGnu {
67411
 
#line 67412 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81663
#line 81664 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67412
81664
 
67413
81665
public:
67414
81666
  static ExtGnu *aspectof () {
67420
81672
  }
67421
81673
private:
67422
81674
 
67423
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81675
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67424
81676
 
67425
 
#line 67426 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81677
#line 81678 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81678
  friend class ::CCExprResolve;
 
81679
  friend class ::CExprResolve;
67426
81680
  friend class ::WinIfExists;
67427
81681
  friend class ::WinImportHandler;
67428
81682
  friend class ::WinMacros;
67429
 
  friend class ::CMatchSyntax;
 
81683
  friend class ::WinAsm;
 
81684
  friend class ::WinDeclSpecs;
 
81685
  friend class ::WinMemberExplSpec;
 
81686
  friend class ::WinTypeKeywords;
 
81687
  friend class ::WinFriend;
67430
81688
  friend class ::ExtAC;
67431
81689
  friend class ::ExtACBuilderCoupling;
67432
81690
  friend class ::ExtACSyntaxCoupling;
67433
81691
  friend class ::ExtACTree;
67434
81692
  friend class ::ExtACKeywords;
67435
 
  friend class ::WinAsm;
67436
 
  friend class ::WinDeclSpecs;
67437
 
  friend class ::WinMemberExplSpec;
67438
 
  friend class ::WinTypeKeywords;
67439
81693
  friend class ::PragmaOnceUnitState;
67440
81694
  friend class ::PragmaOnce;
67441
 
  friend class ::CCExprResolve;
67442
 
  friend class ::CExprResolve;
 
81695
  friend class ::CMatchSyntax;
67443
81696
 
67444
 
#line 52 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81697
#line 51 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67445
81698
 
67446
81699
 
67447
81700
  // flags to enable/disable certain Gnu features
67454
81707
 
67455
81708
  // pointcut definitions
67456
81709
  
67457
 
#line 63 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67458
 
 
67459
 
  
67460
 
#line 64 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67461
 
 
67462
 
  
67463
 
#line 65 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67464
 
 
67465
 
  
67466
 
#line 66 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67467
 
 
67468
 
  
67469
 
#line 67 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81710
#line 62 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81711
 
 
81712
  
 
81713
#line 63 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81714
 
 
81715
  
 
81716
#line 64 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81717
 
 
81718
  
 
81719
#line 65 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81720
 
 
81721
  
 
81722
#line 66 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81723
 
 
81724
  
 
81725
#line 67 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67470
81726
 
67471
81727
 
67472
81728
  // ----------------------------------------------------
67475
81731
 
67476
81732
  // structural extensions
67477
81733
  
67478
 
#line 74 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67479
 
 
67480
 
  
67481
 
#line 75 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67482
 
 
67483
 
 
67484
 
  // extended asm statement
67485
 
  
67486
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67487
 
 
67488
 
public: template<class JoinPoint> void __a0_after 
67489
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67490
 
 
67491
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67492
 
(JoinPoint *tjp, CSyntax *syntax)
67493
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67494
 
 {
67495
 
#line 67496 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
67496
 
 
67497
 
  typedef typename JoinPoint::That __JP_That;
67498
 
  typedef typename JoinPoint::Target __JP_Target;
67499
 
  typedef typename JoinPoint::Result __JP_Result;
67500
 
 
67501
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67502
 
 
67503
 
    CTree *&result = *(CTree**)tjp->result ();
67504
 
    if (extended_asm && !result &&
67505
 
        ((__JP_That
67506
 
#line 82 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67507
 
*)syntax)->look_ahead (TOK_ASM) &&
67508
 
        ((__JP_That
67509
 
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67510
 
*)syntax)->parse (&__JP_That
67511
 
#line 83 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67512
 
::gnu_asm_def)) {
67513
 
      result = ((__JP_That
67514
 
#line 84 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67515
 
*)syntax)->builder().simple_decl ();
67516
 
    }
67517
 
  }
67518
 
#line 67519 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
67519
 
 
67520
 
private:
67521
 
 
67522
 
#line 86 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67523
 
 
67524
 
 
67525
 
  // extended asm statement
67526
 
  
67527
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67528
 
 
67529
 
public: template<class JoinPoint> void __a1_around 
67530
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67531
 
 
67532
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67533
 
(JoinPoint *tjp, CSyntax *syn)
67534
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67535
 
 {
67536
 
#line 67537 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
67537
 
 
67538
 
  typedef typename JoinPoint::That __JP_That;
67539
 
  typedef typename JoinPoint::Target __JP_Target;
67540
 
  typedef typename JoinPoint::Result __JP_Result;
67541
 
 
67542
 
#line 90 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81734
#line 74 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81735
 
 
81736
  
 
81737
#line 75 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81738
 
 
81739
 
 
81740
  // extended asm statement
 
81741
  
 
81742
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81743
 
 
81744
public: template<class JoinPoint> void __a0_around 
 
81745
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81746
 
 
81747
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81748
(JoinPoint *tjp, Puma::CSyntax *syn)
 
81749
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81750
 {
 
81751
#line 81752 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81752
 
 
81753
  typedef typename JoinPoint::That __JP_That;
 
81754
  typedef typename JoinPoint::Target __JP_Target;
 
81755
  typedef typename JoinPoint::Result __JP_Result;
 
81756
 
 
81757
#line 79 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67543
81758
 
67544
81759
    if (extended_asm)
67545
81760
      *tjp->result () = ((__JP_That
67546
 
#line 92 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81761
#line 81 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67547
81762
*)syn)->gnu_asm_def ();
67548
81763
    else
67549
81764
      tjp->proceed ();
67550
81765
  }
67551
 
#line 67552 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
67552
 
 
67553
 
private:
67554
 
 
67555
 
#line 95 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67556
 
 
 
81766
#line 81767 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81767
 
 
81768
private:
 
81769
 
 
81770
#line 84 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81771
 
 
81772
 
 
81773
  // extended asm init declarator syntax
 
81774
  
 
81775
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81776
 
 
81777
public: template<class JoinPoint> void __a1_after 
 
81778
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81779
 
 
81780
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81781
(JoinPoint *tjp, Puma::CSyntax *syn)
 
81782
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81783
 {
 
81784
#line 81785 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81785
 
 
81786
  typedef typename JoinPoint::That __JP_That;
 
81787
  typedef typename JoinPoint::Target __JP_Target;
 
81788
  typedef typename JoinPoint::Result __JP_Result;
 
81789
 
 
81790
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81791
 
 
81792
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
81793
    if (extended_asm && !result &&
 
81794
        ((__JP_That
 
81795
#line 92 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81796
*)syn)->look_ahead (Puma::TOK_ASM))
 
81797
      result = ((__JP_That
 
81798
#line 93 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81799
*)syn)->gnu_asm_spec ();
 
81800
  }
 
81801
#line 81802 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
81802
 
 
81803
private:
 
81804
 
 
81805
#line 94 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81806
 
 
81807
 
 
81808
//   // asm declaration specifiers
 
81809
//   advice within (derived (syntax ())) &&
 
81810
//          execution ("% Puma::%::init_simple_type_spec()") : after () {
 
81811
//     if (extended_asm)
 
81812
//       tjp->that ()->_simple_type_spec_1.set (Puma::TOK_ASM);
 
81813
//   }
 
81814
//   advice execution ("% Puma::CSyntax::rule_simple_type_spec()") : after () {
 
81815
//     Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
81816
//     if (extended_asm && !result && tjp->that ()->look_ahead (Puma::TOK_ASM) &&
 
81817
//         tjp->that ()->parse (&JoinPoint::That::gnu_asm_spec))
 
81818
//       result = tjp->that ()->builder ().gnu_asm_spec ();
 
81819
//   }
 
81820
//   advice execution ("% Puma::CCSyntax::rule_simple_type_spec()") : after () {
 
81821
//     Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
81822
//     if (extended_asm && !result && tjp->that ()->look_ahead (Puma::TOK_ASM) &&
 
81823
//         tjp->that ()->parse (&JoinPoint::That::gnu_asm_spec))
 
81824
//       result = tjp->that ()->semantic ().simple_type_spec ();
 
81825
//   }
 
81826
//   // make the analysis function aware of 'asm(...)'
 
81827
//   advice execution("bool Puma::%::analyze(...)") && within (csemdeclspecs ()) &&
 
81828
//          args (spec): after (Puma::CTree *spec) {
 
81829
//     bool &result = *tjp->result ();
 
81830
//     if (!result && spec->NodeName () == Puma::CT_GnuAsmSpec::NodeId ())
 
81831
//       result = true;
 
81832
//   }
67557
81833
 
67558
81834
  // ----------------------------------------------------
67559
81835
  // the 'restrict' keyword
67561
81837
 
67562
81838
  // extended cv qualifier
67563
81839
  
67564
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81840
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67565
81841
 
67566
81842
public: template<class JoinPoint> void __a2_after 
67567
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81843
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67568
81844
 
67569
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81845
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67570
81846
(JoinPoint *tjp)
67571
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81847
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67572
81848
 {
67573
 
#line 67574 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81849
#line 81850 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67574
81850
 
67575
81851
  typedef typename JoinPoint::That __JP_That;
67576
81852
  typedef typename JoinPoint::Target __JP_Target;
67577
81853
  typedef typename JoinPoint::Result __JP_Result;
67578
81854
 
67579
 
#line 102 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81855
#line 127 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67580
81856
 
67581
81857
    if (extended_cv_qual)
67582
 
      tjp->that ()->_cv_qual_1.set (TOK_RESTRICT);
 
81858
      tjp->that ()->_cv_qual_1.set (Puma::TOK_RESTRICT);
67583
81859
  }
67584
 
#line 67585 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81860
#line 81861 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67585
81861
 
67586
81862
private:
67587
81863
 
67588
 
#line 105 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81864
#line 130 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67589
81865
 
67590
81866
 
67591
81867
  // -------------------------
67594
81870
 
67595
81871
  // pointcut definitions
67596
81872
  
67597
 
#line 112 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81873
#line 137 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67598
81874
 
67599
81875
  
67600
 
#line 113 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81876
#line 138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67601
81877
 
67602
81878
 
67603
81879
  // structural extensions
67604
81880
  
67605
 
#line 116 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67606
 
 
67607
 
  
67608
 
#line 117 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67609
 
 
67610
 
  
67611
 
#line 118 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81881
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81882
 
 
81883
  
 
81884
#line 142 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81885
 
 
81886
  
 
81887
#line 143 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67612
81888
 
67613
81889
 
67614
81890
  // extended primary expression syntax
67615
81891
  
67616
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81892
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67617
81893
 
67618
81894
public: template<class JoinPoint> void __a3_around 
67619
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81895
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67620
81896
 
67621
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81897
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67622
81898
(JoinPoint *tjp)
67623
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81899
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67624
81900
 {
67625
 
#line 67626 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81901
#line 81902 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67626
81902
 
67627
81903
  typedef typename JoinPoint::That __JP_That;
67628
81904
  typedef typename JoinPoint::Target __JP_Target;
67629
81905
  typedef typename JoinPoint::Result __JP_Result;
67630
81906
 
67631
 
#line 122 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81907
#line 147 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67632
81908
 
67633
81909
    __JP_That
67634
 
#line 123 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81910
#line 148 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67635
81911
 *syntax = tjp->that ();
67636
81912
    if (statement_exprs &&
67637
81913
        ((__JP_That
67638
 
#line 125 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67639
 
*)syntax)->look_ahead (TOK_OPEN_ROUND) &&
 
81914
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81915
*)syntax)->look_ahead (Puma::TOK_OPEN_ROUND) &&
67640
81916
        ((__JP_That
67641
 
#line 126 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67642
 
*)syntax)->look_ahead (TOK_OPEN_CURLY, 2)) {
67643
 
      CTree *&result = *(CTree**)tjp->result ();
 
81917
#line 151 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81918
*)syntax)->look_ahead (Puma::TOK_OPEN_CURLY, 2)) {
 
81919
      Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
67644
81920
      ((__JP_That
67645
 
#line 128 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67646
 
*)syntax)->consume (); // skip the TOK_OPEN_ROUND
 
81921
#line 153 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81922
*)syntax)->consume (); // skip the Puma::TOK_OPEN_ROUND
67647
81923
      result =
67648
81924
        (((__JP_That
67649
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81925
#line 155 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67650
81926
*)syntax)->parse (&__JP_That
67651
 
#line 130 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81927
#line 155 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67652
81928
::cmpd_stmt) &&
67653
81929
        ((__JP_That
67654
 
#line 131 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67655
 
*)syntax)->parse (TOK_CLOSE_ROUND)) ?
 
81930
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81931
*)syntax)->parse (Puma::TOK_CLOSE_ROUND)) ?
67656
81932
        ((__JP_That
67657
 
#line 132 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81933
#line 157 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67658
81934
*)syntax)->builder().gnu_statement_expr () : 0;
67659
81935
    }
67660
81936
    else
67661
81937
      tjp->proceed ();
67662
81938
  }
67663
 
#line 67664 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81939
#line 81940 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67664
81940
 
67665
81941
private:
67666
81942
 
67667
 
#line 136 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81943
#line 161 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67668
81944
 
67669
81945
 
67670
81946
  // ----------------------
67673
81949
 
67674
81950
  // structural extensions
67675
81951
  
67676
 
#line 143 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67677
 
 
67678
 
  
67679
 
#line 144 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67680
 
 
67681
 
  
67682
 
#line 145 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67683
 
 
67684
 
  
67685
 
#line 146 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81952
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81953
 
 
81954
  
 
81955
#line 169 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81956
 
 
81957
  
 
81958
#line 170 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81959
 
 
81960
  
 
81961
#line 171 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67686
81962
 
67687
81963
 
67688
81964
  // introduce new state into CSemDeclSpecs
67689
81965
  
67690
 
#line 149 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67691
 
 
67692
 
  
67693
 
#line 154 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81966
#line 174 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67694
81967
 
67695
81968
 
67696
81969
  // syntax extension
67697
81970
  
67698
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81971
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67699
81972
 
67700
81973
public: template<class JoinPoint> void __a4_after 
67701
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81974
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67702
81975
 
67703
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81976
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67704
81977
(JoinPoint *tjp)
67705
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81978
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67706
81979
 {
67707
 
#line 67708 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81980
#line 81981 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67708
81981
 
67709
81982
  typedef typename JoinPoint::That __JP_That;
67710
81983
  typedef typename JoinPoint::Target __JP_Target;
67711
81984
  typedef typename JoinPoint::Result __JP_Result;
67712
81985
 
67713
 
#line 158 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81986
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67714
81987
 
67715
81988
    if (typeof_keyword)
67716
 
      tjp->that ()->_simple_type_spec_1.set (TOK_TYPEOF);
 
81989
      tjp->that ()->_simple_type_spec_1.set (Puma::TOK_TYPEOF);
67717
81990
  }
67718
 
#line 67719 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
81991
#line 81992 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67719
81992
 
67720
81993
private:
67721
81994
 
67722
 
#line 161 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81995
#line 181 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67723
81996
 
67724
81997
  
67725
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
81998
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67726
81999
 
67727
82000
public: template<class JoinPoint> void __a5_after 
67728
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82001
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67729
82002
 
67730
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82003
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67731
82004
(JoinPoint *tjp)
67732
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82005
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67733
82006
 {
67734
 
#line 67735 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82007
#line 82008 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67735
82008
 
67736
82009
  typedef typename JoinPoint::That __JP_That;
67737
82010
  typedef typename JoinPoint::Target __JP_Target;
67738
82011
  typedef typename JoinPoint::Result __JP_Result;
67739
82012
 
67740
 
#line 162 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82013
#line 182 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67741
82014
 
67742
 
    CTree *&result = *(CTree**)tjp->result ();
67743
 
    if (typeof_keyword && !result && tjp->that ()->look_ahead (TOK_TYPEOF) &&
 
82015
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
82016
    if (typeof_keyword && !result && tjp->that ()->look_ahead (Puma::TOK_TYPEOF) &&
67744
82017
        tjp->that ()->parse (&__JP_That
67745
 
#line 165 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82018
#line 185 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67746
82019
::gnu_typeof))
67747
82020
      result = tjp->that ()->builder ().simple_type_spec ();
67748
82021
  }
67749
 
#line 67750 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82022
#line 82023 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67750
82023
 
67751
82024
private:
67752
82025
 
67753
 
#line 167 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82026
#line 187 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67754
82027
 
67755
82028
  
67756
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82029
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67757
82030
 
67758
82031
public: template<class JoinPoint> void __a6_after 
67759
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82032
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67760
82033
 
67761
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82034
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67762
82035
(JoinPoint *tjp)
67763
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82036
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67764
82037
 {
67765
 
#line 67766 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82038
#line 82039 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67766
82039
 
67767
82040
  typedef typename JoinPoint::That __JP_That;
67768
82041
  typedef typename JoinPoint::Target __JP_Target;
67769
82042
  typedef typename JoinPoint::Result __JP_Result;
67770
82043
 
67771
 
#line 168 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82044
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67772
82045
 
67773
 
    CTree *&result = *(CTree**)tjp->result ();
67774
 
    if (typeof_keyword && !result && tjp->that ()->look_ahead (TOK_TYPEOF) &&
 
82046
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
82047
    if (typeof_keyword && !result && tjp->that ()->look_ahead (Puma::TOK_TYPEOF) &&
67775
82048
        tjp->that ()->parse (&__JP_That
67776
 
#line 171 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82049
#line 191 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67777
82050
::gnu_typeof))
67778
82051
      result = tjp->that ()->semantic ().simple_type_spec ();
67779
82052
  }
67780
 
#line 67781 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82053
#line 82054 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67781
82054
 
67782
82055
private:
67783
82056
 
67784
 
#line 173 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82057
#line 193 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67785
82058
 
67786
82059
 
67787
82060
  // initialize the new state before an analysis starts
67788
82061
  
67789
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82062
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67790
82063
 
67791
82064
public: void __a7_before 
67792
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82065
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67793
82066
 
67794
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67795
 
(CSemDeclSpecs &csd)
67796
 
#line 177 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82067
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82068
(Puma::CSemDeclSpecs &csd)
 
82069
#line 197 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67797
82070
 {
67798
82071
    csd._typeofs = 0;
67799
82072
    csd._typeof_node = 0;
67800
82073
  }
67801
 
#line 67802 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82074
#line 82075 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67802
82075
 
67803
82076
private:
67804
82077
 
67805
 
#line 180 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82078
#line 200 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67806
82079
 
67807
82080
 
67808
82081
  // make the analysis function aware of 'typeof'
67809
82082
  
67810
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82083
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67811
82084
 
67812
82085
public: template<class JoinPoint> void __a8_after 
67813
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82086
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67814
82087
 
67815
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67816
 
(JoinPoint *tjp, CSemDeclSpecs &csd, CTree *spec)
67817
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82088
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82089
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd, Puma::CTree *spec)
 
82090
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67818
82091
 {
67819
 
#line 67820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82092
#line 82093 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67820
82093
 
67821
82094
  typedef typename JoinPoint::That __JP_That;
67822
82095
  typedef typename JoinPoint::Target __JP_Target;
67823
82096
  typedef typename JoinPoint::Result __JP_Result;
67824
82097
 
67825
 
#line 184 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82098
#line 204 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67826
82099
 
67827
82100
    bool &result = *tjp->result ();
67828
 
    if (!result && spec->NodeName () == CT_GnuTypeof::NodeId ()) {
 
82101
    if (!result && spec->NodeName () == Puma::CT_GnuTypeof::NodeId ()) {
67829
82102
      csd._typeofs++;      
67830
 
      csd._typeof_node = (CT_GnuTypeof*)spec;
 
82103
      csd._typeof_node = (Puma::CT_GnuTypeof*)spec;
67831
82104
      result = true;
67832
82105
    }
67833
82106
  }
67834
 
#line 67835 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82107
#line 82108 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67835
82108
 
67836
82109
private:
67837
82110
 
67838
 
#line 191 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82111
#line 211 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67839
82112
 
67840
82113
  
67841
82114
  // make the check functions aware of 'typeof'
67842
82115
  
67843
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82116
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67844
82117
 
67845
82118
public: template<class JoinPoint> void __a9_after 
67846
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82119
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67847
82120
 
67848
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67849
 
(JoinPoint *tjp, CSemDeclSpecs &csd, bool &have_type)
67850
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82121
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82122
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd, bool &have_type)
 
82123
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67851
82124
 {
67852
 
#line 67853 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82125
#line 82126 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67853
82126
 
67854
82127
  typedef typename JoinPoint::That __JP_That;
67855
82128
  typedef typename JoinPoint::Target __JP_Target;
67856
82129
  typedef typename JoinPoint::Result __JP_Result;
67857
82130
 
67858
 
#line 196 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82131
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67859
82132
 
67860
82133
    bool &result = *tjp->result ();
67861
82134
    if (result && !have_type && csd._typeofs) {
67863
82136
      result    = true;
67864
82137
    }
67865
82138
  }
67866
 
#line 67867 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82139
#line 82140 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67867
82140
 
67868
82141
private:
67869
82142
 
67870
 
#line 202 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82143
#line 222 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67871
82144
 
67872
82145
  
67873
82146
  
67874
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82147
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67875
82148
 
67876
82149
public: template<class JoinPoint> void __a10_after 
67877
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82150
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67878
82151
 
67879
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67880
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
67881
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82152
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82153
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
82154
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67882
82155
 {
67883
 
#line 67884 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82156
#line 82157 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67884
82157
 
67885
82158
  typedef typename JoinPoint::That __JP_That;
67886
82159
  typedef typename JoinPoint::Target __JP_Target;
67887
82160
  typedef typename JoinPoint::Result __JP_Result;
67888
82161
 
67889
 
#line 205 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82162
#line 225 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67890
82163
 
67891
82164
    bool &result = *tjp->result ();
67892
82165
    if (result) {
67893
 
      if ((csd._prim_map[CT_PrimDeclSpec::PDS_SIGNED] || 
67894
 
           csd._prim_map[CT_PrimDeclSpec::PDS_UNSIGNED]) &&
 
82166
      if ((csd._prim_map[Puma::CT_PrimDeclSpec::PDS_SIGNED] || 
 
82167
           csd._prim_map[Puma::CT_PrimDeclSpec::PDS_UNSIGNED]) &&
67895
82168
          csd._typeofs) {
67896
 
        *csd._err << sev_error << csd._dss->token ()->location () 
 
82169
        *csd._err << Puma::sev_error << csd._dss->token ()->location () 
67897
82170
                  << "`signed' or `unsigned' invalid for 'typeof'"
67898
 
                  << endMessage;
 
82171
                  << Puma::endMessage;
67899
82172
        result = false;
67900
82173
      }
67901
82174
    }
67902
82175
  }
67903
 
#line 67904 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82176
#line 82177 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67904
82177
 
67905
82178
private:
67906
82179
 
67907
 
#line 217 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82180
#line 237 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67908
82181
 
67909
82182
 
67910
82183
  
67911
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82184
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67912
82185
 
67913
82186
public: template<class JoinPoint> void __a11_after 
67914
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82187
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67915
82188
 
67916
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67917
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
67918
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82189
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82190
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
82191
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67919
82192
 {
67920
 
#line 67921 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82193
#line 82194 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67921
82194
 
67922
82195
  typedef typename JoinPoint::That __JP_That;
67923
82196
  typedef typename JoinPoint::Target __JP_Target;
67924
82197
  typedef typename JoinPoint::Result __JP_Result;
67925
82198
 
67926
 
#line 220 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82199
#line 240 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67927
82200
 
67928
82201
    bool &result = *tjp->result ();
67929
82202
    if (result && csd._typeofs > 0) {
67930
 
      *csd._err << sev_error << csd._dss->token ()->location () 
 
82203
      *csd._err << Puma::sev_error << csd._dss->token ()->location () 
67931
82204
                << "invalid type specified in declaration"
67932
 
                << endMessage;
 
82205
                << Puma::endMessage;
67933
82206
      result = false;
67934
82207
    }
67935
82208
  }
67936
 
#line 67937 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82209
#line 82210 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67937
82210
 
67938
82211
private:
67939
82212
 
67940
 
#line 228 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82213
#line 248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67941
82214
 
67942
82215
 
67943
82216
  // make the type creation function aware of 'typeof'
67944
82217
  
67945
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82218
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67946
82219
 
67947
82220
public: template<class JoinPoint> void __a12_after 
67948
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82221
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67949
82222
 
67950
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
67951
 
(JoinPoint *tjp, CSemDeclSpecs &csd)
67952
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82223
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82224
(JoinPoint *tjp, Puma::CSemDeclSpecs &csd)
 
82225
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67953
82226
 {
67954
 
#line 67955 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82227
#line 82228 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67955
82228
 
67956
82229
  typedef typename JoinPoint::That __JP_That;
67957
82230
  typedef typename JoinPoint::Target __JP_Target;
67958
82231
  typedef typename JoinPoint::Result __JP_Result;
67959
82232
 
67960
 
#line 232 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82233
#line 252 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67961
82234
 
67962
 
    CTypeInfo *&result = *tjp->result ();
 
82235
    Puma::CTypeInfo *&result = *tjp->result ();
67963
82236
    if (result->isUndefined () && csd._typeofs) {
67964
82237
      csd._typeofs--;
67965
82238
      if (csd._typeof_node->Type ()) {
67966
 
        result = CTypeInfo::Duplicate (csd._typeof_node->Type ());
 
82239
        result = Puma::CTypeInfo::Duplicate (csd._typeof_node->Type ());
67967
82240
      }
67968
82241
    }
67969
82242
  }
67970
 
#line 67971 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82243
#line 82244 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67971
82244
 
67972
82245
private:
67973
82246
 
67974
 
#line 240 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82247
#line 260 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67975
82248
 
67976
82249
  
67977
82250
  // ----------------------
67980
82253
 
67981
82254
  // structural extensions
67982
82255
  
67983
 
#line 247 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82256
#line 267 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67984
82257
 
67985
82258
 
67986
82259
  
67987
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82260
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67988
82261
 
67989
82262
public: template<class JoinPoint> void __a13_after 
67990
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82263
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67991
82264
 
67992
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82265
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67993
82266
(JoinPoint *tjp)
67994
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82267
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
67995
82268
 {
67996
 
#line 67997 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82269
#line 82270 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
67997
82270
 
67998
82271
  typedef typename JoinPoint::That __JP_That;
67999
82272
  typedef typename JoinPoint::Target __JP_Target;
68000
82273
  typedef typename JoinPoint::Result __JP_Result;
68001
82274
 
68002
 
#line 250 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82275
#line 270 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68003
82276
 
68004
82277
    if (gnu_builtins)
68005
82278
      tjp->that ()->define_gnu_builtins ();
68006
82279
  }
68007
 
#line 68008 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82280
#line 82281 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
68008
82281
 
68009
82282
private:
68010
82283
 
68011
 
#line 253 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82284
#line 273 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68012
82285
 
68013
82286
 
68014
82287
  // ----------------------------------------------------
68016
82289
  // ----------------------------------------------------
68017
82290
 
68018
82291
  
68019
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82292
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68020
82293
 
68021
82294
public: template<class JoinPoint> void __a14_before 
68022
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82295
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68023
82296
 
68024
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82297
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68025
82298
(JoinPoint *tjp)
68026
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82299
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68027
82300
 {
68028
 
#line 68029 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82301
#line 82302 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
68029
82302
 
68030
82303
  typedef typename JoinPoint::That __JP_That;
68031
82304
  typedef typename JoinPoint::Target __JP_Target;
68032
82305
  typedef typename JoinPoint::Result __JP_Result;
68033
82306
 
68034
 
#line 260 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82307
#line 280 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68035
82308
 
68036
82309
    if (std_hack) {
68037
 
      CStructure *&scope = *(CStructure**)tjp->arg (0);
 
82310
      Puma::CStructure *&scope = *(Puma::CStructure**)tjp->arg (0);
68038
82311
      bool &nested = *(bool*)tjp->arg (1);
68039
82312
      if (scope->Parent ()->GlobalScope () &&
68040
82313
          strcmp (scope->Name (), "std") == 0)
68041
82314
        nested = true;
68042
82315
    }
68043
82316
  }
68044
 
#line 68045 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82317
#line 82318 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
68045
82318
 
68046
82319
private:
68047
82320
 
68048
 
#line 268 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82321
#line 288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68049
82322
 
68050
82323
  
68051
82324
  // get the configuration and check whether the GNU mode is enabled
68052
82325
  
68053
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82326
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68054
82327
 
68055
82328
public: void __a15_before 
68056
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82329
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68057
82330
 
68058
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
68059
 
(Config &config)
68060
 
#line 272 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82331
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82332
(Puma::Config &config)
 
82333
#line 292 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68061
82334
 {
68062
82335
    if (config.Option ("--gnu") || config.Option ("--gnu-2.95")) {
68063
82336
      extended_asm     = true;
68071
82344
    if (config.Option ("--gnu-2.95") || config.Option ("--gnu-std-hack"))
68072
82345
      std_hack = true;
68073
82346
  }
68074
 
#line 68075 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
68075
 
 
68076
 
private:
68077
 
 
68078
 
#line 284 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82347
#line 82348 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
82348
 
 
82349
private:
 
82350
 
 
82351
#line 304 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82352
 
 
82353
 
 
82354
  // --------------------------------------------------
 
82355
  // support for unnamed struct/union members
 
82356
  // --------------------------------------------------
 
82357
  
 
82358
  
 
82359
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82360
 
 
82361
public: template<class JoinPoint> void __a16_around 
 
82362
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82363
 
 
82364
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82365
(JoinPoint *tjp)
 
82366
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82367
 {
 
82368
#line 82369 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
82369
 
 
82370
  typedef typename JoinPoint::That __JP_That;
 
82371
  typedef typename JoinPoint::Target __JP_Target;
 
82372
  typedef typename JoinPoint::Result __JP_Result;
 
82373
 
 
82374
#line 310 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82375
 
 
82376
    // 2: type_spec_seq                          ;
 
82377
    // 3: type_spec_seq  member_declarator_list  ;
 
82378
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
82379
    if (! (tjp->that ()->parse (&__JP_That
 
82380
#line 314 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82381
::type_spec_seq) && 
 
82382
           tjp->that ()->opt(tjp->that ()->parse (&__JP_That
 
82383
#line 315 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82384
::member_declarator_list)) && 
 
82385
           tjp->that ()->parse (Puma::TOK_SEMI_COLON))) {
 
82386
      result = (Puma::CTree*)0;
 
82387
    } else {
 
82388
      tjp->that ()->semantic ().finish_decl ();
 
82389
      result = tjp->that ()->builder ().member_decl (); 
 
82390
    }
 
82391
  }
 
82392
#line 82393 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
82393
 
 
82394
private:
 
82395
 
 
82396
#line 322 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68079
82397
 
68080
82398
 
68081
82399
protected:
68084
82402
    statement_exprs (false)
68085
82403
  {}
68086
82404
};
68087
 
#line 68088 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
 
82405
#line 82406 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
68088
82406
 
68089
82407
namespace AC {
68090
 
  template <class JoinPoint, class Binding>
68091
 
  inline void invoke_ExtGnu_ExtGnu_a0_after (JoinPoint *tjp) {
68092
 
    typedef typename Binding::template Arg<0> Arg0;
68093
 
    ::ExtGnu::aspectof()->__a0_after (tjp, (Puma::CSyntax *)Arg0::val (tjp));
68094
 
  }
68095
 
  template <class JoinPoint, class Binding>
68096
 
  inline void invoke_ExtGnu_ExtGnu_a1_around (JoinPoint *tjp) {
68097
 
    typedef typename Binding::template Arg<0> Arg0;
68098
 
    ::ExtGnu::aspectof()->__a1_around (tjp, (Puma::CSyntax *)Arg0::val (tjp));
68099
 
  }
68100
 
  template <class JoinPoint>
68101
 
  inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp) {
 
82408
  template <class JoinPoint>
 
82409
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a0_around (JoinPoint *tjp) {
 
82410
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a0_around::template Arg<0> Arg0;
 
82411
    ::ExtGnu::aspectof()->__a0_around (tjp, (Puma::CSyntax *)Arg0::val (tjp));
 
82412
  }
 
82413
  template <class JoinPoint>
 
82414
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a1_after (JoinPoint *tjp) {
 
82415
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a1_after::template Arg<0> Arg0;
 
82416
    ::ExtGnu::aspectof()->__a1_after (tjp, (Puma::CSyntax *)Arg0::val (tjp));
 
82417
  }
 
82418
  template <class JoinPoint>
 
82419
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a2_after (JoinPoint *tjp) {
68102
82420
    ::ExtGnu::aspectof()->__a2_after (tjp);
68103
82421
  }
68104
82422
  template <class JoinPoint>
68105
 
  inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp) {
 
82423
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a3_around (JoinPoint *tjp) {
68106
82424
    ::ExtGnu::aspectof()->__a3_around (tjp);
68107
82425
  }
68108
82426
  template <class JoinPoint>
68109
 
  inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp) {
 
82427
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a4_after (JoinPoint *tjp) {
68110
82428
    ::ExtGnu::aspectof()->__a4_after (tjp);
68111
82429
  }
68112
82430
  template <class JoinPoint>
68113
 
  inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp) {
 
82431
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a5_after (JoinPoint *tjp) {
68114
82432
    ::ExtGnu::aspectof()->__a5_after (tjp);
68115
82433
  }
68116
82434
  template <class JoinPoint>
68117
 
  inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp) {
 
82435
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a6_after (JoinPoint *tjp) {
68118
82436
    ::ExtGnu::aspectof()->__a6_after (tjp);
68119
82437
  }
68120
 
  template <class JoinPoint, class Binding>
68121
 
  inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp) {
68122
 
    typedef typename Binding::template Arg<0> Arg0;
 
82438
  template <class JoinPoint>
 
82439
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a7_before (JoinPoint *tjp) {
 
82440
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a7_before::template Arg<0> Arg0;
68123
82441
    ::ExtGnu::aspectof()->__a7_before ((Puma::CSemDeclSpecs &)Arg0::val (tjp));
68124
82442
  }
68125
 
  template <class JoinPoint, class Binding>
68126
 
  inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp) {
68127
 
    typedef typename Binding::template Arg<0> Arg0;
68128
 
    typedef typename Binding::template Arg<1> Arg1;
 
82443
  template <class JoinPoint>
 
82444
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a8_after (JoinPoint *tjp) {
 
82445
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a8_after::template Arg<0> Arg0;
 
82446
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a8_after::template Arg<1> Arg1;
68129
82447
    ::ExtGnu::aspectof()->__a8_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp), (Puma::CTree *)Arg1::val (tjp));
68130
82448
  }
68131
 
  template <class JoinPoint, class Binding>
68132
 
  inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp) {
68133
 
    typedef typename Binding::template Arg<0> Arg0;
68134
 
    typedef typename Binding::template Arg<1> Arg1;
 
82449
  template <class JoinPoint>
 
82450
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a9_after (JoinPoint *tjp) {
 
82451
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a9_after::template Arg<0> Arg0;
 
82452
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a9_after::template Arg<1> Arg1;
68135
82453
    ::ExtGnu::aspectof()->__a9_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp), (bool &)Arg1::val (tjp));
68136
82454
  }
68137
 
  template <class JoinPoint, class Binding>
68138
 
  inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp) {
68139
 
    typedef typename Binding::template Arg<0> Arg0;
 
82455
  template <class JoinPoint>
 
82456
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a10_after (JoinPoint *tjp) {
 
82457
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a10_after::template Arg<0> Arg0;
68140
82458
    ::ExtGnu::aspectof()->__a10_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
68141
82459
  }
68142
 
  template <class JoinPoint, class Binding>
68143
 
  inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp) {
68144
 
    typedef typename Binding::template Arg<0> Arg0;
 
82460
  template <class JoinPoint>
 
82461
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a11_after (JoinPoint *tjp) {
 
82462
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a11_after::template Arg<0> Arg0;
68145
82463
    ::ExtGnu::aspectof()->__a11_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
68146
82464
  }
68147
 
  template <class JoinPoint, class Binding>
68148
 
  inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp) {
68149
 
    typedef typename Binding::template Arg<0> Arg0;
 
82465
  template <class JoinPoint>
 
82466
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a12_after (JoinPoint *tjp) {
 
82467
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a12_after::template Arg<0> Arg0;
68150
82468
    ::ExtGnu::aspectof()->__a12_after (tjp, (Puma::CSemDeclSpecs &)Arg0::val (tjp));
68151
82469
  }
68152
82470
  template <class JoinPoint>
68153
 
  inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp) {
 
82471
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a13_after (JoinPoint *tjp) {
68154
82472
    ::ExtGnu::aspectof()->__a13_after (tjp);
68155
82473
  }
68156
82474
  template <class JoinPoint>
68157
 
  inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp) {
 
82475
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a14_before (JoinPoint *tjp) {
68158
82476
    ::ExtGnu::aspectof()->__a14_before (tjp);
68159
82477
  }
68160
 
  template <class JoinPoint, class Binding>
68161
 
  inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp) {
68162
 
    typedef typename Binding::template Arg<0> Arg0;
 
82478
  template <class JoinPoint>
 
82479
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a15_before (JoinPoint *tjp) {
 
82480
    typedef typename JoinPoint::Binding_ExtGnu_ExtGnu_a15_before::template Arg<0> Arg0;
68163
82481
    ::ExtGnu::aspectof()->__a15_before ((Puma::Config &)Arg0::val (tjp));
68164
82482
  }
 
82483
  template <class JoinPoint>
 
82484
  __attribute((always_inline)) inline void invoke_ExtGnu_ExtGnu_a16_around (JoinPoint *tjp) {
 
82485
    ::ExtGnu::aspectof()->__a16_around (tjp);
 
82486
  }
68165
82487
68166
82488
 
68167
 
#line 291 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82489
#line 329 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68168
82490
 
68169
82491
 
68170
82492
 
68174
82496
 
68175
82497
// add rules to the C Syntax
68176
82498
 
68177
 
#line 305 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
68178
 
 
68179
 
 
68180
 
 
68181
 
#line 315 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
68182
 
 
68183
 
 
68184
 
 
68185
 
#line 321 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
68186
 
 
68187
 
 
68188
 
 
68189
 
#line 327 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
68190
 
 
68191
 
 
68192
 
 
68193
 
#line 332 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82499
#line 344 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82500
 
 
82501
 
 
82502
 
 
82503
#line 352 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82504
 
 
82505
 
 
82506
 
 
82507
#line 362 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82508
 
 
82509
 
 
82510
 
 
82511
#line 368 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82512
 
 
82513
 
 
82514
 
 
82515
#line 374 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82516
 
 
82517
 
 
82518
 
 
82519
#line 379 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68194
82520
 
68195
82521
 
68196
82522
// extend the C Builder
68197
82523
 
68198
 
#line 341 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
68199
 
 
68200
 
 
68201
 
 
68202
 
#line 355 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
68203
 
 
68204
 
 
68205
 
 
68206
 
#line 359 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
68207
 
 
68208
 
 
68209
 
 
68210
 
#line 364 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82524
#line 389 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82525
 
 
82526
 
 
82527
 
 
82528
#line 394 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82529
 
 
82530
 
 
82531
 
 
82532
#line 408 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82533
 
 
82534
 
 
82535
 
 
82536
#line 412 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82537
 
 
82538
 
 
82539
 
 
82540
#line 417 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68211
82541
 
68212
82542
        
68213
82543
 
68214
 
#line 368 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82544
#line 421 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68215
82545
 
68216
82546
 
68217
82547
// -------------------------
68220
82550
 
68221
82551
// C Builder extension
68222
82552
 
68223
 
#line 378 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
68224
 
 
68225
 
 
68226
 
 
68227
 
#line 382 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82553
#line 431 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82554
 
 
82555
 
 
82556
 
 
82557
#line 435 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68228
82558
 
68229
82559
 
68230
82560
// C semantic extension
68231
82561
 
68232
 
#line 388 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82562
#line 441 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68233
82563
 
68234
82564
 
68235
82565
// the necessary #include "..CSemVisitor.h" in CSemExpr.cc will is inserted
68236
82566
// manually (for now)!
68237
82567
 
68238
 
#line 422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82568
#line 475 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68239
82569
 
68240
82570
 
68241
82571
// C++ semantic extension
68242
82572
 
68243
 
#line 428 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82573
#line 481 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68244
82574
 
68245
82575
 
68246
82576
// the necessary #include "..CCSemVisitor.h" in CCSemExpr.cc will is inserted
68247
82577
// manually (for now)!
68248
82578
 
68249
 
#line 462 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82579
#line 515 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68250
82580
 
68251
82581
 
68252
82582
// ----------------------
68255
82585
 
68256
82586
// add rules to the C Syntax for the Gnu Typeof syntax
68257
82587
 
68258
 
#line 472 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
68259
 
 
68260
 
 
68261
 
 
68262
 
#line 478 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82588
#line 525 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82589
 
 
82590
 
 
82591
 
 
82592
#line 531 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68263
82593
 
68264
82594
 
68265
82595
// add rules to the C Builder for the Gnu Typeof syntax
68266
82596
 
68267
 
#line 484 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82597
#line 537 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68268
82598
 
68269
82599
 
68270
82600
// builder extension
68271
82601
 
68272
 
#line 497 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82602
#line 550 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68273
82603
 
68274
82604
 
68275
82605
// C semantic extension
68276
82606
 
68277
 
#line 503 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
68278
 
 
68279
 
 
68280
 
 
68281
 
#line 521 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82607
#line 556 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82608
 
 
82609
 
 
82610
 
 
82611
#line 574 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68282
82612
 
68283
82613
 
68284
82614
// C++ semantic extension
68285
82615
 
68286
 
#line 527 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
68287
 
 
68288
 
 
68289
 
 
68290
 
#line 544 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82616
#line 580 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82617
 
 
82618
 
 
82619
 
 
82620
#line 597 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68291
82621
 
68292
82622
 
68293
82623
 
68297
82627
 
68298
82628
// extend the C/C++ semantic
68299
82629
 
68300
 
#line 555 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
68301
 
 
68302
 
 
68303
 
 
68304
 
#line 894 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82630
#line 608 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
 
82631
 
 
82632
 
 
82633
 
 
82634
#line 947 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/ExtGnu.ah"
68305
82635
 
68306
82636
 
68307
82637
 
68308
82638
#endif /* __ext_gnu_h__ */
68309
82639
 
68310
 
#line 23 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
68311
 
#endif
68312
 
#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__)
68313
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtAC_ah__
68314
 
 
68315
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
68316
 
#endif
68317
 
#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__)
68318
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
82640
#line 115 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
 
82641
#endif
 
82642
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
82643
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
82644
#include "PragmaOnceUnitState.ah"
 
82645
#endif
 
82646
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
82647
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
82648
 
 
82649
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82650
// This file is part of PUMA.
 
82651
// Copyright (C) 1999-2003  The PUMA developer team.
 
82652
//                                                                
 
82653
// This program is free software;  you can redistribute it and/or 
 
82654
// modify it under the terms of the GNU General Public License as 
 
82655
// published by the Free Software Foundation; either version 2 of 
 
82656
// the License, or (at your option) any later version.            
 
82657
//                                                                
 
82658
// This program is distributed in the hope that it will be useful,
 
82659
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
82660
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
82661
// GNU General Public License for more details.                   
 
82662
//                                                                
 
82663
// You should have received a copy of the GNU General Public      
 
82664
// License along with this program; if not, write to the Free     
 
82665
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
82666
// MA  02111-1307  USA                                            
 
82667
 
 
82668
#ifndef __CMatchSyntax_ah__
 
82669
#define __CMatchSyntax_ah__
 
82670
 
 
82671
 
 
82672
#line 1 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/inc/Puma/CWildcardTokens.h"
 
82673
// This file is part of PUMA.
 
82674
// Copyright (C) 1999-2003  The PUMA developer team.
 
82675
//                                                                
 
82676
// This program is free software;  you can redistribute it and/or 
 
82677
// modify it under the terms of the GNU General Public License as 
 
82678
// published by the Free Software Foundation; either version 2 of 
 
82679
// the License, or (at your option) any later version.            
 
82680
//                                                                
 
82681
// This program is distributed in the hope that it will be useful,
 
82682
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
 
82683
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 
82684
// GNU General Public License for more details.                   
 
82685
//                                                                
 
82686
// You should have received a copy of the GNU General Public      
 
82687
// License along with this program; if not, write to the Free     
 
82688
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 
82689
// MA  02111-1307  USA                                            
 
82690
 
 
82691
#ifndef __C_WILDCARD_TOKENS__
 
82692
#define __C_WILDCARD_TOKENS__
 
82693
 
 
82694
namespace Puma {
 
82695
 
 
82696
 
 
82697
enum CWildcardTokens {
 
82698
  TOK_WC_AND = 500,
 
82699
  TOK_WC_OR,
 
82700
  TOK_WC_XOR,
 
82701
  TOK_WC_SEQ,
 
82702
  TOK_WC_IF,
 
82703
  TOK_WC_ELIF,
 
82704
  TOK_WC_ENDIF,
 
82705
  TOK_WC_NOT,
 
82706
  TOK_WC_EXACT,
 
82707
  TOK_WC_FIRST,
 
82708
  TOK_WC_LAST,
 
82709
  TOK_WC_LEAF,
 
82710
  TOK_WC_PRUNE,
 
82711
  TOK_WC_COLLECT,
 
82712
  TOK_WC_NODENAME,
 
82713
  TOK_WC_ELEMENT,
 
82714
 
 
82715
  TOK_DO_EXPR,
 
82716
  TOK_DO_EXPR_LIST,
 
82717
  TOK_DO_ID_EXPR,
 
82718
  TOK_DO_IDENTIFIER,
 
82719
  TOK_DO_DECL_SPEC,
 
82720
  TOK_DO_DECL_SPEC_SEQ,
 
82721
  TOK_DO_INIT_DECLARATOR_LIST,
 
82722
  TOK_DO_INIT_DECLARATOR,
 
82723
  TOK_DO_DECLARATOR,
 
82724
  TOK_DO_INIT,
 
82725
  TOK_DO_ARG_DECL_SEQ,
 
82726
  TOK_DO_FCT_BODY,
 
82727
  TOK_DO_CLASS_SPEC,
 
82728
  TOK_DO_MEMBER_SPEC,
 
82729
  TOK_DO_MEMBER_DECL,
 
82730
  TOK_DO_BASE_CLAUSE,
 
82731
  TOK_DO_CTOR_INIT,
 
82732
  TOK_DO_MEM_INIT,
 
82733
  TOK_DO_STMT,
 
82734
  TOK_DO_STMT_SEQ,
 
82735
 
 
82736
  TOK_ANY_EXPR,
 
82737
  TOK_ANY_EXPR_LIST,
 
82738
  TOK_ANY_ID_EXPR,
 
82739
  TOK_ANY_IDENTIFIER,
 
82740
  TOK_ANY_DECL_SPEC,
 
82741
  TOK_ANY_DECL_SPEC_SEQ,
 
82742
  TOK_ANY_INIT_DECLARATOR_LIST,
 
82743
  TOK_ANY_INIT_DECLARATOR,
 
82744
  TOK_ANY_DECLARATOR,
 
82745
  TOK_ANY_INIT,
 
82746
  TOK_ANY_ARG_DECL_SEQ,
 
82747
  TOK_ANY_FCT_BODY,
 
82748
  TOK_ANY_CLASS_SPEC,
 
82749
  TOK_ANY_MEMBER_SPEC,
 
82750
  TOK_ANY_MEMBER_DECL,
 
82751
  TOK_ANY_BASE_CLAUSE,
 
82752
  TOK_ANY_CTOR_INIT,
 
82753
  TOK_ANY_MEM_INIT,
 
82754
  TOK_ANY_STMT,
 
82755
  TOK_ANY_STMT_SEQ,
 
82756
  
 
82757
  TOK_IS_CLASS,
 
82758
  TOK_IS_ENUM,
 
82759
  TOK_IS_TYPEDEF
 
82760
};
 
82761
 
 
82762
 
 
82763
} // namespace Puma
 
82764
 
 
82765
#endif /* __WILDCARD_TOKENS__ */
 
82766
 
 
82767
#line 30 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82768
namespace Puma {
 
82769
  class CSyntax;
 
82770
  class CCSyntax;
 
82771
  class CBuilder;
 
82772
  class CSemantic;
 
82773
  class Container;
 
82774
  class CTree;
 
82775
  class CStrLiteral;
 
82776
  class CT_Any;
 
82777
  class CT_AnyList;
 
82778
  class CT_AnyExtension;
 
82779
  class CT_AnyCondition;
 
82780
  class CT_SimpleName;
 
82781
} // namespace Puma
 
82782
 
 
82783
 
 
82784
namespace Puma {
 
82785
  
 
82786
#line 47 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82787
 
 
82788
  
 
82789
#line 48 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82790
 
 
82791
  
 
82792
#line 49 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82793
 
 
82794
}
 
82795
 
 
82796
 
 
82797
#line 82798 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
82798
class CCExprResolve;
 
82799
class CExprResolve;
 
82800
class WinIfExists;
 
82801
class WinImportHandler;
 
82802
class WinMacros;
 
82803
class WinAsm;
 
82804
class WinDeclSpecs;
 
82805
class WinMemberExplSpec;
 
82806
class WinTypeKeywords;
 
82807
class WinFriend;
 
82808
class ExtAC;
 
82809
class ExtACBuilderCoupling;
 
82810
class ExtACSyntaxCoupling;
 
82811
class ExtACTree;
 
82812
class ExtACKeywords;
 
82813
class ExtGnu;
 
82814
class PragmaOnceUnitState;
 
82815
class PragmaOnce;
 
82816
 
 
82817
#line 52 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82818
class CMatchSyntax {
 
82819
#line 82820 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
82820
 
 
82821
public:
 
82822
  static CMatchSyntax *aspectof () {
 
82823
    static CMatchSyntax __instance;
 
82824
    return &__instance;
 
82825
  }
 
82826
  static CMatchSyntax *aspectOf () {
 
82827
    return aspectof ();
 
82828
  }
 
82829
private:
 
82830
 
 
82831
#line 52 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82832
 
 
82833
#line 82834 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
82834
  friend class ::CCExprResolve;
 
82835
  friend class ::CExprResolve;
 
82836
  friend class ::WinIfExists;
 
82837
  friend class ::WinImportHandler;
 
82838
  friend class ::WinMacros;
 
82839
  friend class ::WinAsm;
 
82840
  friend class ::WinDeclSpecs;
 
82841
  friend class ::WinMemberExplSpec;
 
82842
  friend class ::WinTypeKeywords;
 
82843
  friend class ::WinFriend;
 
82844
  friend class ::ExtAC;
 
82845
  friend class ::ExtACBuilderCoupling;
 
82846
  friend class ::ExtACSyntaxCoupling;
 
82847
  friend class ::ExtACTree;
 
82848
  friend class ::ExtACKeywords;
 
82849
  friend class ::ExtGnu;
 
82850
  friend class ::PragmaOnceUnitState;
 
82851
  friend class ::PragmaOnce;
 
82852
 
 
82853
#line 52 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82854
 
 
82855
  
 
82856
#line 53 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82857
 
 
82858
  
 
82859
#line 54 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82860
  
 
82861
  
 
82862
#line 55 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82863
 
 
82864
  
 
82865
#line 56 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82866
 
 
82867
 
 
82868
protected:
 
82869
  // flag to enable/disable parsing match expressions
 
82870
  bool match_expr;
 
82871
 
 
82872
protected:
 
82873
  CMatchSyntax () : match_expr (false) {}
 
82874
  
 
82875
  // introduce wildcard rules to CSyntax and CCSyntax
 
82876
  
 
82877
#line 66 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82878
 
 
82879
  
 
82880
#line 67 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82881
 
 
82882
 
 
82883
  // extend CBuilder
 
82884
  
 
82885
#line 70 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82886
 
 
82887
 
 
82888
  // extend CSemantic
 
82889
  
 
82890
#line 85 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82891
 
 
82892
 
 
82893
  // let first parse wildcards before parsing anything else
 
82894
  
 
82895
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82896
 
 
82897
public: template<class JoinPoint> void __a0_around 
 
82898
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82899
 
 
82900
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82901
(JoinPoint *tjp)
 
82902
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82903
 {
 
82904
#line 82905 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
82905
 
 
82906
  JoinPoint *&thisJoinPoint = tjp;
 
82907
 
 
82908
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82909
 
 
82910
#line 82911 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
82911
 
 
82912
  typedef typename JoinPoint::That __JP_That;
 
82913
  typedef typename JoinPoint::Target __JP_Target;
 
82914
  typedef typename JoinPoint::Result __JP_Result;
 
82915
 
 
82916
#line 89 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82917
 
 
82918
    if (match_expr &&
 
82919
        thisJoinPoint->that ()->parse (&__JP_That
 
82920
#line 91 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82921
::wildcards)) 
 
82922
      *(Puma::CTree**)thisJoinPoint->result () = 
 
82923
        thisJoinPoint->that ()->builder ().get_node (); 
 
82924
    else 
 
82925
      thisJoinPoint->action ().trigger (); 
 
82926
  }
 
82927
#line 82928 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
82928
 
 
82929
protected:
 
82930
 
 
82931
#line 96 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82932
 
 
82933
 
 
82934
  // extend the syntax to parse ANYs
 
82935
 
 
82936
  
 
82937
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82938
 
 
82939
public: template<class JoinPoint> void __a1_around 
 
82940
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82941
 
 
82942
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82943
(JoinPoint *tjp)
 
82944
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82945
 {
 
82946
#line 82947 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
82947
 
 
82948
  JoinPoint *&thisJoinPoint = tjp;
 
82949
 
 
82950
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82951
 
 
82952
#line 82953 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
82953
 
 
82954
  typedef typename JoinPoint::That __JP_That;
 
82955
  typedef typename JoinPoint::Target __JP_Target;
 
82956
  typedef typename JoinPoint::Result __JP_Result;
 
82957
 
 
82958
#line 101 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82959
 
 
82960
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_EXPR)) {
 
82961
      thisJoinPoint->that ()->parse (&__JP_That
 
82962
#line 103 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82963
::wc_extension); 
 
82964
      *(Puma::CTree**)thisJoinPoint->result () = 
 
82965
        thisJoinPoint->that ()->builder ().any (); 
 
82966
    } else 
 
82967
      thisJoinPoint->action ().trigger (); 
 
82968
  }
 
82969
#line 82970 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
82970
 
 
82971
protected:
 
82972
 
 
82973
#line 108 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82974
 
 
82975
 
 
82976
  
 
82977
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82978
 
 
82979
public: template<class JoinPoint> void __a2_around 
 
82980
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82981
 
 
82982
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82983
(JoinPoint *tjp)
 
82984
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82985
 {
 
82986
#line 82987 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
82987
 
 
82988
  JoinPoint *&thisJoinPoint = tjp;
 
82989
 
 
82990
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82991
 
 
82992
#line 82993 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
82993
 
 
82994
  typedef typename JoinPoint::That __JP_That;
 
82995
  typedef typename JoinPoint::Target __JP_Target;
 
82996
  typedef typename JoinPoint::Result __JP_Result;
 
82997
 
 
82998
#line 111 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
82999
 
 
83000
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_EXPR_LIST)) {
 
83001
      thisJoinPoint->that ()->parse (&__JP_That
 
83002
#line 113 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83003
::wc_extension); 
 
83004
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83005
        thisJoinPoint->that ()->builder ().any_list (); 
 
83006
    } else 
 
83007
      thisJoinPoint->action ().trigger (); 
 
83008
  }
 
83009
#line 83010 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83010
 
 
83011
protected:
 
83012
 
 
83013
#line 118 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83014
 
 
83015
 
 
83016
  
 
83017
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83018
 
 
83019
public: template<class JoinPoint> void __a3_around 
 
83020
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83021
 
 
83022
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83023
(JoinPoint *tjp)
 
83024
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83025
 {
 
83026
#line 83027 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83027
 
 
83028
  JoinPoint *&thisJoinPoint = tjp;
 
83029
 
 
83030
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83031
 
 
83032
#line 83033 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83033
 
 
83034
  typedef typename JoinPoint::That __JP_That;
 
83035
  typedef typename JoinPoint::Target __JP_Target;
 
83036
  typedef typename JoinPoint::Result __JP_Result;
 
83037
 
 
83038
#line 121 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83039
 
 
83040
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_ID_EXPR)) {
 
83041
      thisJoinPoint->that ()->parse (&__JP_That
 
83042
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83043
::wc_extension); 
 
83044
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83045
        thisJoinPoint->that ()->builder ().any (); 
 
83046
    } else 
 
83047
      thisJoinPoint->action ().trigger (); 
 
83048
  }
 
83049
#line 83050 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83050
 
 
83051
protected:
 
83052
 
 
83053
#line 128 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83054
 
 
83055
 
 
83056
  
 
83057
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83058
 
 
83059
public: template<class JoinPoint> void __a4_around 
 
83060
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83061
 
 
83062
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83063
(JoinPoint *tjp)
 
83064
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83065
 {
 
83066
#line 83067 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83067
 
 
83068
  JoinPoint *&thisJoinPoint = tjp;
 
83069
 
 
83070
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83071
 
 
83072
#line 83073 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83073
 
 
83074
  typedef typename JoinPoint::That __JP_That;
 
83075
  typedef typename JoinPoint::Target __JP_Target;
 
83076
  typedef typename JoinPoint::Result __JP_Result;
 
83077
 
 
83078
#line 131 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83079
 
 
83080
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_IDENTIFIER)) {
 
83081
      thisJoinPoint->that ()->parse (&__JP_That
 
83082
#line 133 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83083
::wc_extension); 
 
83084
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83085
        thisJoinPoint->that ()->builder ().any (); 
 
83086
    } else 
 
83087
      thisJoinPoint->action ().trigger (); 
 
83088
  }
 
83089
#line 83090 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83090
 
 
83091
protected:
 
83092
 
 
83093
#line 138 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83094
 
 
83095
 
 
83096
  
 
83097
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83098
 
 
83099
public: template<class JoinPoint> void __a5_after 
 
83100
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83101
 
 
83102
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83103
(JoinPoint *tjp)
 
83104
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83105
 {
 
83106
#line 83107 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83107
 
 
83108
  typedef typename JoinPoint::That __JP_That;
 
83109
  typedef typename JoinPoint::Target __JP_Target;
 
83110
  typedef typename JoinPoint::Result __JP_Result;
 
83111
 
 
83112
#line 141 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83113
 
 
83114
      tjp->that ()->_decl_spec_1.set (Puma::TOK_ANY_DECL_SPEC);
 
83115
  }
 
83116
#line 83117 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83117
 
 
83118
protected:
 
83119
 
 
83120
#line 143 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83121
 
 
83122
  
 
83123
  
 
83124
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83125
 
 
83126
public: template<class JoinPoint> void __a6_after 
 
83127
#line 146 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83128
 
 
83129
#line 146 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83130
(JoinPoint *tjp)
 
83131
#line 146 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83132
 {
 
83133
#line 83134 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83134
 
 
83135
  typedef typename JoinPoint::That __JP_That;
 
83136
  typedef typename JoinPoint::Target __JP_Target;
 
83137
  typedef typename JoinPoint::Result __JP_Result;
 
83138
 
 
83139
#line 146 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83140
 
 
83141
    Puma::CTree *&result = *(Puma::CTree**)tjp->result ();
 
83142
    if (match_expr && !result &&
 
83143
        tjp->that ()->parse (Puma::TOK_ANY_DECL_SPEC) &&
 
83144
        tjp->that ()->parse (&__JP_That
 
83145
#line 150 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83146
::wc_extension)) {
 
83147
      result = tjp->that ()->builder().any ();
 
83148
    }
 
83149
  }
 
83150
#line 83151 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83151
 
 
83152
protected:
 
83153
 
 
83154
#line 153 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83155
 
 
83156
 
 
83157
  
 
83158
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83159
 
 
83160
public: template<class JoinPoint> void __a7_around 
 
83161
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83162
 
 
83163
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83164
(JoinPoint *tjp)
 
83165
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83166
 {
 
83167
#line 83168 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83168
 
 
83169
  JoinPoint *&thisJoinPoint = tjp;
 
83170
 
 
83171
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83172
 
 
83173
#line 83174 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83174
 
 
83175
  typedef typename JoinPoint::That __JP_That;
 
83176
  typedef typename JoinPoint::Target __JP_Target;
 
83177
  typedef typename JoinPoint::Result __JP_Result;
 
83178
 
 
83179
#line 156 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83180
 
 
83181
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_DECL_SPEC_SEQ)) {
 
83182
      thisJoinPoint->that ()->parse (&__JP_That
 
83183
#line 158 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83184
::wc_extension); 
 
83185
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83186
        thisJoinPoint->that ()->builder ().any_list (); 
 
83187
    } else 
 
83188
      thisJoinPoint->action ().trigger (); 
 
83189
  }
 
83190
#line 83191 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83191
 
 
83192
protected:
 
83193
 
 
83194
#line 163 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83195
 
 
83196
 
 
83197
  
 
83198
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83199
 
 
83200
public: template<class JoinPoint> void __a8_around 
 
83201
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83202
 
 
83203
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83204
(JoinPoint *tjp)
 
83205
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83206
 {
 
83207
#line 83208 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83208
 
 
83209
  JoinPoint *&thisJoinPoint = tjp;
 
83210
 
 
83211
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83212
 
 
83213
#line 83214 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83214
 
 
83215
  typedef typename JoinPoint::That __JP_That;
 
83216
  typedef typename JoinPoint::Target __JP_Target;
 
83217
  typedef typename JoinPoint::Result __JP_Result;
 
83218
 
 
83219
#line 166 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83220
 
 
83221
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_INIT_DECLARATOR_LIST)) {
 
83222
      thisJoinPoint->that ()->parse (&__JP_That
 
83223
#line 168 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83224
::wc_extension); 
 
83225
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83226
        thisJoinPoint->that ()->builder ().any_list (); 
 
83227
    } else 
 
83228
      thisJoinPoint->action ().trigger (); 
 
83229
  }
 
83230
#line 83231 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83231
 
 
83232
protected:
 
83233
 
 
83234
#line 173 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83235
 
 
83236
 
 
83237
  
 
83238
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83239
 
 
83240
public: template<class JoinPoint> void __a9_around 
 
83241
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83242
 
 
83243
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83244
(JoinPoint *tjp)
 
83245
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83246
 {
 
83247
#line 83248 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83248
 
 
83249
  JoinPoint *&thisJoinPoint = tjp;
 
83250
 
 
83251
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83252
 
 
83253
#line 83254 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83254
 
 
83255
  typedef typename JoinPoint::That __JP_That;
 
83256
  typedef typename JoinPoint::Target __JP_Target;
 
83257
  typedef typename JoinPoint::Result __JP_Result;
 
83258
 
 
83259
#line 176 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83260
 
 
83261
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_INIT_DECLARATOR)) {
 
83262
      thisJoinPoint->that ()->parse (&__JP_That
 
83263
#line 178 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83264
::wc_extension); 
 
83265
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83266
        thisJoinPoint->that ()->builder ().any (); 
 
83267
    } else 
 
83268
      thisJoinPoint->action ().trigger (); 
 
83269
  }
 
83270
#line 83271 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83271
 
 
83272
protected:
 
83273
 
 
83274
#line 183 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83275
 
 
83276
 
 
83277
  
 
83278
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83279
 
 
83280
public: template<class JoinPoint> void __a10_around 
 
83281
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83282
 
 
83283
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83284
(JoinPoint *tjp)
 
83285
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83286
 {
 
83287
#line 83288 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83288
 
 
83289
  JoinPoint *&thisJoinPoint = tjp;
 
83290
 
 
83291
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83292
 
 
83293
#line 83294 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83294
 
 
83295
  typedef typename JoinPoint::That __JP_That;
 
83296
  typedef typename JoinPoint::Target __JP_Target;
 
83297
  typedef typename JoinPoint::Result __JP_Result;
 
83298
 
 
83299
#line 186 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83300
 
 
83301
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_DECLARATOR)) {
 
83302
      thisJoinPoint->that ()->parse (&__JP_That
 
83303
#line 188 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83304
::wc_extension); 
 
83305
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83306
        thisJoinPoint->that ()->builder ().any (); 
 
83307
    } else 
 
83308
      thisJoinPoint->action ().trigger (); 
 
83309
  }
 
83310
#line 83311 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83311
 
 
83312
protected:
 
83313
 
 
83314
#line 193 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83315
 
 
83316
 
 
83317
  
 
83318
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83319
 
 
83320
public: template<class JoinPoint> void __a11_around 
 
83321
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83322
 
 
83323
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83324
(JoinPoint *tjp)
 
83325
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83326
 {
 
83327
#line 83328 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83328
 
 
83329
  JoinPoint *&thisJoinPoint = tjp;
 
83330
 
 
83331
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83332
 
 
83333
#line 83334 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83334
 
 
83335
  typedef typename JoinPoint::That __JP_That;
 
83336
  typedef typename JoinPoint::Target __JP_Target;
 
83337
  typedef typename JoinPoint::Result __JP_Result;
 
83338
 
 
83339
#line 196 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83340
 
 
83341
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_INIT)) {
 
83342
      thisJoinPoint->that ()->parse (&__JP_That
 
83343
#line 198 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83344
::wc_extension); 
 
83345
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83346
        thisJoinPoint->that ()->builder ().any (); 
 
83347
    } else 
 
83348
      thisJoinPoint->action ().trigger (); 
 
83349
  }
 
83350
#line 83351 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83351
 
 
83352
protected:
 
83353
 
 
83354
#line 203 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83355
 
 
83356
 
 
83357
  
 
83358
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83359
 
 
83360
public: template<class JoinPoint> void __a12_around 
 
83361
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83362
 
 
83363
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83364
(JoinPoint *tjp)
 
83365
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83366
 {
 
83367
#line 83368 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83368
 
 
83369
  JoinPoint *&thisJoinPoint = tjp;
 
83370
 
 
83371
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83372
 
 
83373
#line 83374 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83374
 
 
83375
  typedef typename JoinPoint::That __JP_That;
 
83376
  typedef typename JoinPoint::Target __JP_Target;
 
83377
  typedef typename JoinPoint::Result __JP_Result;
 
83378
 
 
83379
#line 206 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83380
 
 
83381
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_ARG_DECL_SEQ)) {
 
83382
      thisJoinPoint->that ()->parse (&__JP_That
 
83383
#line 208 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83384
::wc_extension); 
 
83385
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83386
        thisJoinPoint->that ()->builder ().any_list (); 
 
83387
    } else 
 
83388
      thisJoinPoint->action ().trigger (); 
 
83389
  }
 
83390
#line 83391 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83391
 
 
83392
protected:
 
83393
 
 
83394
#line 213 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83395
 
 
83396
 
 
83397
  
 
83398
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83399
 
 
83400
public: template<class JoinPoint> void __a13_around 
 
83401
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83402
 
 
83403
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83404
(JoinPoint *tjp)
 
83405
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83406
 {
 
83407
#line 83408 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83408
 
 
83409
  JoinPoint *&thisJoinPoint = tjp;
 
83410
 
 
83411
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83412
 
 
83413
#line 83414 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83414
 
 
83415
  typedef typename JoinPoint::That __JP_That;
 
83416
  typedef typename JoinPoint::Target __JP_Target;
 
83417
  typedef typename JoinPoint::Result __JP_Result;
 
83418
 
 
83419
#line 216 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83420
 
 
83421
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_FCT_BODY)) {
 
83422
      thisJoinPoint->that ()->parse (&__JP_That
 
83423
#line 218 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83424
::wc_extension); 
 
83425
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83426
        thisJoinPoint->that ()->builder ().any (); 
 
83427
    } else 
 
83428
      thisJoinPoint->action ().trigger (); 
 
83429
  }
 
83430
#line 83431 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83431
 
 
83432
protected:
 
83433
 
 
83434
#line 223 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83435
 
 
83436
 
 
83437
  
 
83438
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83439
 
 
83440
public: template<class JoinPoint> void __a14_around 
 
83441
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83442
 
 
83443
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83444
(JoinPoint *tjp)
 
83445
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83446
 {
 
83447
#line 83448 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83448
 
 
83449
  JoinPoint *&thisJoinPoint = tjp;
 
83450
 
 
83451
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83452
 
 
83453
#line 83454 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83454
 
 
83455
  typedef typename JoinPoint::That __JP_That;
 
83456
  typedef typename JoinPoint::Target __JP_Target;
 
83457
  typedef typename JoinPoint::Result __JP_Result;
 
83458
 
 
83459
#line 226 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83460
 
 
83461
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_CLASS_SPEC)) {
 
83462
      thisJoinPoint->that ()->parse (&__JP_That
 
83463
#line 228 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83464
::wc_extension); 
 
83465
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83466
        thisJoinPoint->that ()->builder ().any (); 
 
83467
    } else 
 
83468
      thisJoinPoint->action ().trigger (); 
 
83469
  }
 
83470
#line 83471 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83471
 
 
83472
protected:
 
83473
 
 
83474
#line 233 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83475
 
 
83476
 
 
83477
  
 
83478
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83479
 
 
83480
public: template<class JoinPoint> void __a15_around 
 
83481
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83482
 
 
83483
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83484
(JoinPoint *tjp)
 
83485
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83486
 {
 
83487
#line 83488 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83488
 
 
83489
  JoinPoint *&thisJoinPoint = tjp;
 
83490
 
 
83491
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83492
 
 
83493
#line 83494 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83494
 
 
83495
  typedef typename JoinPoint::That __JP_That;
 
83496
  typedef typename JoinPoint::Target __JP_Target;
 
83497
  typedef typename JoinPoint::Result __JP_Result;
 
83498
 
 
83499
#line 236 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83500
 
 
83501
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_MEMBER_SPEC)) {
 
83502
      thisJoinPoint->that ()->parse (&__JP_That
 
83503
#line 238 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83504
::wc_extension); 
 
83505
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83506
        thisJoinPoint->that ()->builder ().any_list (); 
 
83507
    } else 
 
83508
      thisJoinPoint->action ().trigger (); 
 
83509
  }
 
83510
#line 83511 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83511
 
 
83512
protected:
 
83513
 
 
83514
#line 243 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83515
 
 
83516
 
 
83517
  
 
83518
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83519
 
 
83520
public: template<class JoinPoint> void __a16_around 
 
83521
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83522
 
 
83523
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83524
(JoinPoint *tjp)
 
83525
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83526
 {
 
83527
#line 83528 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83528
 
 
83529
  JoinPoint *&thisJoinPoint = tjp;
 
83530
 
 
83531
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83532
 
 
83533
#line 83534 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83534
 
 
83535
  typedef typename JoinPoint::That __JP_That;
 
83536
  typedef typename JoinPoint::Target __JP_Target;
 
83537
  typedef typename JoinPoint::Result __JP_Result;
 
83538
 
 
83539
#line 246 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83540
 
 
83541
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_MEMBER_DECL)) {
 
83542
      thisJoinPoint->that ()->parse (&__JP_That
 
83543
#line 248 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83544
::wc_extension); 
 
83545
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83546
        thisJoinPoint->that ()->builder ().any (); 
 
83547
    } else 
 
83548
      thisJoinPoint->action ().trigger (); 
 
83549
  }
 
83550
#line 83551 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83551
 
 
83552
protected:
 
83553
 
 
83554
#line 253 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83555
 
 
83556
 
 
83557
  
 
83558
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83559
 
 
83560
public: template<class JoinPoint> void __a17_around 
 
83561
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83562
 
 
83563
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83564
(JoinPoint *tjp)
 
83565
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83566
 {
 
83567
#line 83568 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83568
 
 
83569
  JoinPoint *&thisJoinPoint = tjp;
 
83570
 
 
83571
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83572
 
 
83573
#line 83574 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83574
 
 
83575
  typedef typename JoinPoint::That __JP_That;
 
83576
  typedef typename JoinPoint::Target __JP_Target;
 
83577
  typedef typename JoinPoint::Result __JP_Result;
 
83578
 
 
83579
#line 256 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83580
 
 
83581
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_STMT)) {
 
83582
      thisJoinPoint->that ()->parse (&__JP_That
 
83583
#line 258 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83584
::wc_extension); 
 
83585
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83586
        thisJoinPoint->that ()->builder ().any (); 
 
83587
    } else 
 
83588
      thisJoinPoint->action ().trigger (); 
 
83589
  }
 
83590
#line 83591 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83591
 
 
83592
protected:
 
83593
 
 
83594
#line 263 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83595
 
 
83596
 
 
83597
  
 
83598
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83599
 
 
83600
public: template<class JoinPoint> void __a18_around 
 
83601
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83602
 
 
83603
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83604
(JoinPoint *tjp)
 
83605
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83606
 {
 
83607
#line 83608 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83608
 
 
83609
  JoinPoint *&thisJoinPoint = tjp;
 
83610
 
 
83611
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83612
 
 
83613
#line 83614 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83614
 
 
83615
  typedef typename JoinPoint::That __JP_That;
 
83616
  typedef typename JoinPoint::Target __JP_Target;
 
83617
  typedef typename JoinPoint::Result __JP_Result;
 
83618
 
 
83619
#line 266 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83620
 
 
83621
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_STMT_SEQ)) {
 
83622
      thisJoinPoint->that ()->parse (&__JP_That
 
83623
#line 268 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83624
::wc_extension); 
 
83625
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83626
        thisJoinPoint->that ()->builder ().any_list (); 
 
83627
    } else 
 
83628
      thisJoinPoint->action ().trigger (); 
 
83629
  }
 
83630
#line 83631 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83631
 
 
83632
protected:
 
83633
 
 
83634
#line 273 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83635
 
 
83636
 
 
83637
  
 
83638
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83639
 
 
83640
public: template<class JoinPoint> void __a19_around 
 
83641
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83642
 
 
83643
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83644
(JoinPoint *tjp)
 
83645
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83646
 {
 
83647
#line 83648 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83648
 
 
83649
  JoinPoint *&thisJoinPoint = tjp;
 
83650
 
 
83651
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83652
 
 
83653
#line 83654 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83654
 
 
83655
  typedef typename JoinPoint::That __JP_That;
 
83656
  typedef typename JoinPoint::Target __JP_Target;
 
83657
  typedef typename JoinPoint::Result __JP_Result;
 
83658
 
 
83659
#line 276 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83660
 
 
83661
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_BASE_CLAUSE)) {
 
83662
      thisJoinPoint->that ()->parse (&__JP_That
 
83663
#line 278 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83664
::wc_extension); 
 
83665
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83666
        thisJoinPoint->that ()->builder ().any_list (); 
 
83667
    } else 
 
83668
      thisJoinPoint->action ().trigger (); 
 
83669
  }
 
83670
#line 83671 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83671
 
 
83672
protected:
 
83673
 
 
83674
#line 283 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83675
 
 
83676
 
 
83677
  
 
83678
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83679
 
 
83680
public: template<class JoinPoint> void __a20_around 
 
83681
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83682
 
 
83683
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83684
(JoinPoint *tjp)
 
83685
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83686
 {
 
83687
#line 83688 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83688
 
 
83689
  JoinPoint *&thisJoinPoint = tjp;
 
83690
 
 
83691
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83692
 
 
83693
#line 83694 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83694
 
 
83695
  typedef typename JoinPoint::That __JP_That;
 
83696
  typedef typename JoinPoint::Target __JP_Target;
 
83697
  typedef typename JoinPoint::Result __JP_Result;
 
83698
 
 
83699
#line 286 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83700
 
 
83701
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_CTOR_INIT)) {
 
83702
      thisJoinPoint->that ()->parse (&__JP_That
 
83703
#line 288 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83704
::wc_extension); 
 
83705
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83706
        thisJoinPoint->that ()->builder ().any (); 
 
83707
    } else 
 
83708
      thisJoinPoint->action ().trigger (); 
 
83709
  }
 
83710
#line 83711 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83711
 
 
83712
protected:
 
83713
 
 
83714
#line 293 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83715
 
 
83716
 
 
83717
  
 
83718
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83719
 
 
83720
public: template<class JoinPoint> void __a21_around 
 
83721
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83722
 
 
83723
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83724
(JoinPoint *tjp)
 
83725
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83726
 {
 
83727
#line 83728 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83728
 
 
83729
  JoinPoint *&thisJoinPoint = tjp;
 
83730
 
 
83731
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83732
 
 
83733
#line 83734 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83734
 
 
83735
  typedef typename JoinPoint::That __JP_That;
 
83736
  typedef typename JoinPoint::Target __JP_Target;
 
83737
  typedef typename JoinPoint::Result __JP_Result;
 
83738
 
 
83739
#line 296 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83740
 
 
83741
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_ANY_MEM_INIT)) {
 
83742
      thisJoinPoint->that ()->parse (&__JP_That
 
83743
#line 298 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83744
::wc_extension); 
 
83745
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83746
        thisJoinPoint->that ()->builder ().any (); 
 
83747
    } else 
 
83748
      thisJoinPoint->action ().trigger (); 
 
83749
  }
 
83750
#line 83751 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83751
 
 
83752
protected:
 
83753
 
 
83754
#line 303 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83755
 
 
83756
 
 
83757
  // extend the syntax to be able to parse match trees
 
83758
 
 
83759
  
 
83760
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83761
 
 
83762
public: template<class JoinPoint> void __a22_around 
 
83763
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83764
 
 
83765
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83766
(JoinPoint *tjp)
 
83767
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83768
 {
 
83769
#line 83770 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83770
 
 
83771
  JoinPoint *&thisJoinPoint = tjp;
 
83772
 
 
83773
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83774
 
 
83775
#line 83776 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83776
 
 
83777
  typedef typename JoinPoint::That __JP_That;
 
83778
  typedef typename JoinPoint::Target __JP_Target;
 
83779
  typedef typename JoinPoint::Result __JP_Result;
 
83780
 
 
83781
#line 308 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83782
 
 
83783
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_IS_TYPEDEF)) {
 
83784
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83785
        thisJoinPoint->that ()->parse (Puma::TOK_ID) ? 
 
83786
        thisJoinPoint->that ()->builder ().is_name () : (Puma::CTree*)0; 
 
83787
    } else 
 
83788
      thisJoinPoint->action ().trigger (); 
 
83789
  }
 
83790
#line 83791 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83791
 
 
83792
protected:
 
83793
 
 
83794
#line 315 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83795
 
 
83796
 
 
83797
  
 
83798
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83799
 
 
83800
public: template<class JoinPoint> void __a23_around 
 
83801
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83802
 
 
83803
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83804
(JoinPoint *tjp)
 
83805
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83806
 {
 
83807
#line 83808 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83808
 
 
83809
  JoinPoint *&thisJoinPoint = tjp;
 
83810
 
 
83811
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83812
 
 
83813
#line 83814 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83814
 
 
83815
  typedef typename JoinPoint::That __JP_That;
 
83816
  typedef typename JoinPoint::Target __JP_Target;
 
83817
  typedef typename JoinPoint::Result __JP_Result;
 
83818
 
 
83819
#line 318 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83820
 
 
83821
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_IS_CLASS)) {
 
83822
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83823
        thisJoinPoint->that ()->parse (Puma::TOK_ID) ? 
 
83824
        thisJoinPoint->that ()->builder ().is_name () : (Puma::CTree*)0; 
 
83825
    } else 
 
83826
      thisJoinPoint->action ().trigger (); 
 
83827
  }
 
83828
#line 83829 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83829
 
 
83830
protected:
 
83831
 
 
83832
#line 325 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83833
 
 
83834
 
 
83835
  
 
83836
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83837
 
 
83838
public: template<class JoinPoint> void __a24_around 
 
83839
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83840
 
 
83841
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83842
(JoinPoint *tjp)
 
83843
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83844
 {
 
83845
#line 83846 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83846
 
 
83847
  JoinPoint *&thisJoinPoint = tjp;
 
83848
 
 
83849
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83850
 
 
83851
#line 83852 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83852
 
 
83853
  typedef typename JoinPoint::That __JP_That;
 
83854
  typedef typename JoinPoint::Target __JP_Target;
 
83855
  typedef typename JoinPoint::Result __JP_Result;
 
83856
 
 
83857
#line 328 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83858
 
 
83859
    if (match_expr && thisJoinPoint->that ()->parse (Puma::TOK_IS_ENUM)) {
 
83860
      *(Puma::CTree**)thisJoinPoint->result () = 
 
83861
        thisJoinPoint->that ()->parse (Puma::TOK_ID) ? 
 
83862
        thisJoinPoint->that ()->builder ().is_name () : (Puma::CTree*)0; 
 
83863
    } else 
 
83864
      thisJoinPoint->action ().trigger (); 
 
83865
  }
 
83866
#line 83867 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83867
 
 
83868
protected:
 
83869
 
 
83870
#line 335 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83871
 
 
83872
 
 
83873
  // configure parsing match expressions
 
83874
  
 
83875
  
 
83876
#line 3 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83877
 
 
83878
public: void __a25_before 
 
83879
#line 340 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83880
 
 
83881
#line 340 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83882
(Puma::Config &config)
 
83883
#line 340 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83884
 {
 
83885
    match_expr = (config.Option ("--match-expr"));
 
83886
  }
 
83887
#line 83888 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83888
 
 
83889
protected:
 
83890
 
 
83891
#line 342 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
83892
 
 
83893
};
 
83894
#line 83895 "/var/tmp/aspectc++/debian/Puma/gen-release/step2/src/Parser.cc"
 
83895
 
 
83896
namespace AC {
 
83897
  template <class JoinPoint>
 
83898
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a0_around (JoinPoint *tjp) {
 
83899
    ::CMatchSyntax::aspectof()->__a0_around (tjp);
 
83900
  }
 
83901
  template <class JoinPoint>
 
83902
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a1_around (JoinPoint *tjp) {
 
83903
    ::CMatchSyntax::aspectof()->__a1_around (tjp);
 
83904
  }
 
83905
  template <class JoinPoint>
 
83906
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a2_around (JoinPoint *tjp) {
 
83907
    ::CMatchSyntax::aspectof()->__a2_around (tjp);
 
83908
  }
 
83909
  template <class JoinPoint>
 
83910
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a3_around (JoinPoint *tjp) {
 
83911
    ::CMatchSyntax::aspectof()->__a3_around (tjp);
 
83912
  }
 
83913
  template <class JoinPoint>
 
83914
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a4_around (JoinPoint *tjp) {
 
83915
    ::CMatchSyntax::aspectof()->__a4_around (tjp);
 
83916
  }
 
83917
  template <class JoinPoint>
 
83918
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a5_after (JoinPoint *tjp) {
 
83919
    ::CMatchSyntax::aspectof()->__a5_after (tjp);
 
83920
  }
 
83921
  template <class JoinPoint>
 
83922
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a6_after (JoinPoint *tjp) {
 
83923
    ::CMatchSyntax::aspectof()->__a6_after (tjp);
 
83924
  }
 
83925
  template <class JoinPoint>
 
83926
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a7_around (JoinPoint *tjp) {
 
83927
    ::CMatchSyntax::aspectof()->__a7_around (tjp);
 
83928
  }
 
83929
  template <class JoinPoint>
 
83930
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a8_around (JoinPoint *tjp) {
 
83931
    ::CMatchSyntax::aspectof()->__a8_around (tjp);
 
83932
  }
 
83933
  template <class JoinPoint>
 
83934
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a9_around (JoinPoint *tjp) {
 
83935
    ::CMatchSyntax::aspectof()->__a9_around (tjp);
 
83936
  }
 
83937
  template <class JoinPoint>
 
83938
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a10_around (JoinPoint *tjp) {
 
83939
    ::CMatchSyntax::aspectof()->__a10_around (tjp);
 
83940
  }
 
83941
  template <class JoinPoint>
 
83942
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a11_around (JoinPoint *tjp) {
 
83943
    ::CMatchSyntax::aspectof()->__a11_around (tjp);
 
83944
  }
 
83945
  template <class JoinPoint>
 
83946
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a12_around (JoinPoint *tjp) {
 
83947
    ::CMatchSyntax::aspectof()->__a12_around (tjp);
 
83948
  }
 
83949
  template <class JoinPoint>
 
83950
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a13_around (JoinPoint *tjp) {
 
83951
    ::CMatchSyntax::aspectof()->__a13_around (tjp);
 
83952
  }
 
83953
  template <class JoinPoint>
 
83954
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a14_around (JoinPoint *tjp) {
 
83955
    ::CMatchSyntax::aspectof()->__a14_around (tjp);
 
83956
  }
 
83957
  template <class JoinPoint>
 
83958
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a15_around (JoinPoint *tjp) {
 
83959
    ::CMatchSyntax::aspectof()->__a15_around (tjp);
 
83960
  }
 
83961
  template <class JoinPoint>
 
83962
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a16_around (JoinPoint *tjp) {
 
83963
    ::CMatchSyntax::aspectof()->__a16_around (tjp);
 
83964
  }
 
83965
  template <class JoinPoint>
 
83966
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a17_around (JoinPoint *tjp) {
 
83967
    ::CMatchSyntax::aspectof()->__a17_around (tjp);
 
83968
  }
 
83969
  template <class JoinPoint>
 
83970
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a18_around (JoinPoint *tjp) {
 
83971
    ::CMatchSyntax::aspectof()->__a18_around (tjp);
 
83972
  }
 
83973
  template <class JoinPoint>
 
83974
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a19_around (JoinPoint *tjp) {
 
83975
    ::CMatchSyntax::aspectof()->__a19_around (tjp);
 
83976
  }
 
83977
  template <class JoinPoint>
 
83978
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a20_around (JoinPoint *tjp) {
 
83979
    ::CMatchSyntax::aspectof()->__a20_around (tjp);
 
83980
  }
 
83981
  template <class JoinPoint>
 
83982
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a21_around (JoinPoint *tjp) {
 
83983
    ::CMatchSyntax::aspectof()->__a21_around (tjp);
 
83984
  }
 
83985
  template <class JoinPoint>
 
83986
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a22_around (JoinPoint *tjp) {
 
83987
    ::CMatchSyntax::aspectof()->__a22_around (tjp);
 
83988
  }
 
83989
  template <class JoinPoint>
 
83990
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a23_around (JoinPoint *tjp) {
 
83991
    ::CMatchSyntax::aspectof()->__a23_around (tjp);
 
83992
  }
 
83993
  template <class JoinPoint>
 
83994
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a24_around (JoinPoint *tjp) {
 
83995
    ::CMatchSyntax::aspectof()->__a24_around (tjp);
 
83996
  }
 
83997
  template <class JoinPoint>
 
83998
  __attribute((always_inline)) inline void invoke_CMatchSyntax_CMatchSyntax_a25_before (JoinPoint *tjp) {
 
83999
    typedef typename JoinPoint::Binding_CMatchSyntax_CMatchSyntax_a25_before::template Arg<0> Arg0;
 
84000
    ::CMatchSyntax::aspectof()->__a25_before ((Puma::Config &)Arg0::val (tjp));
 
84001
  }
 
84002
 
84003
 
 
84004
#line 343 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84005
 
 
84006
 
 
84007
// introduce wildcard rules to CSyntax
 
84008
 
 
84009
#line 356 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84010
 
 
84011
 
 
84012
// introduce wildcard rules to CCSyntax
 
84013
 
 
84014
#line 362 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84015
 
 
84016
 
 
84017
// extend CBuilder
 
84018
 
 
84019
#line 378 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84020
 
 
84021
 
 
84022
 
 
84023
#line 400 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84024
 
 
84025
         
 
84026
 
 
84027
#line 414 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84028
 
 
84029
 
 
84030
 
 
84031
#line 420 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84032
 
 
84033
 
 
84034
 
 
84035
#line 426 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84036
 
 
84037
 
 
84038
 
 
84039
#line 432 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84040
 
 
84041
 
 
84042
 
 
84043
#line 437 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84044
 
 
84045
 
 
84046
/*****************************************************************************/
 
84047
/*                                                                           */
 
84048
/*                              wildcard rules                               */
 
84049
/*                                                                           */
 
84050
/*****************************************************************************/
 
84051
 
 
84052
 
 
84053
#line 449 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84054
 
 
84055
 
 
84056
 
 
84057
#line 470 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84058
 
 
84059
 
 
84060
 
 
84061
#line 477 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84062
 
 
84063
 
 
84064
 
 
84065
#line 481 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84066
 
 
84067
 
 
84068
 
 
84069
#line 487 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84070
 
 
84071
 
 
84072
 
 
84073
#line 494 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84074
 
 
84075
 
 
84076
 
 
84077
#line 510 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84078
 
 
84079
            
 
84080
 
 
84081
#line 523 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84082
 
 
84083
 
 
84084
 
 
84085
#line 532 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84086
 
 
84087
 
 
84088
 
 
84089
#line 540 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84090
 
 
84091
 
 
84092
 
 
84093
#line 550 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84094
 
 
84095
 
 
84096
 
 
84097
#line 563 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84098
 
 
84099
 
 
84100
 
 
84101
#line 569 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84102
 
 
84103
 
 
84104
 
 
84105
#line 575 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/aspects/CMatchSyntax.ah"
 
84106
 
 
84107
 
 
84108
#endif /* __CMatchSyntax_ah__ */
 
84109
 
 
84110
#line 123 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
 
84111
#endif
 
84112
#endif
 
84113
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
84114
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
 
84115
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderH_ah__
68319
84116
#include "ExtACBuilderH.ah"
68320
84117
#endif
68321
 
#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__)
68322
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
84118
#endif
 
84119
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
84120
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
 
84121
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACBuilderCC_ah__
68323
84122
#include "ExtACBuilderCC.ah"
68324
84123
#endif
68325
 
#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__)
68326
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
84124
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
84125
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
84126
#include "ExtACTree.ah"
 
84127
#endif
 
84128
#endif
 
84129
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
84130
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
 
84131
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxH_ah__
68327
84132
#include "ExtACSyntaxH.ah"
68328
84133
#endif
68329
 
#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__)
68330
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
84134
#endif
 
84135
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
84136
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
 
84137
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACSyntaxCC_ah__
68331
84138
#include "ExtACSyntaxCC.ah"
68332
84139
#endif
68333
 
#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__)
68334
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACTree_ah__
68335
 
 
68336
 
#line 47 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
68337
 
#endif
68338
 
#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__)
68339
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
68340
 
 
68341
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68342
 
// This file is part of PUMA.
68343
 
// Copyright (C) 1999-2003  The PUMA developer team.
68344
 
//                                                                
68345
 
// This program is free software;  you can redistribute it and/or 
68346
 
// modify it under the terms of the GNU General Public License as 
68347
 
// published by the Free Software Foundation; either version 2 of 
68348
 
// the License, or (at your option) any later version.            
68349
 
//                                                                
68350
 
// This program is distributed in the hope that it will be useful,
68351
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
68352
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
68353
 
// GNU General Public License for more details.                   
68354
 
//                                                                
68355
 
// You should have received a copy of the GNU General Public      
68356
 
// License along with this program; if not, write to the Free     
68357
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
68358
 
// MA  02111-1307  USA                                            
68359
 
 
68360
 
#ifndef __ext_ac_keywords_ah__
68361
 
#define __ext_ac_keywords_ah__
68362
 
 
68363
 
 
68364
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
68365
 
 
68366
 
#line 68367 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
68367
 
 
68368
 
#ifndef __ac_fwd_ExtACKeywords__
68369
 
#define __ac_fwd_ExtACKeywords__
68370
 
class ExtACKeywords;
68371
 
namespace AC {
68372
 
  template <class JoinPoint, class Binding>
68373
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp);
68374
 
  template <class JoinPoint, class Binding>
68375
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp);
68376
 
  template <class JoinPoint>
68377
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp);
68378
 
}
68379
 
#endif
68380
 
 
68381
 
#ifndef __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
68382
 
#define __ac_need__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
68383
 
#endif
68384
 
 
68385
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
68386
 
// This file is part of PUMA.
68387
 
// Copyright (C) 1999-2003  The PUMA developer team.
68388
 
//                                                                
68389
 
// This program is free software;  you can redistribute it and/or 
68390
 
// modify it under the terms of the GNU General Public License as 
68391
 
// published by the Free Software Foundation; either version 2 of 
68392
 
// the License, or (at your option) any later version.            
68393
 
//                                                                
68394
 
// This program is distributed in the hope that it will be useful,
68395
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
68396
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
68397
 
// GNU General Public License for more details.                   
68398
 
//                                                                
68399
 
// You should have received a copy of the GNU General Public      
68400
 
// License along with this program; if not, write to the Free     
68401
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
68402
 
// MA  02111-1307  USA                                            
68403
 
 
68404
 
#ifndef __CProject_h__
68405
 
#define __CProject_h__
68406
 
 
68407
 
// Special project derivation for C++ sources.
68408
 
 
68409
 
#include "Puma/Config.h"
68410
 
#include "Puma/Project.h"
68411
 
#include "Puma/CScanner.h"
68412
 
#include "Puma/ErrorStream.h"
68413
 
 
68414
 
namespace Puma {
68415
 
 
68416
 
 
68417
 
class Source;
68418
 
class CTypeInfo;
68419
 
 
68420
 
 
68421
 
#line 68422 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
68422
 
} // closed Puma
68423
 
class WinIfExists;
68424
 
class WinImportHandler;
68425
 
class WinMacros;
68426
 
class CMatchSyntax;
68427
 
class ExtGnu;
68428
 
class ExtAC;
68429
 
class ExtACBuilderCoupling;
68430
 
class ExtACSyntaxCoupling;
68431
 
class ExtACTree;
68432
 
class ExtACKeywords;
68433
 
class WinAsm;
68434
 
class WinDeclSpecs;
68435
 
class WinMemberExplSpec;
68436
 
class WinTypeKeywords;
68437
 
class PragmaOnceUnitState;
68438
 
class PragmaOnce;
68439
 
class CCExprResolve;
68440
 
class CExprResolve;
68441
 
namespace Puma {
68442
 
 
68443
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
68444
 
class CProject : public Project {
68445
 
#line 68446 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
68446
 
  friend class ::WinIfExists;
68447
 
  friend class ::WinImportHandler;
68448
 
  friend class ::WinMacros;
68449
 
  friend class ::CMatchSyntax;
68450
 
  friend class ::ExtGnu;
68451
 
  friend class ::ExtAC;
68452
 
  friend class ::ExtACBuilderCoupling;
68453
 
  friend class ::ExtACSyntaxCoupling;
68454
 
  friend class ::ExtACTree;
68455
 
  friend class ::ExtACKeywords;
68456
 
  friend class ::WinAsm;
68457
 
  friend class ::WinDeclSpecs;
68458
 
  friend class ::WinMemberExplSpec;
68459
 
  friend class ::WinTypeKeywords;
68460
 
  friend class ::PragmaOnceUnitState;
68461
 
  friend class ::PragmaOnce;
68462
 
  friend class ::CCExprResolve;
68463
 
  friend class ::CExprResolve;
68464
 
 
68465
 
#line 35 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
68466
 
 
68467
 
  Config _config;
68468
 
  CScanner _scanner;
68469
 
 
68470
 
public:
68471
 
  CProject (ErrorStream &e);
68472
 
 
68473
 
  // Constructor: Add some source directories.
68474
 
  CProject (ErrorStream &, const char *defs, 
68475
 
               const char *decls = (const char*)0); 
68476
 
 
68477
 
  // Constructor: Setup preprocessor configuration according to
68478
 
  // command line parameter and the global config file and
68479
 
  // add some source directories.
68480
 
  CProject (ErrorStream &, int &argc, char **&argv, 
68481
 
            const char *defs = (const char*)0, 
68482
 
            const char *decls = (const char*)0);
68483
 
 
68484
 
public: // Project configuration 
68485
 
  // Get the preprocessor configuration.
68486
 
  Config &config ();
68487
 
 
68488
 
  // Configure the project from the command line or a file.
68489
 
  virtual void configure (Config &);
68490
 
 
68491
 
  // Add a new file to the project.
68492
 
  Unit *addFile (Filename file);
68493
 
 
68494
 
public: // Scanner interface
68495
 
  // Get the scanner.
68496
 
  CScanner &scanner ();
68497
 
 
68498
 
  // Scan the file `file' or the source if given. When
68499
 
  // scanning a source the resulting unit gets the name `file'.
68500
 
  
68501
 
#line 68502 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
68502
 
public: inline ::Puma::Unit * __exec_old_scanFile(const char * file,::Puma::Source * ,bool isFile);
68503
 
 
68504
 
#line 69 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/CProject.h"
68505
 
virtual Unit *scanFile (const char *file, Source * = (Source*)0, 
68506
 
                          bool isFile = true);
68507
 
        
68508
 
  // Scan a string. The resulting unit gets the name `name'.
68509
 
  // (and will not be registered at the unit manager!)
68510
 
  virtual Unit *scanString (const char *str, 
68511
 
                            const char *name = (const char*)0);
68512
 
 
68513
 
public: // Miscellaneous Functions
68514
 
 
68515
 
  // Give the filename needed to include a particular header file
68516
 
  Filename getInclString (Filename filename);
68517
 
 
68518
 
private:
68519
 
  // Map the type string from --size-type and --ptrdiff-type
68520
 
  // to real Puma type.
68521
 
  CTypeInfo *mapType (const char *) const;
68522
 
};
68523
 
 
68524
 
inline Config &CProject::config () 
68525
 
 { return _config; }
68526
 
inline CScanner &CProject::scanner () 
68527
 
 { return _scanner; }
68528
 
 
68529
 
 
68530
 
} // namespace Puma
68531
 
 
68532
 
#endif /* __CProject_h__ */
68533
 
 
68534
 
#line 1 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
68535
 
// This file is part of PUMA.
68536
 
// Copyright (C) 1999-2003  The PUMA developer team.
68537
 
//                                                                
68538
 
// This program is free software;  you can redistribute it and/or 
68539
 
// modify it under the terms of the GNU General Public License as 
68540
 
// published by the Free Software Foundation; either version 2 of 
68541
 
// the License, or (at your option) any later version.            
68542
 
//                                                                
68543
 
// This program is distributed in the hope that it will be useful,
68544
 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
68545
 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
68546
 
// GNU General Public License for more details.                   
68547
 
//                                                                
68548
 
// You should have received a copy of the GNU General Public      
68549
 
// License along with this program; if not, write to the Free     
68550
 
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
68551
 
// MA  02111-1307  USA                                            
68552
 
 
68553
 
#ifndef __FileUnit__
68554
 
#define __FileUnit__
68555
 
 
68556
 
// Special Unit for files. Knows its last save location and the
68557
 
// absolute path of the corresponding file.
68558
 
 
68559
 
 
68560
 
#line 27 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
68561
 
namespace Puma {
68562
 
 
68563
 
 
68564
 
class Project;
68565
 
 
68566
 
 
68567
 
#line 68568 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
68568
 
} // closed Puma
68569
 
class WinIfExists;
68570
 
class WinImportHandler;
68571
 
class WinMacros;
68572
 
class CMatchSyntax;
68573
 
class ExtGnu;
68574
 
class ExtAC;
68575
 
class ExtACBuilderCoupling;
68576
 
class ExtACSyntaxCoupling;
68577
 
class ExtACTree;
68578
 
class ExtACKeywords;
68579
 
class WinAsm;
68580
 
class WinDeclSpecs;
68581
 
class WinMemberExplSpec;
68582
 
class WinTypeKeywords;
68583
 
class PragmaOnceUnitState;
68584
 
class PragmaOnce;
68585
 
class CCExprResolve;
68586
 
class CExprResolve;
68587
 
namespace Puma {
68588
 
 
68589
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
68590
 
class FileUnit : public Unit {
68591
 
#line 68592 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
68592
 
  friend class ::WinIfExists;
68593
 
  friend class ::WinImportHandler;
68594
 
  friend class ::WinMacros;
68595
 
  friend class ::CMatchSyntax;
68596
 
  friend class ::ExtGnu;
68597
 
  friend class ::ExtAC;
68598
 
  friend class ::ExtACBuilderCoupling;
68599
 
  friend class ::ExtACSyntaxCoupling;
68600
 
  friend class ::ExtACTree;
68601
 
  friend class ::ExtACKeywords;
68602
 
  friend class ::WinAsm;
68603
 
  friend class ::WinDeclSpecs;
68604
 
  friend class ::WinMemberExplSpec;
68605
 
  friend class ::WinTypeKeywords;
68606
 
  friend class ::PragmaOnceUnitState;
68607
 
  friend class ::PragmaOnce;
68608
 
  friend class ::CCExprResolve;
68609
 
  friend class ::CExprResolve;
68610
 
 
68611
 
#line 32 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/inc/Puma/FileUnit.h"
68612
 
 
68613
 
  char *_lastLocation; 
68614
 
  char *_absolutePath;
68615
 
  
68616
 
  Project *_project;
68617
 
  bool _isBelow;
68618
 
 
68619
 
public:
68620
 
  FileUnit ();
68621
 
  FileUnit (Unit &);
68622
 
  FileUnit (const List &);
68623
 
  virtual ~FileUnit ();
68624
 
            
68625
 
  virtual void name (const char *);        
68626
 
  void setLocation (const char *);    
68627
 
        
68628
 
  char *lastLocation () const;
68629
 
  char *absolutePath () const;
68630
 
  bool isFile () const;
68631
 
  
68632
 
  // Generates the absolute pathname to the file.
68633
 
  static char *absolutePath (const char *);
68634
 
  static char *resolvePath (const char *);
68635
 
  
68636
 
  // File belongs to given project?
68637
 
  bool belongsTo (Project &);
68638
 
};
68639
 
 
68640
 
inline FileUnit::FileUnit () : 
68641
 
  Unit (), 
68642
 
  _lastLocation ((char*)0), 
68643
 
  _absolutePath ((char*)0),
68644
 
  _project (0),
68645
 
  _isBelow (false)
68646
 
 {}
68647
 
inline FileUnit::FileUnit (Unit &unit) : 
68648
 
  Unit (unit), 
68649
 
  _lastLocation ((char*)0), 
68650
 
  _absolutePath ((char*)0),
68651
 
  _project (0),
68652
 
  _isBelow (false)
68653
 
 {}
68654
 
inline FileUnit::FileUnit (const List &list) : 
68655
 
  Unit (list), 
68656
 
  _lastLocation ((char*)0), 
68657
 
  _absolutePath ((char*)0),
68658
 
  _project (0),
68659
 
  _isBelow (false)  
68660
 
 {}
68661
 
inline FileUnit::~FileUnit () 
68662
 
 { if (_lastLocation) delete[] _lastLocation; 
68663
 
   if (_absolutePath) delete[] _absolutePath; }
68664
 
            
68665
 
inline char *FileUnit::lastLocation () const 
68666
 
 { return _lastLocation; }
68667
 
inline char *FileUnit::absolutePath () const 
68668
 
 { return _absolutePath; }
68669
 
inline bool FileUnit::isFile () const 
68670
 
 { return true; }
68671
 
 
68672
 
 
68673
 
} // namespace Puma
68674
 
 
68675
 
#endif /* __FileUnit__ */
68676
 
 
68677
 
#line 25 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68678
 
using namespace Puma;
68679
 
 
68680
 
// *****************************************
68681
 
// AspectC++ keyword handling in the scanner
68682
 
// *****************************************
68683
 
 
68684
 
#line 68685 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
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 WinAsm;
68695
 
class WinDeclSpecs;
68696
 
class WinMemberExplSpec;
68697
 
class WinTypeKeywords;
68698
 
class PragmaOnceUnitState;
68699
 
class PragmaOnce;
68700
 
class CCExprResolve;
68701
 
class CExprResolve;
68702
 
 
68703
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68704
 
class ExtACKeywords {
68705
 
#line 68706 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
68706
 
 
68707
 
public:
68708
 
  static ExtACKeywords *aspectof () {
68709
 
    static ExtACKeywords __instance;
68710
 
    return &__instance;
68711
 
  }
68712
 
  static ExtACKeywords *aspectOf () {
68713
 
    return aspectof ();
68714
 
  }
68715
 
private:
68716
 
 
68717
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68718
 
 
68719
 
#line 68720 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
68720
 
  friend class ::WinIfExists;
68721
 
  friend class ::WinImportHandler;
68722
 
  friend class ::WinMacros;
68723
 
  friend class ::CMatchSyntax;
68724
 
  friend class ::ExtGnu;
68725
 
  friend class ::ExtAC;
68726
 
  friend class ::ExtACBuilderCoupling;
68727
 
  friend class ::ExtACSyntaxCoupling;
68728
 
  friend class ::ExtACTree;
68729
 
  friend class ::WinAsm;
68730
 
  friend class ::WinDeclSpecs;
68731
 
  friend class ::WinMemberExplSpec;
68732
 
  friend class ::WinTypeKeywords;
68733
 
  friend class ::PragmaOnceUnitState;
68734
 
  friend class ::PragmaOnce;
68735
 
  friend class ::CCExprResolve;
68736
 
  friend class ::CExprResolve;
68737
 
 
68738
 
#line 30 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68739
 
 
68740
 
 
68741
 
  bool _prj_keywords;
68742
 
  CProject *_project; // active project
68743
 
  
68744
 
protected:
68745
 
  ExtACKeywords () : _prj_keywords (false) {}
68746
 
public:
68747
 
  // allow/forbid AspectC++ keywords in normal project files
68748
 
  void prj_keywords (bool kw) { _prj_keywords = kw; }
68749
 
  
68750
 
  
68751
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68752
 
 
68753
 
public: void __a0_before 
68754
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68755
 
 
68756
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68757
 
(CProject &project)
68758
 
#line 42 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68759
 
 {
68760
 
    _project = &project;
68761
 
  }
68762
 
  
68763
 
  
68764
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68765
 
 
68766
 
public: template<class JoinPoint> void __a1_before 
68767
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68768
 
 
68769
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68770
 
(JoinPoint *tjp, Unit &unit)
68771
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68772
 
 {
68773
 
#line 68774 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
68774
 
 
68775
 
  typedef typename JoinPoint::That __JP_That;
68776
 
  typedef typename JoinPoint::Target __JP_Target;
68777
 
  typedef typename JoinPoint::Result __JP_Result;
68778
 
 
68779
 
#line 50 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68780
 
 
68781
 
    if (!unit.isFile ())
68782
 
      return;
68783
 
      
68784
 
    bool ac_kw = _prj_keywords;
68785
 
    // in external files the AspectC++ keywords are always identifiers
68786
 
    if (!((FileUnit*)&unit)->belongsTo (*_project)) {
68787
 
      ac_kw = false;
68788
 
    }
68789
 
    // in aspect headers keywords are keywords
68790
 
    else if (unit.name () &&
68791
 
      strcmp (unit.name () + strlen (unit.name ()) - 3, ".ah") == 0) {
68792
 
      ac_kw = true;
68793
 
    }
68794
 
    // finally the right flag
68795
 
    tjp->that ()->allow_aspectc (ac_kw);
68796
 
  }
68797
 
  
68798
 
  
68799
 
#line 3 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68800
 
 
68801
 
public: template<class JoinPoint> void __a2_before 
68802
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68803
 
 
68804
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68805
 
(JoinPoint *tjp)
68806
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68807
 
 {
68808
 
#line 68809 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
68809
 
 
68810
 
  typedef typename JoinPoint::That __JP_That;
68811
 
  typedef typename JoinPoint::Target __JP_Target;
68812
 
  typedef typename JoinPoint::Result __JP_Result;
68813
 
 
68814
 
#line 68 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68815
 
 
68816
 
    _project = tjp->that ();
68817
 
  }
68818
 
};
68819
 
#line 68820 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step2/src/Parser.cc"
68820
 
 
68821
 
namespace AC {
68822
 
  template <class JoinPoint, class Binding>
68823
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a0_before (JoinPoint *tjp) {
68824
 
    typedef typename Binding::template Arg<0> Arg0;
68825
 
    ::ExtACKeywords::aspectof()->__a0_before ((Puma::CProject &)Arg0::val (tjp));
68826
 
  }
68827
 
  template <class JoinPoint, class Binding>
68828
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a1_before (JoinPoint *tjp) {
68829
 
    typedef typename Binding::template Arg<0> Arg0;
68830
 
    ::ExtACKeywords::aspectof()->__a1_before (tjp, (Puma::Unit &)Arg0::val (tjp));
68831
 
  }
68832
 
  template <class JoinPoint>
68833
 
  inline void invoke_ExtACKeywords_ExtACKeywords_a2_before (JoinPoint *tjp) {
68834
 
    ::ExtACKeywords::aspectof()->__a2_before (tjp);
68835
 
  }
68836
 
68837
 
 
68838
 
#line 71 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/aspects/ExtACKeywords.ah"
68839
 
  
68840
 
 
68841
 
#endif /* __ext_ac_keywords_ah__ */
68842
 
 
68843
 
#line 51 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
68844
 
#endif
68845
 
#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__)
68846
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
84140
#endif
 
84141
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
84142
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
84143
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
84144
#include "ExtACTree.ah"
 
84145
#endif
 
84146
#endif
 
84147
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
84148
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
84149
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACKeywords_ah__
 
84150
#include "ExtACKeywords.ah"
 
84151
#endif
 
84152
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
84153
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
84154
#include "PragmaOnceUnitState.ah"
 
84155
#endif
 
84156
#endif
 
84157
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
84158
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
84159
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
84160
#include "ExtACTree.ah"
 
84161
#endif
 
84162
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
84163
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnu_ah__
 
84164
#include "ExtGnu.ah"
 
84165
#endif
 
84166
#endif
 
84167
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
84168
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
84169
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtACTree_ah__
 
84170
#include "ExtACTree.ah"
 
84171
#endif
 
84172
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
84173
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_ExtGnuCSemDeclSpecs_ah__
 
84174
#include "ExtGnuCSemDeclSpecs.ah"
 
84175
#endif
 
84176
#endif
 
84177
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
84178
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
84179
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
84180
#include "PragmaOnceUnitState.ah"
 
84181
#endif
 
84182
#endif
 
84183
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
84184
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
84185
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
 
84186
#include "PragmaOnceUnitState.ah"
 
84187
#endif
 
84188
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
84189
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_PragmaOnce_ah__
 
84190
 
 
84191
#line 203 "/var/tmp/aspectc++/debian/Puma/gen-release/step1/src/Parser.cc"
 
84192
#endif
 
84193
#endif
 
84194
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
84195
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
 
84196
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_TraceSyntax_ah__
68847
84197
#include "TraceSyntax.ah"
68848
84198
#endif
68849
 
#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__)
68850
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinAsm_ah__
68851
 
#include "WinAsm.ah"
68852
 
#endif
68853
 
#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__)
68854
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinDeclSpecs_ah__
68855
 
#include "WinDeclSpecs.ah"
68856
 
#endif
68857
 
#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__)
68858
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinMemberExplSpec_ah__
68859
 
#include "WinMemberExplSpec.ah"
68860
 
#endif
68861
 
#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__)
68862
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_WinTypeKeywords_ah__
68863
 
#include "WinTypeKeywords.ah"
68864
 
#endif
68865
 
#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__)
68866
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnceUnitState_ah__
68867
 
 
68868
 
#line 75 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
68869
 
#endif
68870
 
#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__)
68871
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_PragmaOnce_ah__
68872
 
 
68873
 
#line 79 "/local/scratch/packages/aspectc++/ac-woven-1.0pre3/Puma/gen-release/step1/src/Parser.cc"
68874
 
#endif
68875
 
#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__)
68876
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveH_ah__
68877
 
#include "CCExprResolveH.ah"
68878
 
#endif
68879
 
#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__)
68880
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CCExprResolveCC_ah__
68881
 
#include "CCExprResolveCC.ah"
68882
 
#endif
68883
 
#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__)
68884
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveH_ah__
68885
 
#include "CExprResolveH.ah"
68886
 
#endif
68887
 
#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__)
68888
 
#define __ac_have__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_aspects_CExprResolveCC_ah__
68889
 
#include "CExprResolveCC.ah"
68890
 
#endif
68891
 
/*** end of aspect includes ***/
68892
 
#undef __ac_FIRST__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1__
68893
 
#undef __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_Parser_cc__
68894
 
#endif // __ac_FIRST_FILE__local_scratch_packages_aspectc4343_ac45woven451_0pre3_Puma_gen45release_step1_src_Parser_cc__
 
84199
#endif
 
84200
#ifdef __ac_need__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
84201
#ifndef __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
84202
#define __ac_have__var_tmp_aspectc4343_debian_Puma_gen45release_step1_aspects_CMatchSyntax_ah__
 
84203
#include "CMatchSyntax.ah"
 
84204
#endif
 
84205
#endif
 
84206
#undef __ac_FIRST__var_tmp_aspectc4343_debian_Puma_gen45release_step1__
 
84207
#undef __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_Parser_cc__
 
84208
#endif // __ac_FIRST_FILE__var_tmp_aspectc4343_debian_Puma_gen45release_step1_src_Parser_cc__